CloudFront에 대한 상호 TLS(오리진)
상호 TLS 인증(상호 전송 계층 보안 인증 - mTLS)은 양방향 인증서 기반 인증을 요구하여 표준 TLS 인증을 확장하는 보안 프로토콜로, 클라이언트와 서버 모두 보안 연결을 설정하기 전에 자격 증명을 증명해야 합니다.
뷰어 mTLS와 오리진 mTLS 비교
뷰어와 CloudFront 배포(뷰어 mTLS) 간에 또는 CloudFront 배포와 오리진(오리진 mTLS) 간에 상호 인증(mTLS)을 활성화할 수 있습니다. 이 문서는 오리진 mTLS 구성에 관한 것입니다. 뷰어 mTLS 구성은 CloudFront에 대한 상호 TLS 인증(뷰어 mTLS) 섹션을 참조하세요.
상호 TLS(오리진)를 통해 CloudFront가 클라이언트 인증서를 사용하여 오리진 서버에 자체 인증을 수행할 수 있습니다. 상호 TLS(오리진)를 사용하면 승인된 CloudFront 배포만 애플리케이션 서버와의 연결을 설정할 수 있으므로 무단 액세스 시도가 방지됩니다.
참고
상호 TLS(오리진) 연결에서 CloudFront는 클라이언트 역할을 하며 TLS 핸드셰이크 중에 오리진 서버에 클라이언트 인증서를 제시합니다. CloudFront는 클라이언트 인증서의 유효성 또는 해지 상태에 대한 검증을 수행하지 않습니다. 이는 오리진 서버의 책임입니다. 오리진 인프라는 보안 요구 사항에 따라 트러스트 스토어와 대조하여 클라이언트 인증서를 검증하고, 인증서 만료를 확인하고, 해지 확인(예: CRL 또는 OCSP 검증)을 수행하도록 구성되어야 합니다. CloudFront의 역할은 인증서를 제공하는 것에 국한됩니다. 모든 인증서 검증 로직 및 보안 정책은 오리진 서버에서 적용됩니다.
작동 방식
CloudFront와 오리진 사이의 표준 TLS 핸드셰이크에서는 오리진 서버만 CloudFront에 ID를 증명하는 인증서를 제공합니다. 상호 TLS(오리진)를 사용하면 인증 프로세스가 양방향으로 이루어집니다. CloudFront가 오리진 서버에 연결을 시도할 때 CloudFront는 TLS 핸드셰이크 중에 클라이언트 인증서를 요청합니다. 오리진 서버는 보안 연결을 설정하기 전에 트러스트 스토어와 대조하여 이 인증서를 검증합니다.
사용 사례
상호 TLS(오리진)는 기존 인증 방법으로 운영 오버헤드가 발생하는 몇 가지 중요한 보안 시나리오를 해결합니다.
-
하이브리드 및 멀티 클라우드 보안 - CloudFront와 AWS 외부에서 호스팅되는 오리진 또는 AWS에 있는 퍼블릭 오리진 간의 연결을 보호할 수 있습니다. 따라서 IP 허용 목록 또는 사용자 지정 헤더 솔루션을 관리할 필요가 없으므로 AWS, 온프레미스 데이터 센터 및 서드파티 공급자 간에 일관된 인증서 기반 인증을 제공할 수 있습니다. 분산 인프라를 운영하는 미디어 회사, 소매업체 및 기업은 전체 인프라에서 표준화된 보안 제어를 활용할 수 있습니다.
-
B2B API 및 백엔드 보안 - CloudFront의 성능 이점을 유지하면서 직접 액세스 시도로부터 백엔드 API 및 마이크로서비스를 보호할 수 있습니다. 인증 요구 사항이 엄격한 SaaS 플랫폼, 결제 처리 시스템 및 엔터프라이즈 애플리케이션은 API 요청이 승인된 CloudFront 배포에서만 시작되는지 확인하여 중간자 공격 및 무단 액세스 시도를 방지할 수 있습니다.
중요: 오리진 서버 요구 사항
상호 TLS(오리진)를 사용하려면 상호 TLS 인증을 지원하도록 오리진 서버를 구성해야 합니다. 오리진 인프라는 다음을 수행할 수 있어야 합니다.
-
TLS 핸드셰이크 중 클라이언트 인증서 요청 및 검증
-
CloudFront의 클라이언트 인증서를 발급한 인증 기관 인증서로 트러스트 스토어 유지 관리
-
상호 TLS 연결 이벤트 로깅 및 모니터링
-
인증서 검증 정책 관리 및 인증 실패 처리
CloudFront가 클라이언트 측 인증서 제시를 처리하지만, 이러한 인증서를 검증하고 상호 TLS 연결을 관리할 책임은 오리진 서버에 있습니다. CloudFront에서 상호 TLS(오리진)를 활성화하기 전에 오리진 인프라가 올바르게 구성되어 있는지 확인합니다.
시작하기
CloudFront와 상호 TLS(오리진)를 구현하려면 AWS Certificate Manager에서 클라이언트 인증서를 가져오고, 상호 TLS를 요구하도록 오리진 서버를 구성하고, CloudFront 배포에서 상호 TLS(오리진)를 활성화해야 합니다. 다음 섹션에서는 각 구성 작업에 대한 단계별 지침을 제공합니다.