CloudFront 배포에 상호 TLS(오리진) 활성화
AWS Certificate Manager를 통해 클라이언트 인증서를 획득하고 상호 TLS를 요구하도록 오리진 서버를 구성한 후 CloudFront 배포에서 상호 TLS(오리진)를 활성화할 수 있습니다.
사전 조건 및 요구 사항
CloudFront 배포에서 상호 TLS(오리진)를 활성화하기 전에 다음이 있어야 합니다.
미국 동부(버지니아 북부) 리전(us-east-1)의 AWS Certificate Manager에 저장된 클라이언트 인증서
상호 TLS 인증을 요구하고 클라이언트 인증서를 검증하도록 구성된 오리진 서버
공개적으로 신뢰할 수 있는 인증 기관의 인증서를 제시하는 오리진 서버
CloudFront 배포를 수정할 수 있는 권한
상호 TLS(오리진)는 비즈니스, 프리미엄 또는 종량제 요금제에서만 사용할 수 있습니다.
참고
사용자 지정 오리진(AWS 외부에서 호스팅되는 오리진 포함)과 Application Load Balancer 및 API Gateway와 같은 상호 TLS를 지원하는 AWS 오리진에 대해 상호 TLS(오리진)를 구성할 수 있습니다.
중요
다음 CloudFront 기능은 상호 TLS(오리진)에서 지원되지 않습니다.
gRPC 트래픽: 상호 TLS(오리진)가 활성화된 오리진에는 gRPC 프로토콜이 지원되지 않습니다.
WebSocket 연결: 상호 TLS(오리진)가 활성화된 오리진에는 WebSocket 프로토콜이 지원되지 않습니다.
VPC 오리진: 상호 TLS(오리진)는 VPC 오리진과 함께 사용할 수 없습니다.
Lambda@Edge를 사용한 오리진 요청 및 오리진 응답 트리거: 오리진 요청 및 오리진 응답 위치의 Lambda@Edge 함수는 상호 TLS(오리진)에서 지원되지 않습니다.
임베디드 POP: 임베디드 POP에는 상호 TLS(오리진)가 지원되지 않습니다.
상호 TLS(오리진) 활성화
오리진별 구성을 사용하면 동일한 배포 내에서 오리진별로 서로 다른 클라이언트 인증서를 지정할 수 있습니다. 이 접근 방식은 오리진별로 인증 요구 사항이 다를 때 유연성을 극대화합니다.
새 배포의 경우(콘솔)
-
AWS Management Console에 로그인한 다음 https://console.aws.amazon.com/cloudfront/v4/home
에서 CloudFront 콘솔을 엽니다. -
배포 생성을 선택합니다.
-
요금제 선택: 비즈니스 또는 프리미엄 또는 종량제를 선택합니다(상호 TLS(오리진)는 무료 요금제로 사용할 수 없음).
-
오리진 설정 섹션에서 오리진 유형을 기타로 선택합니다.
-
오리진 설정 섹션에서 오리진 설정 사용자 지정을 선택합니다.
-
첫 번째 오리진(도메인 이름, 프로토콜 등)을 구성합니다.
-
오리진 구성에서 상호 TLS(오리진)를 찾습니다.
-
상호 TLS(오리진) 활성화를 켜기로 전환합니다.
-
클라이언트 인증서의 경우 Certificate Manager에서 AWS 인증서를 선택합니다.
-
(선택 사항) 자체 상호 TLS(오리진) 구성으로 오리진을 더 추가합니다.
-
나머지 배포 설정을 완료한 다음 배포 생성을 선택합니다.
기존 배포의 경우(콘솔)
AWS Management Console에 로그인한 다음 https://console.aws.amazon.com/cloudfront/v4/home
에서 CloudFront 콘솔을 엽니다. -
배포 목록에서 수정하려는 배포를 선택합니다. (참고: 해당 배포가 프로 또는 프리미엄 또는 종량제 요금제에 포함되어 있는지 확인하세요. 포함되지 않은 경우 상호 TLS(오리진)를 활성화하기 전에 요금제를 업그레이드해야 합니다.)
-
오리진 탭을 선택합니다.
-
구성하려는 오리진을 선택하고 편집을 선택합니다.
-
오리진 설정에서 상호 TLS(오리진)를 찾습니다.
-
상호 TLS(오리진) 활성화를 켜기로 전환합니다.
-
클라이언트 인증서의 경우 AWS Certificate Manager에서 인증서를 선택합니다. (참고: EKU(확장 키 사용) 속성이 "TLS 클라이언트 인증"으로 설정된 클라이언트 인증서만 나열됩니다.)
-
변경 사항 저장을 선택합니다
-
필요에 따라 추가 오리진에 대해 이 과정을 반복합니다.
AWS CLI 사용
오리진별 구성의 경우 각 오리진의 구성 내에서 상호 TLS(오리진) 설정을 지정합니다.
{ "Origins": { "Quantity": 2, "Items": [ { "Id": "origin-1", "DomainName": "api.example.com", "CustomOriginConfig": { "HTTPSPort": 443, "OriginProtocolPolicy": "https-only" }, "OriginMtlsConfig": { "ClientCertificateArn": "arn:aws:acm:us-east-1:123456789012:certificate/cert-1" } }, { "Id": "origin-2", "DomainName": "backend.example.com", "CustomOriginConfig": { "HTTPSPort": 443, "OriginProtocolPolicy": "https-only" }, "OriginMtlsConfig": { "CertificateArn": "arn:aws:acm:us-east-1:123456789012:certificate/cert-2" } } ] } }
참고
서버에서 요청하지 않으면 CloudFront가 클라이언트 인증서를 제공하지 않고 연결이 정상적으로 진행될 수 있습니다.
다음 단계
CloudFront 배포에서 상호 TLS(오리진)를 활성화한 후 CloudFront 액세스 로그를 사용하여 인증 이벤트를 모니터링할 수 있습니다.