Amazon Web Services 한국 블로그

모든 AWS API 엔드포인트에서 TLS1.2가 최소 TLS 프로토콜 레벨로 변경

이 글은 AWS 보안 블로그의 TLS 1.2 to become the minimum TLS protocol level for all AWS API endpoints를 기반으로 프로페셔널 서비스팀 보안 컨설턴트 김성헌(Sunghyon Kim), 박병화(Byounghwa Park)가 한국어로 번역 및 편집하였습니다.

Amazon Web Services(AWS)에서는 보안에 가장 민감한 조직의 요구사항을 충족하는데 도움이 되는 클라우드 컴퓨팅 환경을 제공하기 위해 지속적으로 혁신하고 있습니다. Transport Layer Security(TLS)에 대한 기술 및 규정 표준의 발전에 대응하기 위해, 모든 AWS 서비스 API 엔드포인트의TLS 구성을 최소 버전 TLS 1.2로 업데이트할 예정입니다. 이 업데이트는 2023년 12월 31일까지 완료될 점진적인 롤아웃과 함께 연결에 TLS 버전 1.2 이상을 사용해야 함을 의미합니다. 이 게시물에서는 TLS 버전을 확인하는 방법과 준비해야 할 사항을 알려드립니다.

그림 1: TLS 사용 중단 타임라인

AWS는 TLS 버전 1.0 및 1.1에 대한 지원을 지속적으로 수행하여 임베디드 장치와 같이 오래된 버전의 클라이언트를 업데이트하기 어려운 고객을 위해 이전 버전과의 호환성을 유지하고 있습니다. 또한 오래된 버전에서 식별된 문제에서 데이터를 보호하는 데 도움이 되는 적극적인 완화 조치를 시행하고 있습니다. 점점 더 많은 고객이 규정 준수의 일부를 간소화하기 위해 이런 변경을 요청하고 있으며, 오래된 버전을 사용하는 고객이 점점 줄어들고 있기 때문에 지금이 TLS 1.0 및 1.1을 종료할 시기입니다.

이미 TLS 1.2 이상을 사용하고 있는 AWS 고객의 99% 이상인 경우에는 이러한 변경에 영향을 받지 않습니다. 클라이언트 소프트웨어 애플리케이션이 AWS Software Development Kit (AWS SDK), AWS Command Line Interface (AWS CLI), Java Development Kit (JDK) 8 이상 또는 다른 최신 개발 환경을 사용하여 2014년 이후에 구축된 경우 TLS 1.2 이상을 이미 사용하고 있을 것입니다. 이전 버전의 애플리케이션을 사용 중이거나 2014년 이전부터 개발 환경을 업데이트하지 않은 경우 업데이트해야 할 가능성이 높습니다.

여전히 TLS 1.0 또는 1.1을 사용하는 고객이시라면 경우 연결 기능을 유지하려면 TLS 1.2 이상을 사용하도록 클라이언트 소프트웨어를 업데이트해야 합니다. 연결할 때 사용하는 TLS 버전을 제어할 수 있다는 점을 이해하는 것이 중요합니다. AWS API 엔드포인트에 연결할 때 클라이언트 소프트웨어가 선호하는 TLS 버전을 협상하고, AWS는 상호 합의된 버전 중 가장 높은 버전을 사용합니다.

TLS 1.2의 요구사항에 따른 가용성 영향을 최소화하기 위해, AWS는 엔드포인트별로 변경사항을 지속적으로 롤아웃하고 있습니다. 잠재적으로 손상될 수 있는 변경을 수행하기 전에 TLS 1.0 또는 TLS 1.1을 사용하는 연결을 모니터링합니다. 영향을 받을 수 있는 AWS 고객 중 한 명인 경우 AWS Health Dashboard와 이메일로 알려드립니다. 2023년 6월 28일 이후 여전히 오래된 버전을 사용하는 연결이 있더라도, AWS는 API 엔드포인트 구성을 업데이트하여 TLS 1.0 및 TLS 1.1을 제거합니다.

AWS re:Inforce 2022에 ‘AWS 서비스 API 데이터보호 기능을 TLS 1.2+로 향상(Uplifting AWS service API data protection to TLS 1.2+)’라는 이 프로젝트에 대한 비디오 프레젠테이션이 있습니다.

