创建用于双向 TLS(查看器)验证的 CloudFront 连接函数 - Amazon CloudFront

创建用于双向 TLS(查看器)验证的 CloudFront 连接函数

通过两个阶段创建 CloudFront 连接函数:

  1. 将函数代码编写为 JavaScript。您可以使用来自 CloudFront 控制台的默认示例,也可以自行编写。有关更多信息,请参阅以下主题:

    • 编写用于 mTLS 验证的 CloudFront 连接函数代码

    • CloudFront 连接函数事件结构和响应格式

    • 连接函数代码示例

  2. 使用 CloudFront 创建连接函数并包括您的代码。代码位于函数内部(不是作为引用)。

CloudFront 控制台

创建连接函数
  1. 登录 AWS 管理控制台,并通过以下网址打开 CloudFront 控制台:https://console.aws.amazon.com/cloudfront/v4/home

  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 关联它。“数量”始终为 1,因为每个连接函数只能关联一个 KeyValueStore。

  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:每次修改连接函数时,此值都会发生更改。您需要使用此值来更新或发布函数。

    • 阶段:新的连接函数从 DEVELOPMENT 阶段开始。必须先发布该函数以将其移至 LIVE 阶段,然后再将其与分配关联。

    • 状态:在您将函数发布到 LIVE 阶段之前,其状态为 UNPUBLISHED。