

# 오리진 상호 TLS와 함께 CloudFront Functions 사용
<a name="origin-mtls-cloudfront-functions"></a>

CloudFront Functions는 콘텐츠 전송을 사용자 지정하도록 엣지에서 경량 서버리스 컴퓨팅을 제공합니다. CloudFront Functions와 함께 오리진 상호 TLS를 사용하는 경우 오리진 선택 및 조작과 관련하여 알아야 할 특정 동작 및 제한 사항이 있습니다.

## 지원되는 CloudFront Functions 작업
<a name="supported-cloudfront-functions-operations"></a>

CloudFront Functions는 다음과 같은 방법으로 mTLS가 활성화된 오리진과 상호 작용할 수 있습니다.

### updateRequestOrigin()
<a name="update-request-origin-function"></a>

updateRequestOrigin() 함수는 mTLS가 활성화된 오리진을 사용하여 작업할 때 제한적인 수정을 지원합니다.
+ **오리진 mTLS 오리진 간 전환:** 두 오리진이 **동일한 클라이언트 인증서**를 사용하는 경우 오리진 mTLS를 사용하는 다른 오리진으로 라우팅하도록 요청을 업데이트할 수 있습니다. 이를 통해 상호 TLS 인증을 유지하면서 사용자 지정 라우팅 로직을 구현할 수 있습니다.
+ **오리진 mTLS 비활성화:** 함수에서 `mTLSConfig: 'off'`를 설정하여 mTLS가 활성화된 오리진에서 비 mTLS 오리진으로 전환할 수 있습니다. 이렇게 하면 요청 특성에 따라 상호 TLS 인증을 조건부로 비활성화할 수 있는 유연성이 제공됩니다.

#### 예: 동일한 인증서를 사용하여 오리진 mTLS 오리진 간 전환
<a name="example-switching-mtls-origins"></a>

```
function handler(event) {
    var request = event.request;

    // Route to different origin based on request path
    if (request.uri.startsWith('/api/v2')) {
        request.origin = {
            domainName: 'api-v2.example.com',
            customHeaders: {},
            // Both origins must use the same certificate
        };
    }

    return request;
}
```

#### 예: 조건부로 오리진 mTLS 비활성화
<a name="example-disabling-mtls"></a>

```
function handler(event) {
    var request = event.request;

    // Disable mTLS for specific paths
    if (request.uri.startsWith('/public')) {
        request.origin = {
            domainName: 'public-origin.example.com',
            customHeaders: {},
            mTLSConfig: 'off'
        };
    }

    return request;
}
```

## 지원되지 않는 CloudFront Functions 작업
<a name="unsupported-cloudfront-functions-operations"></a>

다음 CloudFront Functions 작업은 정식 출시 시점에 mTLS가 활성화된 오리진을 지원하지 않습니다.

### selectRequestOriginById()
<a name="select-request-origin-by-id-function"></a>

`selectRequestOriginById()` 함수는 오리진 mTLS가 활성화된 오리진을 선택할 수 없습니다. 이 함수를 사용하여 mTLS가 활성화된 오리진을 선택하려고 하면 검증 오류가 발생합니다.

사용 사례에 따라 오리진 mTLS를 사용한 동적 오리진 선택이 필요한 경우, 모든 대상 오리진이 동일한 클라이언트 인증서를 사용하도록 `updateRequestOrigin()`을 대신 사용하세요.

### createRequestOriginGroup()
<a name="create-request-origin-group-function"></a>

`createRequestOriginGroup()` 함수는 mTLS가 활성화된 오리진을 포함하는 오리진 그룹 생성을 지원하지 않습니다. 오리진 mTLS 오리진이 있는 오리진 그룹은 CloudFront Functions를 통해 동적으로 생성할 수 없습니다.

오리진 mTLS를 사용한 오리진 장애 조치 기능이 필요한 경우 함수에서 동적으로 생성하는 대신 CloudFront 배포 설정에서 오리진 그룹을 직접 구성하세요.