이 업데이트를 준비하기 위해 무엇을 해야 할까요?

자체 식별을 통해 TLS 1.0 또는 1.1을 사용하는 연결이 있는지 확인하여 위험을 최소화할 수 있습니다. TLS 1.0 또는 1.1을 사용하는 연결이 있으면 TLS 1.2 이상을 사용하도록 클라이언트 소프트웨어를 업데이트해야 합니다.

AWS CloudTrail 레코드는 특히 오래된 TLS 버전을 사용하는지 확인하는 데 유용합니다. 이제 최근에 추가된 tlsDetails 필드를 사용하여 연결에 사용되는 TLS 버전을 검색할 수 있습니다. 각 CloudTrail 레코드의 tlsDetails 구조에는 TLS 버전, 암호 스위트 및 서비스 API 호출에 사용되는 클라이언트 제공 호스트 이름(일반적으로 서비스 엔드포인트의 Fully Qualified Domain Name(FQDN))이 포함됩니다. 그러면 레코드 데이터를 사용하여 TLS 1.0 또는 1.1 호출을 담당하는 클라이언트 소프트웨어를 찾아내고, 그에 따라 업데이트할 수 있습니다. 현재 AWS 서비스의 절반 이상이 CloudTrail tlsDetails 필드에 TLS 정보를 제공하고 있으며, 향후 몇 달 이내에 나머지 서비스에 대해서도 이 정보를 제공할 예정입니다.

CloudTrail TLS 쿼리를 실행하려면 다음 옵션 중 하나를 사용하는 것이 좋습니다. 이러한 옵션은 비용이 발생할 수 있습니다. AWS 가격 페이지를 통해 관련 서비스의 가격을 참조하십시오.

  1. AWS CloudTrail Lake: 블로그 게시물 ‘Using AWS CloudTrail Lake to identify older TLS connections‘에서 단계별로 따라갈 수 있으며, 샘플 TLS 쿼리를 사용할 수 있습니다. AWS CloudTrail Lake 콘솔에서 사용할 수 있는 기본 제공 샘플 CloudTrail TLS 쿼리도 있습니다.
  2. Amazon CloudWatch Log Insights: 그림 2와 같이 CloudWatch Log Insights 샘플 CloudTrail TLS 쿼리를 사용할 수 있습니다.
    그림 2: CloudWatch 로그 인사이트에 사용 가능한 샘플 TLS 쿼리
  3. Amazon Athena: Amazon Athena에서 AWS CloudTrail 로그를 쿼리할 수 있으며, 2022년 11월에는 CloudTrail 로그에서 TLS 값을 쿼리할 수 있도록 지원을 추가했습니다.
  4. Amazon S3 서버 액세스 로그는 Amazon S3 고객이 GetObject와 같은 데이터 연결을 포함하여 S3 버킷에 대한 자세한 요청을 볼 수 있는 옵션입니다.

모든 AWS FIPS 엔드포인트에 대해 TLS 1.2를 요구에 대한 블로그 게시물에 설명된대로 CloudTrail 데이터를 사용하는 것 외에도 코드, 네트워크 또는 로그 분석을 수행하여 연결에 사용되는 TLS 버전을 식별할 수 있습니다. 이 게시물은 FIPS API 엔드포인트를 언급하지만 TLS 버전 쿼리에 대한 정보는 모든 API 엔드포인트에 적용됩니다.

TLS 1.0 또는 TLS 1.1을 사용하게 되면, 알림을 받나요?

사용자가 TLS 1.0 또는 1.1을 사용하는 것을 감지하면, AWS Health Dashboard에 알림이 표시되고 이메일 알림을 받게 됩니다. 그러나 퍼블릭 Amazon Simple Storage Service(Amazon S3) 버킷과 같은 AWS 공유 리소스에 익명으로 연결한 경우, 익명 연결을 식별할 수 없으므로 알림을 받을 수 없습니다. 또한 모든 고객을 식별하고 알림을 전달하기 위한 많은 노력을 기울이겠지만, 매월 발생량 미만으로 드물게 연결되는 커넥션들은 감지하지 못 할 가능성이 있습니다.

TLS 1.2 또는 TLS 1.3을 사용하도록 클라이언트를 어떻게 업데이트 하나요?

