상호 TLS(뷰어) 검증을 위한 CloudFront 연결 함수 생성 - Amazon CloudFront

상호 TLS(뷰어) 검증을 위한 CloudFront 연결 함수 생성

CloudFront 연결 함수는 다음 두 단계로 생성합니다.

  1. 함수 코드를 JavaScript로 생성합니다. CloudFront 콘솔의 기본 예제를 사용하거나, 직접 작성할 수 있습니다. 자세한 내용은 다음 항목을 참조하세요.

    • mTLS 검증을 위한 CloudFront 연결 함수 코드 작성

    • CloudFront 연결 함수 이벤트 구조 및 응답 형식

    • 연결 함수 코드 예제

  2. CloudFront를 사용하여 연결 함수를 생성하고 코드를 포함합니다. 코드는 함수 내에 존재합니다(참조용이 아님).

CloudFront 콘솔

연결 함수를 생성하려면
  1. AWS Management 콘솔에 로그인한 다음 https://console.aws.amazon.com/cloudfront/v4/home에서 CloudFront 콘솔을 엽니다.

  2. 함수 생성을 선택합니다.

  3. AWS 계정 내에서 고유한 함수 이름을 입력하고 함수 유형으로 연결 함수를 선택한 다음 계속을 선택합니다.

  4. 새 연결 함수의 세부 정보 페이지가 나타납니다.

    참고

    연결 함수는 JavaScript 런타임 2.0만 지원합니다. 함수에서 CloudFront 연결 함수 KeyValueStore 통합을 사용하려면 이 런타임 버전을 사용해야 합니다.

  5. 함수 코드 섹션에서 빌드 탭을 선택하고 연결 함수 코드를 입력합니다. 빌드 탭에 포함된 샘플 코드는 연결 함수 코드의 기본 구문을 보여줍니다.

  6. 변경 사항 저장을 선택합니다.

  7. 연결 함수 코드가 인증서 해지 확인 또는 디바이스 검증에 KeyValueStore를 사용하는 경우 KeyValueStore를 연결해야 합니다.

    함수를 처음 생성할 때 KeyValueStore를 연결할 수 있습니다. 또는 연결 함수를 연결하여 나중에 연결할 수 있습니다.

    지금 KeyValueStore를 연결하려면 다음 단계를 따르세요.

    • KeyValueStore 연결 섹션에서 기존 KeyValueStore 연결을 선택합니다.

    • 연결 함수의 인증서 데이터가 포함된 KeyValueStore를 선택한 다음 KeyValueStore 연결을 선택합니다.

    CloudFront는 저장소를 함수와 즉시 연결하므로 함수를 저장하지 않아도 됩니다.

AWS CLI

AWS CLI를 사용하는 경우 일반적으로 먼저 파일에 연결 함수 코드를 생성한 다음 AWS CLI로 함수를 생성합니다.

연결 함수를 생성하려면
  1. 연결 함수 코드를 파일로 만든 다음 컴퓨터가 연결할 수 있는 디렉터리에 저장합니다.

  2. 다음 예제와 같이 명령을 실행합니다. 이 예제에서는 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입니다.

  3. 명령이 제대로 실행되면 다음과 비슷한 출력이 표시됩니다.

    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 - 이 값은 연결 함수를 수정할 때마다 변경됩니다. 함수를 업데이트하거나 게시하려면 이 값이 필요합니다.

    • 단계 - 새 연결 함수는 개발 단계에서 시작됩니다. 함수를 배포와 연결하기 전에 함수를 게시하여 라이브 단계로 이동해야 합니다.

    • 상태 - 라이브 단계에 게시할 때까지 함수 상태는 ‘게시되지 않음’입니다.