

# CloudFront 배포에 오리진 상호 TLS 활성화
<a name="origin-enable-mtls-distributions"></a>

AWS Certificate Manager를 통해 클라이언트 인증서를 획득하고 상호 TLS를 요구하도록 오리진 서버를 구성한 후 CloudFront 배포에서 오리진 mTLS를 활성화할 수 있습니다.

## 사전 조건 및 요구 사항
<a name="origin-mtls-prerequisites-requirements"></a>

CloudFront 배포에서 오리진 mTLS를 활성화하기 전에 다음을 확인해야 합니다.
+ 미국 동부(버지니아 북부) 리전(us-east-1)의 AWS Certificate Manager에 저장된 클라이언트 인증서
+ 상호 TLS 인증을 요구하고 클라이언트 인증서를 검증하도록 구성된 오리진 서버
+ 공개적으로 신뢰할 수 있는 인증 기관의 인증서를 제시하는 오리진 서버
+ CloudFront 배포를 수정할 수 있는 권한
+ 오리진 mTLS는 비즈니스, 프리미엄 또는 종량제 요금제에서만 사용할 수 있습니다.

**참고**  
사용자 지정 오리진(AWS 외부에서 호스팅되는 오리진 포함)과 Application Load Balancer 및 API Gateway와 같은 상호 TLS를 지원하는 AWS 오리진에 대해 오리진 mTLS를 구성할 수 있습니다.

**중요**  
다음 CloudFront 기능은 오리진 mTLS에서 지원되지 않습니다.  
**gRPC 트래픽:** 오리진 mTLS가 활성화된 오리진에는 gRPC 프로토콜이 지원되지 않습니다.
**WebSocket 연결:** 오리진 mTLS가 활성화된 오리진에는 WebSocket 프로토콜이 지원되지 않습니다.
**VPC 오리진:** 오리진 mTLS는 VPC 오리진과 함께 사용할 수 없습니다.
**Lambda@Edge를 사용한 오리진 요청 및 오리진 응답 트리거:** 오리진 요청 및 오리진 응답 위치의 Lambda@Edge 함수는 오리진 mTLS에서 지원되지 않습니다.
**임베디드 POP:** 임베디드 POP에는 오리진 mTLS가 지원되지 않습니다.

## 오리진 mTLS 활성화
<a name="origin-enable-mtls-per-origin"></a>

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

### 새 배포의 경우(콘솔)
<a name="origin-enable-mtls-new-distributions"></a>

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

1. **배포 생성**을 선택합니다.

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

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

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

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

1. 오리진 구성에서 **mTLS**를 찾습니다.

1. **mTLS**를 켜기로 전환합니다.

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

1. (선택 사항) 자체 오리진 mTLS 구성으로 오리진을 더 추가합니다.

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

### 기존 배포의 경우(콘솔)
<a name="origin-enable-mtls-existing-distributions"></a>

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

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

1. **오리진** 탭을 선택합니다.

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

1. 오리진 설정에서 **mTLS**를 찾습니다.

1. **mTLS**를 켜기로 전환합니다.

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

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

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

## AWS CLI 사용
<a name="origin-enable-mtls-cli"></a>

오리진별 구성의 경우 각 오리진의 구성 내에서 오리진 mTLS 설정을 지정합니다.

```
{
  "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가 클라이언트 인증서를 제공하지 않고 연결이 정상적으로 진행될 수 있습니다.

## 다음 단계
<a name="origin-enable-mtls-next-steps"></a>

CloudFront 배포에서 오리진 mTLS를 활성화한 후 CloudFront 액세스 로그를 사용하여 인증 이벤트를 모니터링할 수 있습니다.