

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

# Image Builder 和 Amazon PrivateLink 接口 VPC 终端节点
<a name="vpc-interface-endpoints"></a>

您可以通过创建*接口 VPC 端点*在 VPC 和 EC2 Image Builder 之间建立私有连接。接口端点由一项技术提供支持 [Amazon PrivateLink](https://www.amazonaws.cn/privatelink/)，该技术使您 APIs 无需互联网网关、NAT 设备、VPN 连接或 Amazon Direct Connect 连接即可私密访问 Image Builder。您的 VPC 中的实例不需要公有 IP 地址即可与 Image Builder 通信 APIs。VPC 和 Image Builder 之间的流量不会脱离 Amazon 网络。

每个接口端点均由子网中的一个或多个[弹性网络接口](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/using-eni.html)表示。创建新映像时，可以在基础设施配置中指定 VPC 子网 ID。

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

有关 VPC 端点的更多信息，请参阅 *Amazon VPC 用户指南*中的[接口 VPC 端点 (Amazon PrivateLink)](https://docs.amazonaws.cn/vpc/latest/privatelink/create-interface-endpoint.html)。

## Image Builder VPC 端点的注意事项
<a name="vpc-endpoint-considerations"></a>

请务必先查看 *Amazon VPC 用户指南*中的[接口端点属性和限制](https://docs.amazonaws.cn/vpc/latest/privatelink/create-interface-endpoint.html#vpce-interface-limitations)，然后再为 Image Builder 设置接口 VPC 端点。

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

## 为 Image Builder 创建接口 VPC 端点
<a name="vpc-endpoint-create"></a>

要为 Image Builder 服务创建 VPC 终端节点，您可以使用亚马逊 VPC 控制台或 Amazon Command Line Interface (Amazon CLI)。有关更多信息，请参阅《Amazon VPC User Guide》**中的 [Creating an interface endpoint](https://docs.amazonaws.cn/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint)。

使用以下服务名称为 Image Builder 创建 VPC 端点：
+ com.amazonaws。 *region*.imagebuilder

如果为终端节点启用私有 DNS，则可以使用其默认 DNS 名称作为区域，向 Image Builder 发送 API 请求，例如：`imagebuilder.us-east-1.amazonaws.com`。要查找适用于您的目标区域的端点，请参阅 [*Amazon Web Services 一般参考* 中的 EC2 Image Builder 端点和配额](https://docs.amazonaws.cn/general/latest/gr/imagebuilder.html#imagebuilder_region)。

有关更多信息，请参阅《Amazon VPC 用户指南》**中的[通过接口端点访问服务](https://docs.amazonaws.cn/vpc/latest/privatelink/create-interface-endpoint.html#access-service-though-endpoint)。

## 为 Image Builder 创建 VPC 端点策略
<a name="vpc-endpoint-policy"></a>

您可以为 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 User Guide》**中的 [Controlling access to services with VPC endpoints](https://docs.amazonaws.cn/vpc/latest/privatelink/vpc-endpoints-access.html)。

### 访问 S3 存储桶的自定义策略
<a name="vpc-endpoint-policy-s3"></a>

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

  ```
  s3://ec2imagebuilder-toe-region-environment
  ```

  **示例：**s3://ec2 imagebuilder-toe-us-west -2-prod/\$1
+ Image Builder 托管资源存储桶：

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

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

### VPC 端点策略示例
<a name="vpc-endpoint-policy-examples"></a>

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

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

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": "imagebuilder:*",
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": "imagebuilder:DeleteImage",
            "Effect": "Deny",
            "Resource": "*"
        },
        {
            "Action": "imagebuilder:DeleteComponent",
            "Effect": "Deny",
            "Resource": "*"
        }
    ]
}
```

------

**按组织限制访问权限，允许访问托管组件**  
以下端点策略示例说明了如何对属于您组织的身份和资源的访问权限进行限制，以及如何提供对 Amazon 托管的 Image Builder 组件的访问权限。将*region**principal-org-id*、和，替换*resource-org-id*为贵组织的价值观。

------
#### [ JSON ]

****  

```
{
    "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:us-east-1:aws:component/*"
            ]
        }
    ]
}
```

------

**访问 Amazon S3 存储桶的 VPC 端点策略**  
以下 S3 端点策略示例显示了如何提供对 Image Builder 用于构建自定义映像的 S3 存储桶的访问权限。*environment*用贵组织的价值观替换*region*和。根据您的应用程序要求向策略添加任何其他必需的权限。

**注意**  
对于 Linux 映像，如果您未在映像配方中指定用户数据，Image Builder 会添加一个脚本，用于在映像的构建和测试实例上下载和安装 Systems Manager Agent。要下载代理，Image Builder 会访问您的构建区域的 S3 存储桶。  
为确保 Image Builder 可以引导构建和测试实例，请在 S3 端点策略中添加以下额外资源：  
"`arn:aws:s3:::amazon-ssm-region/*`"

------
#### [ JSON ]

****  

```
{
  "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/*"
      ]
    }
  ]
}
```

------