기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
상호 TLS 인증
중요
지원 종료 알림: 2026년 9월 30일에 에 대한 지원을 중단할 AWS 예정입니다 AWS App Mesh. 2026년 9월 30일 이후에는 AWS App Mesh 콘솔 또는 AWS App Mesh 리소스에 더 이상 액세스할 수 없습니다. 자세한 내용은 이 블로그 게시물에서 에서 Amazon ECS Service Connect AWS App Mesh 로 마이그레이션을
상호TLS(Transport Layer Security) 인증은 양방향 피어 인증을 TLS 제공하는 의 선택적 구성 요소입니다. 상호 TLS 인증은 에 보안 계층을 추가TLS하고 서비스가 연결을 수행하는 클라이언트를 확인할 수 있도록 합니다.
클라이언트-서버 관계에 있는 클라이언트도 세션 협상 프로세스 중에 X.509 인증서를 제공합니다. 서버는 이 인증서를 사용하여 클라이언트를 식별하고 인증합니다. 이 프로세스를 통해 신뢰할 수 있는 인증 기관(CA)에서 발급한 인증서인지와 유효한 인증서인지 확인할 수 있습니다. 또한 인증서의 주체 대체 이름(SAN)을 사용하여 클라이언트를 식별합니다.
에서 지원하는 모든 프로토콜에 대해 상호 TLS 인증을 활성화할 수 있습니다 AWS App Mesh. TCP, HTTP/1.1, HTTP/2, g 입니다RPC.
참고
App Mesh를 사용하면 서비스에서 Envoy 프록시 간의 통신을 위한 상호 TLS 인증을 구성할 수 있습니다. 하지만 애플리케이션과 Envoy 프록시 간의 통신은 암호화되지 않습니다.
상호 TLS 인증 인증서
AWS App Mesh 는 상호 TLS 인증을 위해 두 개의 가능한 인증서 소스를 지원합니다. 클라이언트 정책의 TLS 클라이언트 인증서와 리스너 TLS 구성의 서버 검증은 다음에서 소싱할 수 있습니다.
-
파일 시스템 - 실행 중인 Envoy 프록시의 로컬 파일 시스템에서 가져온 인증서. 인증서를 Envoy에 배포하려면 인증서 체인 및 프라이빗 키의 파일 경로를 App Mesh 에 제공해야 합니다API.
-
Envoy의 Secret Discovery Service(SDS) - Bring-your-own 인증서를 구현SDS하고 Envoy로 전송하도록 허용하는 사이드카입니다. 여기에는 SPIFFE 런타임 환경()이 포함됩니다SPIRE.
중요
App Mesh는 상호 TLS 인증에 사용되는 인증서 또는 프라이빗 키를 저장하지 않습니다. 대신 Envoy는 이러한 항목을 메모리에 저장합니다.
메시 엔드포인트 구성
가상 노드 또는 게이트웨이와 같은 메시 엔드포인트에 대한 상호 TLS 인증을 구성합니다. 이러한 엔드포인트는 인증서를 제공하고 신뢰할 수 있는 기관을 지정합니다.
이렇게 하려면 클라이언트와 서버 모두에 X.509 인증서를 프로비저닝하고 TLS 종료 및 TLS 오리진의 검증 컨텍스트에서 신뢰할 수 있는 권한 인증서를 명시적으로 정의해야 합니다.
- 메시 내부의 신뢰
-
서버 측 인증서는 Virtual Node 리스너(TLS종료)에서 구성되고 클라이언트 측 인증서는 Virtual Nodes 서비스 백엔드(TLS오리진)에서 구성됩니다. 이 구성 대신, 가상 노드의 모든 서비스 백엔드에 대한 기본 클라이언트 정책을 정의한 다음, 필요에 따라 특정 백엔드에 대해 이 정책을 재정의할 수 있습니다. 가상 게이트웨이는 모든 백엔드에 적용되는 기본 클라이언트 정책으로만 구성할 수 있습니다.
두 메시 모두에 대해 Virtual Gateway의 인바운드 트래픽에 대한 상호 TLS 인증을 활성화하여 서로 다른 메시에 대한 신뢰를 구성할 수 있습니다.
- 메시 외부의 신뢰
-
TLS 종료를 위해 Virtual Gateway 리스너에서 서버 측 인증서를 지정합니다. 가상 게이트웨이와 통신하여 클라이언트 측 인증서를 제공하는 외부 서비스를 구성합니다. 인증서는 서버 측 인증서가 Virtual Gateway 리스너에서 TLS 오리진에 사용하는 것과 동일한 인증 기관(CAs) 중 하나에서 파생되어야 합니다.
상호 TLS 인증으로 서비스 마이그레이션
App Mesh 내의 기존 서비스를 상호 TLS 인증으로 마이그레이션할 때 연결을 유지하려면 다음 지침을 따르세요.
일반 텍스트를 통해 통신하는 서비스 마이그레이션
-
서버 엔드포인트의 TLS 구성에 대해
PERMISSIVE
모드를 활성화합니다. 이 모드에서는 일반 텍스트 트래픽이 엔드포인트에 연결하도록 허용합니다. -
서버 인증서, 신뢰 체인 및 선택적으로 신뢰할 수 있는 를 지정하여 서버에 대한 상호 TLS 인증을 구성합니다SANs.
-
TLS 연결을 통해 통신이 이루어지고 있는지 확인합니다.
-
클라이언트 인증서, 신뢰 체인 및 선택적으로 신뢰할 수 있는 를 지정하여 클라이언트에 대한 상호 TLS 인증을 구성합니다SANs.
-
서버의 TLS 구성에 대해
STRICT
모드를 활성화합니다.
를 통해 통신하는 서비스 마이그레이션 TLS
-
클라이언트 인증서와 선택적으로 신뢰할 수 있는 를 지정하여 클라이언트에 대한 상호 TLS 설정을 구성합니다SANs. 클라이언트 인증서는 백엔드 서버에서 요청하기 전까지는 백엔드로 전송되지 않습니다.
-
서버에서 상호 TLS 설정을 구성하여 신뢰 체인과 선택적으로 신뢰할 수 있는 를 지정합니다SANs. 이를 위해 서버는 클라이언트 인증서를 요청합니다.
상호 TLS 인증 확인
전송 계층 보안: 암호화 문서 확인을 참조하여 Envoy가 TLS관련 통계를 정확히 내보내는 방법을 확인할 수 있습니다. 상호 TLS 인증의 경우 다음 통계를 검사해야 합니다.
-
ssl.handshake
-
ssl.no_certificate
-
ssl.fail_verify_no_cert
-
ssl.fail_verify_san
다음 두 가지 통계 예제는 가상 노드에 대한 성공적인 TLS 연결이 모두 인증서를 제공한 클라이언트에서 시작되었음을 보여줍니다.
listener.0.0.0.0_15000.ssl.handshake: 3
listener.0.0.0.0_15000.ssl.no_certificate: 0
다음 통계 예제는 가상 클라이언트 노드(또는 게이트웨이)에서 백엔드 가상 노드로의 연결이 실패했음을 보여 줍니다. 서버 인증서에 표시된 주체 대체 이름(SAN)이 클라이언트에서 SANs 신뢰하는 와 일치하지 않습니다.
cluster.cds_egress_my-mesh_my-backend-node_http_9080.ssl.fail_verify_san: 5
App Mesh 상호 TLS 인증 연습
-
상호 TLS 인증 연습
: 이 연습에서는 App Mesh를 사용하여 상호 TLS 인증으로 컬러 앱을 CLI 구축하는 방법을 설명합니다. -
Amazon EKS 상호 TLS SDS기반 연습
: 이 연습에서는 Amazon EKS 및 SPIFFE 런타임 환경()에서 상호 TLS SDS기반 인증을 사용하는 방법을 보여줍니다SPIRE. -
Amazon EKS 상호 TLS 파일 기반 연습
: 이 연습에서는 Amazon EKS 및 SPIFFE 런타임 환경()에서 상호 TLS 파일 기반 인증을 사용하는 방법을 보여줍니다SPIRE.