개요 및 워크플로
CloudFront 연결 함수는 클라이언트가 mTLS 연결을 설정하려고 할 때 TLS 핸드셰이크 중에 실행되는 특수한 유형의 CloudFront Functions입니다. 연결 함수는 클라이언트 인증서 정보, mTLS 구성 파라미터, 인증서 해지 검사 결과 및 클라이언트 IP 주소에 액세스할 수 있습니다.
CloudFront가 표준 인증서 검증(신뢰 체인, 만료, 서명 확인)을 수행한 후 연결 함수가 간접적으로 호출되지만 인증서 해지 확인에 실패하더라도 실행될 수 있습니다. 이렇게 하면 해지된 인증서를 처리하거나 추가 검증 기준을 추가하기 위한 사용자 지정 로직을 구현할 수 있습니다.
연결 함수를 생성하고 게시한 후에는 mTLS 지원 배포에 연결 요청 이벤트 유형에 대한 연결을 추가해야 합니다. 이렇게 하면 클라이언트가 CloudFront와 mTLS 연결을 설정하려고 할 때마다 함수가 실행됩니다.
CloudFront 연결 함수는 프로덕션에 배포하기 전에 함수를 개발하고 테스트할 수 있는 2단계 수명 주기를 따릅니다. 이 워크플로는 연결 함수가 라이브 트래픽에 영향을 미치기 전에 올바르게 작동하도록 합니다.
함수 단계
연결 함수는 다음 두 단계 중 하나로 존재합니다.
-
개발 - 이 단계의 함수를 수정, 테스트 및 업데이트할 수 있습니다. 함수 코드를 작성하고 디버깅하려면 이 단계를 사용합니다.
-
라이브 - 이 단계의 함수는 읽기 전용이며 프로덕션 트래픽을 처리합니다. 라이브 단계에서는 함수를 직접 수정할 수 없습니다.
새 연결 함수를 생성하면 개발 단계에서 시작됩니다. 테스트 및 검증 후 함수를 게시하여 라이브 단계로 이동합니다.
개발 워크플로
다음 워크플로에 따라 연결 함수를 개발하고 배포합니다.
-
생성 - 초기 코드 및 구성을 사용하여 개발 단계에서 새 연결 함수를 생성합니다.
-
테스트 - 테스트 기능을 사용하여 배포 전에 샘플 연결 이벤트로 함수를 검증합니다.
-
업데이트 - 테스트 결과를 바탕으로 필요에 따라 함수 코드 및 구성을 수정합니다.
-
게시 - 프로덕션 준비가 되면 함수를 게시하여 개발 단계에서 라이브 단계로 이동합니다.
-
연결 - 게시된 함수를 mTLS 지원 배포와 연결하여 라이브 연결을 처리합니다.
라이브 함수를 변경하려면 개발 버전을 업데이트하고 다시 게시해야 합니다. 그러면 라이브 단계에서 새 버전이 생성됩니다.
다른 함수 유형과의 차이점
연결 함수는 다음과 같은 몇 가지 중요한 측면에서 뷰어 요청 및 뷰어 응답 함수와 다릅니다.
-
연결 함수는 mTLS 핸드셰이크 이후 HTTP 처리가 발생하기 전에 실행됩니다.
-
연결 함수는 HTTP 요청/응답 데이터 대신 TLS 인증서 정보에 액세스할 수 있습니다.
-
연결 함수는 HTTP 데이터를 수정하지 않고 연결만 허용하거나 거부할 수 있습니다.
-
연결 함수는 연결 재사용이 아닌 새 TLS 연결에 대해서만 간접적으로 호출됩니다.
-
TLS 세션 재개는 모든 연결에서 인증서 검증이 이루어지도록 mTLS에서 지원되지 않습니다.
-
연결 함수는 표준 뷰어 요청 및 뷰어 응답 함수 외에도 실행됩니다.
-
연결 함수는 캐시 동작 수준이 아닌 배포 수준에서 연결합니다.
-
연결 함수는 JavaScript 런타임 2.0만 지원합니다.