EC2 Image Builder 和接口 VPC 端点 (Amazon PrivateLink) - EC2 Image Builder
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

EC2 Image Builder 和接口 VPC 端点 (Amazon PrivateLink)

您可以通过创建接口 VPC 端点在 VPC 和 EC2 Image Builder 之间建立私有连接。接口端点由一项技术提供支持 Amazon PrivateLink,该技术使您无需互联网网关、NAT 设备、VPN 连接或 Amazon Direct Connect 连接即可私密访问 Image Builder API。VPC 中的实例即使没有公有 IP 地址也可与 Image Builder API 进行通信。VPC 和 Image Builder 之间的流量不会脱离 Amazon 网络。

每个接口端点均由子网中的一个或多个弹性网络接口表示。创建新映像时,可以在基础设施配置中指定 VPC 子网 ID。

注意

您从 VPC 内访问的每项服务都有自己的接口端点和自己的端点策略。Image Builder 下载 EC2 TOE 组件管理器应用程序并访问 S3 存储桶中的托管资源以创建自定义映像。要授予访问这些存储桶的权限,您必须更新 S3 端点策略以允许访问。有关更多信息,请参阅 访问 S3 存储桶的自定义策略

有关 VPC 端点的更多信息,请参阅 Amazon VPC 用户指南中的接口 VPC 端点 (Amazon PrivateLink)

Image Builder VPC 端点的注意事项

请务必先查看 Amazon VPC 用户指南中的接口端点属性和限制,然后再为 Image Builder 设置接口 VPC 端点。

Image Builder 支持从 VPC 调用它的所有 API 操作。

为 Image Builder 创建接口 VPC 端点

要为 Image Builder 服务创建 VPC 终端节点,您可以使用亚马逊 VPC 控制台或 Amazon Command Line Interface (Amazon CLI)。有关更多信息,请参阅《Amazon VPC 用户指南》中的创建接口端点

使用以下服务名称为 Image Builder 创建 VPC 端点:

  • com.amazonaws.region.imagebuilder

如果为终端节点启用私有 DNS,则可以使用其默认 DNS 名称作为区域,向 Image Builder 发送 API 请求,例如:imagebuilder.us-east-1.amazonaws.com。要查找适用于您的目标区域的端点,请参阅 Amazon Web Services 一般参考 中的 EC2 Image Builder 端点和配额

有关更多信息,请参阅《Amazon VPC 用户指南》中的通过接口端点访问服务

为 Image Builder 创建 VPC 端点策略

您可以为 VPC 端点附加控制对 Image Builder 的访问的端点策略。该策略指定以下信息:

  • 可执行操作的主体。

  • 可执行的操作。

  • 可对其执行操作的资源。

如果您在配方中使用 Amazon 托管的组件,则 Image Builder 的 VPC 端点必须允许访问以下服务拥有的组件库:

arn:aws:imagebuilder:region:aws:component/*

重要

将非默认策略应用于 EC2 Image Builder 的接口 VPC 终端节点时,某些失败的 API 请求(例如失败的请求)可能不会记录到 Amazon CloudTrail 或 Amazon CloudWatch。RequestLimitExceeded

有关更多信息,请参阅《Amazon VPC 用户指南》中的使用 VPC 端点控制对服务的访问权限

访问 S3 存储桶的自定义策略

Image Builder 使用公开可用的 S3 存储桶来存储和访问托管的资源,例如组件。它还会从单独的 S3 存储桶下载 EC2 TOE 组件管理应用程序。如果您在环境中使用 Amazon S3 的 VPC 端点,则需要确保您的 S3 VPC 端点策略允许 Image Builder 访问以下 S3 存储桶。每个 Amazon 区域(区域)和应用程序环境(环境)的存储桶名称是唯一的。Image Builder 并 EC2 TOE 支持以下应用程序环境:prodpreprod、和beta

  • EC2 TOE 组件管理器存储桶:

    s3://ec2imagebuilder-toe-region-environment

    示例:s3://ec2 imagebuilder-toe-us-west -2-prod/*

  • Image Builder 托管资源存储桶:

    s3://ec2imagebuilder-managed-resources-region-environment/components

    示例:s3://ec2 imagebuilder-managed-resources-us-west-2-prod/components/*

VPC 端点策略示例

本节包括自定义 VPC 端点策略的示例。

Image Builder 操作的常规 VPC 端点策略

以下是拒绝删除 Image Builder 映像和组件的权限的 Image Builder 终端节点策略示例。示例策略还授予执行所有其他 EC2 Image Builder 操作的权限。

{     "Version": "2012-10-17",     "Statement": [     {         "Action": "imagebuilder:*",         "Effect": "Allow",         "Resource": "*"     },     {         "Action": [             "imagebuilder: DeleteImage"         ],         "Effect": "Deny",         "Resource": "*",     },     {         "Action": [             "imagebuilder: DeleteComponent"         ],         "Effect": "Deny",         "Resource": "*",     }] }
按组织限制访问权限,允许访问托管组件

以下示例端点策略展示了如何限制对属于您的组织的身份和资源的访问权限以及如何提供对亚马逊管理 EC2 TOE 组件的访问权限。将区域、和 principal-org-id,替换resource-org-id为贵组织的价值观。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRequestsByOrgsIdentitiesToOrgsResources", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "*", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "principal-org-id", "aws:ResourceOrgID": "resource-org-id" } } }, { "Sid": "AllowAccessToEC2ImageBuilderComponents", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "imagebuilder:GetComponent" ], "Resource": [ "arn:aws:imagebuilder:region:aws:component/*" ] } ] }
访问 Amazon S3 存储桶的 VPC 端点策略

以下 S3 端点策略示例显示了如何提供对 Image Builder 用于构建自定义映像的 S3 存储桶的访问权限。使用您所在组织的价值观取代区域和环境。根据您的应用程序要求向策略添加任何其他必需的权限。

注意

对于 Linux 映像,如果您未在映像配方中指定用户数据,Image Builder 会添加一个脚本,用于在映像的生成和测试实例上下载和安装 Systems Manager 代理。要下载代理,Image Builder 会访问您的构建区域的 S3 存储桶。

为确保 Image Builder 可以引导构建和测试实例,请在 S3 终端节点策略中添加以下额外资源:

"arn:aws:s3:::amazon-ssm-region/*"

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowImageBuilderAccessToAppAndComponentBuckets", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::ec2imagebuilder-toe-region-environment/*", "arn:aws:s3:::ec2imagebuilder-managed-resources-region-environment/components/*" ] } ] }