AWS 소프트웨어 개발자 키트(AWS SDK) 또는 AWS 명령줄 인터페이스(AWS CLI)를 사용하는 경우, 클라이언트 소프트웨어 코드를 검사하고 최소한의 FIPS 엔드포인트가 되기 위해, 블로그 게시물 TLS 1.2에 사용된 TLS 버전을 올바르게 구성하는 방법에 대한 자세한 지침을 따르세요.
또한 AWS re:Inforce 2022 프레젠테이션 Uplifting AWS service API data protection to TLS 1.2+(DPP202)에서 클라이언트의 TLS 버전 식별 및 업데이트에 대한 정보가 제공됩니다.
가용성에 영향끼치는 것을 방지하기 위해서 사전 예방적으로 대처하는 것이 좋으며, 상용 워크로드에 적용하기 전에 검증 환경에서 테스트하는 것이 좋습니다.

TLS 1.0 또는 TLS 1.1의 가장 일반적인 용도는 무엇인가요?

TLS 1.0 또는 1.1의 가장 일반적인 용도는 4.6.2 이전 버전의 .NET Framework입니다. .NET Framework를 사용하는 경우, 버전 4.6.2 이상을 사용하는지 확인하십시오. TLS 1.2를 지원하도록 .NET Framework를 업데이트하고 구성하는 방법에 대한 자세한 내용은 이 re:post 문서 또는 .NET Configuration Manager 문서의 클라이언트에서 TLS 1.2를 활성화하는 방법을 참조하십시오.

Transport Layer Secuirty (TLS)란 무엇인가요?

Transport Layer Security(TLS)는 인터넷 통신을 보호하는 암호화 프로토콜입니다. 서비스 끝점에 연결할 때 TLS 버전 1.0, 1.1, 1.2 또는 1.3을 사용하도록 클라이언트 소프트웨어를 설정할 수 있습니다. 클라이언트 소프트웨어가 TLS 1.2 이상을 지원하는지 확인해야 합니다. TLS 1.3을 추가하기 위한 AWS의 노력에 대한 2023년 5월 23일 블로그 게시물을 방문하실 수 있습니다.

클라이언트 소프트웨어를 확인하거나 업데이트하는 데 도움이 되는 추가 지원이 있나요?

이 비디오, AWS 지원: TLS 1.2 세션에서 클라이언트 업데이트, 향후 변경 사항에 대한 추가 세부 정보, AWS CloudTrail Lake에 대한 설명, 소프트웨어 클라이언트 업데이트 방법에 대한 지침을 공유합니다. 질문이나 문제가 있는 경우, AWS re:Post 커뮤니티에서 새 스레드를 시작하거나, AWS Support 또는 Technical Account Manager(TAM)에 문의할 수 있습니다. 또한 AWS IQ를 사용하면, TLS 클라이언트 구성 요소 업데이트 기술지원을 위해 AWS 인증된 3rd-party 전문가를 찾아 안전하게 협업하고, 비용을 지불할 수 있습니다. 요청을 제출하고, 전문가의 답변을 받고, 올바른 기술과 경험을 갖춘 전문가를 선택하는 방법은 AWS IQ 페이지를 참조하십시오. AWS 관리 콘솔에 로그인하고 AWS IQ 시작하기를 선택하여 요청을 시작합니다.

클라이언트 소프트웨어를 업데이트 할 수 없다면 어떻게 해야 하나요?

TLS 1.2 또는 TLS 1.3 사용을 위한 업데이트가 불가한 경우, AWS Support 또는 Technical Account Manager(TAM)에 문의하여 최적의 솔루션을 찾을 수 있습니다. 고객이 TLS 1.0 또는 TLS 1.1을 사용하여 컨텐츠에 액세스하는 데 사용하는 Amazon S3(Amazon S3) 버킷을 소유하고 있는 경우, “TLS 1.2 이상을 사용하지 않는 고객에게 Amazon S3 버킷에 대한 액세스를 허용하려면 어떻게 해야 합니까?”에 대한 AWS 기술 자료 지침을 따를 수 있습니다. 또한 이 AWS 기술 자료 지침에 따라 S3 버킷에 대한 모든 커넥션에 TLS 1.2 버전 이상을 강제 할 수 있습니다.