상호 TLS(뷰어) 검증을 위한 CloudFront 연결 함수 생성
CloudFront 연결 함수는 다음 두 단계로 생성합니다.
-
함수 코드를 JavaScript로 생성합니다. CloudFront 콘솔의 기본 예제를 사용하거나, 직접 작성할 수 있습니다. 자세한 내용은 다음 항목을 참조하세요.
-
mTLS 검증을 위한 CloudFront 연결 함수 코드 작성
-
CloudFront 연결 함수 이벤트 구조 및 응답 형식
-
연결 함수 코드 예제
-
-
CloudFront를 사용하여 연결 함수를 생성하고 코드를 포함합니다. 코드는 함수 내에 존재합니다(참조용이 아님).
CloudFront 콘솔
연결 함수를 생성하려면
AWS Management 콘솔에 로그인한 다음 https://console.aws.amazon.com/cloudfront/v4/home
에서 CloudFront 콘솔을 엽니다. -
함수 생성을 선택합니다.
-
AWS 계정 내에서 고유한 함수 이름을 입력하고 함수 유형으로 연결 함수를 선택한 다음 계속을 선택합니다.
-
새 연결 함수의 세부 정보 페이지가 나타납니다.
참고
연결 함수는 JavaScript 런타임 2.0만 지원합니다. 함수에서 CloudFront 연결 함수 KeyValueStore 통합을 사용하려면 이 런타임 버전을 사용해야 합니다.
-
함수 코드 섹션에서 빌드 탭을 선택하고 연결 함수 코드를 입력합니다. 빌드 탭에 포함된 샘플 코드는 연결 함수 코드의 기본 구문을 보여줍니다.
-
변경 사항 저장을 선택합니다.
-
연결 함수 코드가 인증서 해지 확인 또는 디바이스 검증에 KeyValueStore를 사용하는 경우 KeyValueStore를 연결해야 합니다.
함수를 처음 생성할 때 KeyValueStore를 연결할 수 있습니다. 또는 연결 함수를 연결하여 나중에 연결할 수 있습니다.
지금 KeyValueStore를 연결하려면 다음 단계를 따르세요.
-
KeyValueStore 연결 섹션에서 기존 KeyValueStore 연결을 선택합니다.
-
연결 함수의 인증서 데이터가 포함된 KeyValueStore를 선택한 다음 KeyValueStore 연결을 선택합니다.
CloudFront는 저장소를 함수와 즉시 연결하므로 함수를 저장하지 않아도 됩니다.
-
AWS CLI
AWS CLI를 사용하는 경우 일반적으로 먼저 파일에 연결 함수 코드를 생성한 다음 AWS CLI로 함수를 생성합니다.
연결 함수를 생성하려면
-
연결 함수 코드를 파일로 만든 다음 컴퓨터가 연결할 수 있는 디렉터리에 저장합니다.
-
다음 예제와 같이 명령을 실행합니다. 이 예제에서는
fileb://표기법을 사용하여 파일을 전달합니다. 명령을 더 쉽게 읽을 수 있도록 줄 바꿈도 포함되어 있습니다.aws cloudfront create-connection-function \ --name CertificateValidator \ --connection-function-config '{ "Comment":"Device certificate validation", "Runtime":"cloudfront-js-2.0", "KeyValueStoreAssociations":{ "Quantity":1, "Items":[{ "KeyValueStoreARN":"arn:aws:cloudfront::111122223333:key-value-store/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }] } }' \ --connection-function-code fileb://certificate-validator.js참고
-
런타임 - 연결 함수는 JavaScript 런타임 2.0(cloudfront-js-2.0)만 지원합니다.
-
KeyValueStoreAssociations - 연결 함수가 인증서 검증에 KeyValueStore를 사용하는 경우, 함수를 처음 생성할 때 KeyValueStore를 연결할 수 있습니다. 또는 update-connection-function을 사용하여 나중에 연결할 수 있습니다. 각 연결 함수에 KeyValueStore가 하나만 연결될 수 있기 때문에 수량은 항상 1입니다.
-
-
명령이 제대로 실행되면 다음과 비슷한 출력이 표시됩니다.
ETag: ETVABCEXAMPLE ConnectionFunctionSummary: ConnectionFunctionConfig: Comment: Device certificate validation Runtime: cloudfront-js-2.0 KeyValueStoreAssociations: Quantity: 1 Items: - KeyValueStoreARN: arn:aws:cloudfront::111122223333:key-value-store/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 ConnectionFunctionMetadata: CreatedTime: '2024-09-04T16:32:54.292000+00:00' ConnectionFunctionARN: arn:aws:cloudfront::111122223333:connection-function/CertificateValidator LastModifiedTime: '2024-09-04T16:32:54.292000+00:00' Stage: DEVELOPMENT Name: CertificateValidator Status: UNPUBLISHED Location: https://cloudfront.amazonaws.com/2020-05-31/connection-function/arn:aws:cloudfront:::connection-function/CertificateValidator대부분의 정보는 요청에서 반복된 내용입니다. 기타 정보는 CloudFront에 의해 추가됩니다.
참고
-
ETag - 이 값은 연결 함수를 수정할 때마다 변경됩니다. 함수를 업데이트하거나 게시하려면 이 값이 필요합니다.
-
단계 - 새 연결 함수는 개발 단계에서 시작됩니다. 함수를 배포와 연결하기 전에 함수를 게시하여 라이브 단계로 이동해야 합니다.
-
상태 - 라이브 단계에 게시할 때까지 함수 상태는 ‘게시되지 않음’입니다.
-