오리진 상호 TLS와 함께 CloudFront Functions 사용
CloudFront Functions는 콘텐츠 전송을 사용자 지정하도록 엣지에서 경량 서버리스 컴퓨팅을 제공합니다. CloudFront Functions와 함께 오리진 상호 TLS를 사용하는 경우 오리진 선택 및 조작과 관련하여 알아야 할 특정 동작 및 제한 사항이 있습니다.
지원되는 CloudFront Functions 작업
CloudFront Functions는 다음과 같은 방법으로 mTLS가 활성화된 오리진과 상호 작용할 수 있습니다.
updateRequestOrigin()
updateRequestOrigin() 함수는 mTLS가 활성화된 오리진을 사용하여 작업할 때 제한적인 수정을 지원합니다.
-
오리진 mTLS 오리진 간 전환: 두 오리진이 동일한 클라이언트 인증서를 사용하는 경우 오리진 mTLS를 사용하는 다른 오리진으로 라우팅하도록 요청을 업데이트할 수 있습니다. 이를 통해 상호 TLS 인증을 유지하면서 사용자 지정 라우팅 로직을 구현할 수 있습니다. 서로 다른 인증서를 사용하는 오리진 간 전환은
selectRequestOriginById()및createRequestOriginGroup()API를 통해 지원됩니다. -
오리진 mTLS 비활성화: 함수에서
mTLSConfig: 'off'를 설정하여 mTLS가 활성화된 오리진에서 비 mTLS 오리진으로 전환할 수 있습니다. 이렇게 하면 요청 특성에 따라 상호 TLS 인증을 조건부로 비활성화할 수 있는 유연성이 제공됩니다.
예: 동일한 인증서를 사용하여 오리진 mTLS 오리진 간 전환
import cf from 'cloudfront'; function handler(event) { var request = event.request; // Route to different origin based on request path if (request.uri.startsWith('/api/v2')) { cf.updateRequestOrigin({ "domainName": "api-v2.example.com", "mTLSConfig": "inherit", // If no value is provided for mTLSConfig, it defaults to inherit // Both origins must use the same certificate }); } return request; }
예: 조건부로 오리진 mTLS 비활성화
import cf from 'cloudfront'; function handler(event) { var request = event.request; // Disable mTLS for specific paths if (request.uri.startsWith('/public')) { cf.updateRequestOrigin({ "domainName": "public-origin.example.com", "mTLSConfig": "off" }); } return request; }
selectRequestOriginById()
selectRequestOriginById() 함수는 상호 TLS(오리진)가 활성화된 오리진 선택을 지원합니다. 이 함수를 사용하여 배포에 구성된 mTLS 지원 오리진으로 요청을 동적으로 라우팅할 수 있습니다. ID별로 상호 TLS(오리진)가 활성화된 오리진을 선택하면 CloudFront는 배포 설정에서 해당 오리진에 대해 구성된 클라이언트 인증서를 사용합니다.
예: ID별로 상호 TLS(오리진) 지원 오리진 선택
import cf from 'cloudfront'; function handler(event) { var request = event.request; // Select mTLS-enabled origin based on request characteristics if (request.uri.startsWith('/secure-api')) { cf.selectRequestOriginById("mtls-origin-1"); } return request; }
createRequestOriginGroup()
createRequestOriginGroup() 함수는 상호 TLS(오리진)가 활성화된 오리진을 포함하는 오리진 그룹 생성을 지원합니다. CloudFront Functions 내에서 장애 조치 시나리오에 대해 mTLS 지원 오리진을 사용하여 오리진 그룹을 동적으로 생성할 수 있습니다.
예: 상호 TLS(오리진)가 활성화된 오리진 그룹 생성
import cf from 'cloudfront'; function handler(event) { // Create origin group with mTLS-enabled primary and failover origins cf.createRequestOriginGroup({ "originIds": ["mtls-origin-primary", "mtls-origin-failover"], "failoverCriteria": { "statusCodes": [500, 502, 503, 504] } }); return event.request; }