CloudFront 배포에 상호 TLS(오리진) 활성화 - Amazon CloudFront

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(오리진) 활성화

오리진별 구성을 사용하면 동일한 배포 내에서 오리진별로 서로 다른 클라이언트 인증서를 지정할 수 있습니다. 이 접근 방식은 오리진별로 인증 요구 사항이 다를 때 유연성을 극대화합니다.

새 배포의 경우(콘솔)

  1. AWS Management Console에 로그인한 다음 https://console.aws.amazon.com/cloudfront/v4/home에서 CloudFront 콘솔을 엽니다.

  2. 배포 생성을 선택합니다.

  3. 요금제 선택: 비즈니스 또는 프리미엄 또는 종량제를 선택합니다(상호 TLS(오리진)는 무료 요금제로 사용할 수 없음).

  4. 오리진 설정 섹션에서 오리진 유형을 기타로 선택합니다.

  5. 오리진 설정 섹션에서 오리진 설정 사용자 지정을 선택합니다.

  6. 첫 번째 오리진(도메인 이름, 프로토콜 등)을 구성합니다.

  7. 오리진 구성에서 상호 TLS(오리진)를 찾습니다.

  8. 상호 TLS(오리진) 활성화를 켜기로 전환합니다.

  9. 클라이언트 인증서의 경우 Certificate Manager에서 AWS 인증서를 선택합니다.

  10. (선택 사항) 자체 상호 TLS(오리진) 구성으로 오리진을 더 추가합니다.

  11. 나머지 배포 설정을 완료한 다음 배포 생성을 선택합니다.

기존 배포의 경우(콘솔)

  1. AWS Management Console에 로그인한 다음 https://console.aws.amazon.com/cloudfront/v4/home에서 CloudFront 콘솔을 엽니다.

  2. 배포 목록에서 수정하려는 배포를 선택합니다. (참고: 해당 배포가 프로 또는 프리미엄 또는 종량제 요금제에 포함되어 있는지 확인하세요. 포함되지 않은 경우 상호 TLS(오리진)를 활성화하기 전에 요금제를 업그레이드해야 합니다.)

  3. 오리진 탭을 선택합니다.

  4. 구성하려는 오리진을 선택하고 편집을 선택합니다.

  5. 오리진 설정에서 상호 TLS(오리진)를 찾습니다.

  6. 상호 TLS(오리진) 활성화를 켜기로 전환합니다.

  7. 클라이언트 인증서의 경우 AWS Certificate Manager에서 인증서를 선택합니다. (참고: EKU(확장 키 사용) 속성이 "TLS 클라이언트 인증"으로 설정된 클라이언트 인증서만 나열됩니다.)

  8. 변경 사항 저장을 선택합니다

  9. 필요에 따라 추가 오리진에 대해 이 과정을 반복합니다.

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 액세스 로그를 사용하여 인증 이벤트를 모니터링할 수 있습니다.