오리진 상호 TLS와 함께 CloudFront Functions 사용
CloudFront Functions는 콘텐츠 전송을 사용자 지정하도록 엣지에서 경량 서버리스 컴퓨팅을 제공합니다. CloudFront Functions와 함께 오리진 상호 TLS를 사용하는 경우 오리진 선택 및 조작과 관련하여 알아야 할 특정 동작 및 제한 사항이 있습니다.
지원되는 CloudFront Functions 작업
CloudFront Functions는 다음과 같은 방법으로 mTLS가 활성화된 오리진과 상호 작용할 수 있습니다.
updateRequestOrigin()
updateRequestOrigin() 함수는 mTLS가 활성화된 오리진을 사용하여 작업할 때 제한적인 수정을 지원합니다.
-
오리진 mTLS 오리진 간 전환: 두 오리진이 동일한 클라이언트 인증서를 사용하는 경우 오리진 mTLS를 사용하는 다른 오리진으로 라우팅하도록 요청을 업데이트할 수 있습니다. 이를 통해 상호 TLS 인증을 유지하면서 사용자 지정 라우팅 로직을 구현할 수 있습니다.
-
오리진 mTLS 비활성화: 함수에서
mTLSConfig: 'off'를 설정하여 mTLS가 활성화된 오리진에서 비 mTLS 오리진으로 전환할 수 있습니다. 이렇게 하면 요청 특성에 따라 상호 TLS 인증을 조건부로 비활성화할 수 있는 유연성이 제공됩니다.
예: 동일한 인증서를 사용하여 오리진 mTLS 오리진 간 전환
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 비활성화
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 작업
다음 CloudFront Functions 작업은 정식 출시 시점에 mTLS가 활성화된 오리진을 지원하지 않습니다.
selectRequestOriginById()
selectRequestOriginById() 함수는 오리진 mTLS가 활성화된 오리진을 선택할 수 없습니다. 이 함수를 사용하여 mTLS가 활성화된 오리진을 선택하려고 하면 검증 오류가 발생합니다.
사용 사례에 따라 오리진 mTLS를 사용한 동적 오리진 선택이 필요한 경우, 모든 대상 오리진이 동일한 클라이언트 인증서를 사용하도록 updateRequestOrigin()을 대신 사용하세요.
createRequestOriginGroup()
createRequestOriginGroup() 함수는 mTLS가 활성화된 오리진을 포함하는 오리진 그룹 생성을 지원하지 않습니다. 오리진 mTLS 오리진이 있는 오리진 그룹은 CloudFront Functions를 통해 동적으로 생성할 수 없습니다.
오리진 mTLS를 사용한 오리진 장애 조치 기능이 필요한 경우 함수에서 동적으로 생성하는 대신 CloudFront 배포 설정에서 오리진 그룹을 직접 구성하세요.