View a markdown version of this page

CloudFront에 대한 상호 TLS 인증(뷰어 mTLS) - Amazon CloudFront

CloudFront에 대한 상호 TLS 인증(뷰어 mTLS)

상호 TLS 인증(상호 전송 계층 보안 인증 - mTLS)은 양방향 인증서 기반 인증을 요구하여 표준 TLS 인증을 확장하는 보안 프로토콜로, 클라이언트와 서버 모두 보안 연결을 설정하기 전에 자격 증명을 증명해야 합니다. 상호 TLS를 사용하면 신뢰할 수 있는 TLS 인증서를 제공하는 클라이언트만 CloudFront 배포에 액세스할 수 있습니다.

작동 방식

표준 TLS 핸드셰이크에서는 서버만 클라이언트에 자격 증명을 증명하는 인증서를 제공합니다. 상호 TLS를 사용하면 인증 프로세스가 양방향이 됩니다. 클라이언트가 CloudFront 배포에 연결을 시도하면 CloudFront는 TLS 핸드셰이크 중에 클라이언트 인증서를 요청합니다. 클라이언트는 보안 연결을 설정하기 전에 CloudFront가 구성된 트러스트 스토어에 대해 검증하는 유효한 X.509 인증서를 제시해야 합니다.

CloudFront는 AWS 엣지 로케이션에서 이 인증서 검증을 수행하여 오리진 서버에서 인증 복잡성을 오프로드하는 동시에 CloudFront의 글로벌 성능 이점을 유지합니다. 다음 세 가지 모드로 mTLS를 구성할 수 있습니다.

  • 필수 모드(기본값) - CloudFront는 트러스트 스토어에 대해 클라이언트 인증서를 검증합니다. 검증에 실패하거나 인증서가 표시되지 않으면 CloudFront는 연결을 거부합니다. 모든 클라이언트가 유효한 인증서로 인증해야 하는 경우 필수 모드를 사용합니다.

  • 선택적 모드 - CloudFront는 클라이언트 인증서가 제공되는 경우 클라이언트 인증서를 검증하지만 인증서 없이 연결을 허용합니다. 인증서 메타데이터는 오리진의 Connection Functions 및 HTTP 헤더에서 권한 부여 결정을 내릴 수 있습니다. 인증된 클라이언트와 인증되지 않은 클라이언트를 모두 지원하는 경우 선택적 모드를 사용합니다.

  • 패스스루 모드 - CloudFront는 트러스트 스토어에 대해 클라이언트 인증서를 검증하지 않습니다. CloudFront는 클라이언트가 해당 프라이빗 키를 소유하고 있는지만 검증합니다. 검증을 수행하기 위해 오리진에 인증서를 HTTP 헤더로 전달합니다. 트러스트 스토어가 필요하지 않으며 캐싱이 발생하지 않습니다. 오리진에 기존 mTLS 구현이 있는 경우 패스스루 모드를 사용합니다.

사용 사례

CloudFront를 사용한 상호 TLS 인증은 기존 인증 방법이 충분하지 않은 몇 가지 중요한 보안 시나리오를 해결합니다.

  • 콘텐츠 캐싱을 사용한 디바이스 인증 - 펌웨어 업데이트, 게임 다운로드 또는 내부 리소스에 대한 액세스를 허용하기 전에 게임 콘솔, IoT 디바이스 또는 회사 하드웨어를 인증할 수 있습니다. 각 디바이스에는 CloudFront의 캐싱 기능을 활용하면서 신뢰성을 입증하는 고유한 인증서가 포함되어 있습니다.

  • API-to-API 인증 - 신뢰할 수 있는 비즈니스 파트너, 결제 시스템 또는 마이크로 서비스 간의 시스템 대 시스템 통신을 보호할 수 있습니다. 인증서 기반 인증을 사용하면 공유 보안 암호 또는 API 키를 사용할 필요 없이 자동 데이터 교환을 위한 강력한 자격 증명 확인을 제공합니다.