

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

# Image Builder 的 Identity and Access Management 集成
<a name="security-iam"></a>

**Topics**
+ [受众](#security-iam-audience)
+ [使用身份进行身份验证](#security-iam-authentication)
+ [Image Builder 如何与 IAM 策略和角色配合使用](security_iam_service-with-iam.md)
+ [在 Image Builder 中管理 S3 存储桶下载权限的数据边界](security-iam-data-perimeter.md)
+ [Image Builder 基于身份的策略](security-iam-identity-based-policies.md)
+ [自定义工作流程的 IAM 权限](#security-iam-custom-workflows)
+ [Image Builder 基于资源的策略](#security-iam-resource-based-policies)
+ [为 EC2 Image Builder 使用 AWS 托管策略](security-iam-awsmanpol.md)
+ [使用 Image Builder 的 IAM 服务相关角色](image-builder-service-linked-role.md)
+ [Image Builder 中的 IAM 问题疑难解答](security_iam_troubleshoot.md)

## 受众
<a name="security-iam-audience"></a>

您的使用方式 AWS Identity and Access Management (IAM) 因您的角色而异：
+ **服务用户**：如果您无法访问功能，请从管理员处请求权限（请参阅[Image Builder 中的 IAM 问题疑难解答](security_iam_troubleshoot.md)）
+ **服务管理员**：确定用户访问权限并提交权限请求（请参阅[Image Builder 如何与 IAM 策略和角色配合使用](security_iam_service-with-iam.md)）
+ **IAM 管理员**：编写用于管理访问权限的策略（请参阅[Image Builder 基于身份的策略](security_iam_service-with-iam.md#security_iam_id-based-policy-examples)）

## 使用身份进行身份验证
<a name="security-iam-authentication"></a>

有关如何为你的用户和流程提供身份验证的详细信息 AWS 账户，请参阅 *IAM 用户指南*中的[身份](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html)。

# Image Builder 如何与 IAM 策略和角色配合使用
<a name="security_iam_service-with-iam"></a>

在使用 IAM 管理对 Image Builder 的访问之前，您应该了解哪些 IAM 功能可用于 Image Builder。

要全面了解 Image Builder 和其他 AWS 服务如何与大多数 IAM 功能配合使用，请参阅 [IAM *用户指南中与 IAM* 配合使用的AWS 服务](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)。

## Image Builder 的基于身份的策略
<a name="security_iam_service-with-iam-id-based-policies"></a>

**支持基于身份的策略：**是

基于身份的策略是可附加到身份（如 IAM 用户、用户组或角色）的 JSON 权限策略文档。这些策略控制用户和角色可在何种条件下对哪些资源执行哪些操作。要了解如何创建基于身份的策略，请参阅《IAM 用户指南》**中的[使用客户管理型策略定义自定义 IAM 权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)。

通过使用 IAM 基于身份的策略，您可以指定允许或拒绝的操作和资源以及允许或拒绝操作的条件。要了解可在 JSON 策略中使用的所有元素，请参阅《IAM 用户指南》**中的 [IAM JSON 策略元素引用](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)。

### Image Builder 的基于身份的策略示例
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>



要查看 Image Builder 基于身份的策略的示例，请参阅 [Image Builder 基于身份的策略](#security_iam_id-based-policy-examples)。

## Image Builder 内基于资源的策略
<a name="security_iam_service-with-iam-resource-based-policies"></a>

**支持基于资源的策略：**是

基于资源的策略是附加到资源的 JSON 策略文档。基于资源的策略的示例包括 IAM *角色信任策略*和 Amazon S3 *存储桶策略*。在支持基于资源的策略的服务中，服务管理员可以使用它们来控制对特定资源的访问。对于在其中附加策略的资源，策略定义指定主体可以对该资源执行哪些操作以及在什么条件下执行。您必须在基于资源的策略中[指定主体](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)。委托人可以包括账户、用户、角色、联合用户或 AWS 服务。

要启用跨账户访问，您可以将整个账户或其他账户中的 IAM 实体指定为基于资源的策略中的主体。有关更多信息，请参阅《IAM 用户指南》**中的 [IAM 中的跨账户资源访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)。

## Image Builder 的策略操作
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

**支持策略操作：**是

管理员可以使用 AWS JSON 策略来指定谁有权访问什么。也就是说，哪个**主体**可以对什么**资源**执行**操作**，以及在什么**条件**下执行。

JSON 策略的 `Action` 元素描述可用于在策略中允许或拒绝访问的操作。在策略中包含操作以授予执行关联操作的权限。



要查看 Image Builder 操作的列表，请参阅*服务授权参考*中的 [EC2 Image Builder 定义的操作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2imagebuilder.html#amazonec2imagebuilder-actions-as-permissions)。

Image Builder 中的策略操作在操作前使用以下前缀：

```
imagebuilder
```

要在单个语句中指定多项操作，请使用逗号将它们隔开。

```
"Action": [
	"imagebuilder:action1",
	"imagebuilder:action2"
	]
```





要查看 Image Builder 基于身份的策略的示例，请参阅 [Image Builder 基于身份的策略](#security_iam_id-based-policy-examples)。

## Image Builder 的策略资源
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

**支持策略资源：**是

管理员可以使用 AWS JSON 策略来指定谁有权访问什么。也就是说，哪个**主体**可以对什么**资源**执行**操作**，以及在什么**条件**下执行。

`Resource` JSON 策略元素指定要向其应用操作的一个或多个对象。作为最佳实践，请使用其 [Amazon 资源名称（ARN）](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html)指定资源。对于不支持资源级权限的操作，请使用通配符 (\$1) 指示语句应用于所有资源。

```
"Resource": "*"
```

要查看 Image Builder 资源类型及其列表 ARNs，请参阅《*服务授权参考*[》中的 EC2 Image Builder 定义的资源](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2imagebuilder.html#amazonec2imagebuilder-resources-for-iam-policies)。要了解您可以在哪些操作中指定每个资源的 ARN，请参阅 [EC2 Image Builder 定义的操作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2imagebuilder.html#amazonec2imagebuilder-actions-as-permissions)。

要查看 Image Builder 基于身份的策略的示例，请参阅 [Image Builder 基于身份的策略](#security_iam_id-based-policy-examples)。

## Image Builder 的策略条件键
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

**支持特定于服务的策略条件键：**是

管理员可以使用 AWS JSON 策略来指定谁有权访问什么。也就是说，哪个**主体**可以对什么**资源**执行**操作**，以及在什么**条件**下执行。

`Condition` 元素根据定义的条件指定语句何时执行。您可以创建使用[条件运算符](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)（例如，等于或小于）的条件表达式，以使策略中的条件与请求中的值相匹配。要查看所有 AWS 全局条件键，请参阅 *IAM 用户指南*中的[AWS 全局条件上下文密钥](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)。

有关 Image Builder 条件键的列表，请参阅*服务授权参考*中的 [EC2 Image Builder 的条件键](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2imagebuilder.html#amazonec2imagebuilder-policy-keys)。要了解您可以对哪些操作和资源使用条件键，请参阅 [ EC2 Image Builder 定义的操作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2imagebuilder.html#amazonec2imagebuilder-actions-as-permissions)。

要查看 Image Builder 基于身份的策略的示例，请参阅 [Image Builder 基于身份的策略](#security_iam_id-based-policy-examples)。

## ACLs 在 Image Builder 中
<a name="security_iam_service-with-iam-acls"></a>

**支持 ACLs：**否 

访问控制列表 (ACLs) 控制哪些委托人（账户成员、用户或角色）有权访问资源。 ACLs 与基于资源的策略类似，尽管它们不使用 JSON 策略文档格式。

## 使用 Image Builder 进行 ABAC
<a name="security_iam_service-with-iam-tags"></a>

**支持 ABAC（策略中的标签）：**部分支持

基于属性的访问权限控制（ABAC）是一种授权策略，该策略基于称为标签的属性来定义权限。您可以将标签附加到 IAM 实体和 AWS 资源，然后设计 ABAC 策略以允许在委托人的标签与资源上的标签匹配时进行操作。

要基于标签控制访问，您需要使用 `aws:ResourceTag/key-name``aws:RequestTag/key-name` 或 `aws:TagKeys` 条件键在策略的[条件元素](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)中提供标签信息。

如果某个服务对于每种资源类型都支持所有这三个条件键，则对于该服务，该值为**是**。如果某个服务仅对于部分资源类型支持所有这三个条件键，则该值为**部分**。

有关 ABAC 的更多信息，请参阅《IAM 用户指南》**中的[使用 ABAC 授权定义权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)。要查看设置 ABAC 步骤的教程，请参阅《IAM 用户指南》**中的[使用基于属性的访问权限控制（ABAC）](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html)。

## 将临时凭证用于 Image Builder
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

**支持临时凭证：**是

临时证书提供对 AWS 资源的短期访问权限，并且是在您使用联合身份或切换角色时自动创建的。 AWS 建议您动态生成临时证书，而不是使用长期访问密钥。有关更多信息，请参阅《IAM 用户指南》**中的 [IAM 中的临时安全凭证](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html)和[使用 IAM 的。AWS 服务](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)

## Image Builder 的跨服务主体权限
<a name="security_iam_service-with-iam-principal-permissions"></a>

**支持转发访问会话（FAS）：**是

 转发访问会话 (FAS) 使用调用主体的权限 AWS 服务，再加上 AWS 服务 向下游服务发出请求的请求。有关发出 FAS 请求时的策略详情，请参阅[转发访问会话](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html)。

## Image Builder 的服务角色
<a name="security_iam_service-with-iam-roles-service"></a>

**支持服务角色：**是

 服务角色是由一项服务担任、代表您执行操作的 [IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)。IAM 管理员可以在 IAM 中创建、修改和删除服务角色。有关更多信息，请参阅《IAM 用户指南》**中的[创建向 AWS 服务委派权限的角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。

**警告**  
更改服务角色的权限可能会破坏 Image Builder 的功能。仅当 Image Builder 提供相关指导时才编辑服务角色。

## Image Builder 的服务相关角色
<a name="security_iam_service-with-iam-roles-service-linked"></a>

**支持服务关联角色：**是

 服务相关角色是一种链接到的服务角色。 AWS 服务服务可以代入代表您执行操作的角色。服务相关角色出现在您的中 AWS 账户 ，并且归服务所有。IAM 管理员可以查看但不能编辑服务关联角色的权限。

有关服务相关角色的详细信息，请参阅 [使用 Image Builder 的 IAM 服务相关角色](image-builder-service-linked-role.md)。

## Image Builder 基于身份的策略
<a name="security_iam_id-based-policy-examples"></a>

通过使用 IAM 基于身份的策略，您可以指定允许或拒绝的操作和资源，以及允许或拒绝操作的条件。Image Builder 支持特定的操作、资源和条件键。有关在 JSON 策略中使用的所有元素的相关信息，请参阅*《IAM 用户指南》*中的 [Amazon EC2 Image Builder 的操作、资源和条件键](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonec2imagebuilder.html)。

### 操作
<a name="sec-iam-ib-id-based-policies-actions"></a>

Image Builder 中的策略操作在操作前使用以下前缀：`imagebuilder:`。策略语句必须包含 `Action` 或 `NotAction` 元素。Image Builder 定义了一组自己的操作，以描述您可以使用该服务执行的任务。

要在单个语句中指定多项操作，请使用逗号将它们隔开，如下所示：

```
"Action": [
	"imagebuilder:action1",
	"imagebuilder:action2"
]
```

您也可以使用通配符 （\$1) 指定多个操作。例如，要指定以单词 `List` 开头的所有操作，包括以下操作：

```
"Action": "imagebuilder:List*"
```

要查看 Image Builder 操作的列表，请参阅 *IAM 用户指南* 中的 [AWS 服务的操作、资源和条件键](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html)。

### 使用策略管理访问
<a name="security-iam-manage-access"></a>

有关如何 AWS 通过创建策略并将其关联到 IAM 身份或 AWS 资源来管理中的访问权限的详细信息，请参阅 I *AM 用户指南*中的[策略和权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)。

与实例配置文件关联的 IAM 角色必须有权运行映像中包含的生成和测试组件。必须将以下 IAM 角色策略附加到与实例配置文件关联的 IAM 角色：
+ EC2InstanceProfileForImageBuilder
+ EC2InstanceProfileForImageBuilderECRContainerBuilds
+ AmazonSSMManagedInstanceCore

### 资源
<a name="sec-iam-ib-id-based-policies-resources"></a>

管理员可以使用 AWS JSON 策略来指定谁有权访问什么。也就是说，哪个**主体**可以对什么**资源**执行**操作**，以及在什么**条件**下执行。

`Resource` JSON 策略元素指定要向其应用操作的一个或多个对象。作为最佳实践，请使用其 [Amazon 资源名称（ARN）](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html)指定资源。对于不支持资源级权限的操作，请使用通配符 (\$1) 指示语句应用于所有资源。

```
"Resource": "*"
```

ARN 由多个节点组成，这些节点有助于识别资源并确保名称的唯一性。名称中的最后一个节点包括资源类型、名称和 ID 格式的多种变体。Image Builder 创建资源时，它使用以下格式：

`arn:aws:imagebuilder:region:owner:resource-type/resource-name/version/build-version`

**注意**  
编译版本并不总是包含在资源 ARN 中。但是，某些 API 操作（例如 [GetComponent](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_GetComponent.html)）需要编译版本来唯一标识要检索的资源。

对于 Image Builder 在其配方中使用的资源（例如基础映像或组件），所有者节点可以是以下节点之一：
+ 资源所有者的账号
+ 对于 Amazon 托管资源：`aws`
+ 有关 AWS Marketplace 资源：`aws-marketplace`

以下示例显示了在 Linux 上安装 Amazon CloudWatch 代理的托管组件的 ARN：

```
arn:aws:imagebuilder:us-east-1:aws:component/amazon-cloudwatch-agent-linux/1.0.1/1
```

此示例显示了来自以下内容的虚构托管组件的 ARN： AWS Marketplace

```
arn:aws:imagebuilder:us-east-1:aws-marketplace:component/example-linux-software-component/1.0.1
```

有关获取组件列表（包括使用所有权筛选器）的更多信息，请参阅[列出 Image Builder 组件](component-details.md#list-components)。

**示例 ARNs**  
以下是您可以在 IAM 策略中指定的资源 ARNs 的一些示例：
+ 实例 ARN

  ```
  "Resource": "arn:aws:imagebuilder:us-east-1:111122223333:instance/i-1234567890abcdef0"
  ```
+ 通配符 (\$1) 示例，用于指定给定账户的所有实例

  ```
  "Resource": "arn:aws:imagebuilder:us-east-1:111122223333:instance/*"
  ```
+ 通配符 (\$1) 示例，用于指定托管图像工作流程的所有版本

  ```
  "Resource": "arn:aws:imagebuilder:us-east-1:aws:workflow/build/build-image/*"
  ```
+ 托管映像 ARN

  ```
  "Resource": "arn:aws:imagebuilder:us-east-1:aws:image/amazon-linux-2-arm64/2024.12.17/1"
  ```
+ 通配符 (\$1) 示例，用于指定托管映像的所有版本

  ```
  "Resource": "arn:aws:imagebuilder:us-east-1:aws:image/amazon-linux-2-arm64/x.x.x"
  ```

许多 EC2 Image Builder API 操作涉及多种资源。要在单个语句中指定多个资源，请 ARNs 用逗号分隔。

```
"Resource": [
	  "resource1",
	  "resource2"
]
```

### 条件键
<a name="sec-iam-ib-id-based-policies-conditionkeys"></a>

Image Builder 提供特定于服务的条件键，并支持使用某些全局条件键。要查看所有 AWS 全局条件键，请参阅 *IAM 用户指南*中的[AWS 全局条件上下文密钥](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)。提供以下特定于服务的条件键。

#### imagebuilder：CreatedResourceTagKeys
<a name="image-builder-security-createdresourcetagkeys"></a>

与[字符串运算符](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String)结合使用。

使用此键可以根据请求中是否存在标签键来筛选访问。这允许您管理 Image Builder 创建的资源。

**可用性**-此密钥仅适用于`CreateInfrastrucutreConfiguration`和`UpdateInfrastructureConfiguration` APIs。

#### imagebuilder:/CreatedResourceTag<key>
<a name="image-builder-security-createdresourcetag"></a>

与[字符串运算符](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String)结合使用。

使用此键可按附加到 Image Builder 创建的资源的标签键值对来筛选访问。这允许您通过定义的标签来管理 Image Builder 资源。

**可用性**-此密钥仅适用于`CreateInfrastrucutreConfiguration`和`UpdateInfrastructureConfiguration` APIs。

#### imagebuilder：LifecyclePolicyResourceType
<a name="image-builder-security-lifecyclepolicyresourcetype"></a>

与[字符串运算符](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String)结合使用。

使用此密钥按请求中指定的生命周期资源类型筛选访问权限。

此键的值可以是`AMI_IMAGE`或`CONTAINER_IMAGE`。

**可用性**-此密钥仅适用于`CreateLifecyclePolicy`和`UpdateLifecyclePolicy`APIs。

#### ImageBuilder: EC2 MetadataHttpTokens
<a name="image-builder-security-ec2metadatatokens"></a>

与[字符串运算符](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String)结合使用。

使用此键可按请求中指定的 EC2 实例元数据 HTTP Token Requirement 来筛选访问。

此键的值可以是 `optional` 或 `required`。

**可用性**-此密钥仅适用于`CreateInfrastrucutreConfiguration`和`UpdateInfrastructureConfiguration` APIs。

#### imagebuilder：StatusTopicArn
<a name="image-builder-security-statustopicarn"></a>

与[字符串运算符](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String)结合使用。

使用此键可按将发布终端状态通知的请求中的 SNS Topic ARN 来筛选访问。

**可用性**-此密钥仅适用于`CreateInfrastrucutreConfiguration`和`UpdateInfrastructureConfiguration` APIs。

### 示例
<a name="sec-iam-ib-id-based-policies-examples"></a>



要查看 Image Builder 基于身份的策略的示例，请参阅 [Image Builder 基于身份的策略](security-iam-identity-based-policies.md)。

## Image Builder 基于资源的策略
<a name="security-iam-service-with-ib-resource-based-policies"></a>

基于资源的策略指定了指定主体可在 Image Builder 资源上执行的操作以及在什么条件下可执行。Image Builder 支持针对组件、映像和映像配方的基于资源的权限策略。基于资源的策略允许您基于资源向其他账户授予使用权限。您还可以使用基于资源的策略来允许 AWS 服务访问您的组件、图像和图像配方。

要了解如何将基于资源的策略附加到组件、映像或映像配方，请参阅 [与共享 Image Builder 资源 AWS RAM](manage-shared-resources.md)。

**注意**  
在使用 Image Builder 更新资源策略时，更新将显示在 RAM 控制台中。

## 基于 Image Builder 标签的授权
<a name="security-iam-service-with-ib-tags"></a>

您可以将标签附加到 Image Builder 资源或将请求中的标签传递到 Image Builder。要基于标签控制访问，您需要使用 `imagebuilder:ResourceTag/key-name``aws:RequestTag/key-name` 或 `aws:TagKeys` 条件键在策略的[条件元素](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)中提供标签信息。有关标记 Image Builder 资源的更多信息，请参阅 [标记来自的资源 AWS CLI](tag-resources.md#cli-tag-resource)。

## Image Builder IAM 角色
<a name="security-iam-service-with-ib-roles"></a>

I [AM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)是您内部具有特定权限 AWS 账户 的实体。

### 将临时凭证用于 Image Builder
<a name="security-iam-service-with-ib-roles-tempcreds"></a>

可以使用临时凭证进行联合身份验证登录，分派 IAM 角色或分派跨账户角色。您可以通过调用[AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)或之类的 AWS STS API 操作来获取临时安全证书[GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html)。

### 服务关联角色
<a name="sec-iam-ib-service-linked-roles"></a>

[服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) AWS 服务 允许访问其他服务中的资源以代表您完成操作。服务关联角色显示在 IAM 账户中，并归该服务所有。具有管理员访问权限的用户可以查看但不能编辑服务相关角色的权限。

Image Builder 支持服务相关角色。有关创建或管理 Image Builder 服务相关角色的信息，请参阅 [使用 Image Builder 的 IAM 服务相关角色](image-builder-service-linked-role.md)。

### 服务角色
<a name="sec-iam-ib-service-roles"></a>

此功能允许服务代表您担任[服务角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role)。此角色允许服务访问其他服务中的资源以代表您完成操作。服务角色显示在 IAM 账户中，并归该账户所有。这意味着具有管理员访问权限的用户可以更改此角色的权限。但是，这样做可能会中断服务的功能。

# 在 Image Builder 中管理 S3 存储桶下载权限的数据边界
<a name="security-iam-data-perimeter"></a>

EC2 Image Builder 维护两类 AWS 服务自有的 S3 存储桶，其中包含在您的账户中运行 Image Builder 工作负载所需的可下载资源。如果您使用数据边界来控制环境中对 Amazon S3 的访问，则可能需要明确允许访问这些存储桶。您可以使用存储桶 ARN 或存储桶 URL 将这些存储桶列入许可名单，具体取决于您如何控制对 Amazon S3 的访问权限。

**组件管理引导脚本（必填）**  
此 S3 存储桶包含用于在用于创建映像的 EC2 实例上设置 AWSTOE 应用程序的引导脚本。Image Builder 需要下载脚本才能支持新映像的构建和测试。  
+ **S3 存储桶 ARN：**`arn:<AWS partition>:s3:::ec2imagebuilder-managed-resources-<AWS Region>-prod`
+ **S3 存储桶网址：**`https://ec2imagebuilder-managed-resources-<AWS Region>.s3.<AWS Region>.<AWS partition-specific domain name>`

**托管组件**  
此 S3 存储桶包含 Amazon 托管组件的包有效负载。Image Builder 需要访问权限才能下载配方中配置的所有托管组件。  
+ **S3 存储桶 ARN：**`arn:<AWS partition>:s3:::ec2imagebuilder-toe-<AWS Region>-prod`
+ **S3 存储桶网址：**`https://ec2imagebuilder-toe-<AWS Region>.s3.<AWS Region>.<AWS partition-specific domain name>`

# Image Builder 基于身份的策略
<a name="security-iam-identity-based-policies"></a>

**Topics**
+ [基于身份的策略最佳实践](#security-iam-service-policy-best-practices)
+ [使用 Image Builder 控制台](#sec-iam-id-based-policies-using-console)

## 基于身份的策略最佳实践
<a name="security-iam-service-policy-best-practices"></a>

基于身份的策略确定某个人是否可以创建、访问或删除您账户中的 Image Builder 资源。这些操作可能会使 AWS 账户产生成本。创建或编辑基于身份的策略时，请遵循以下指南和建议：
+ **开始使用 AWS 托管策略并转向最低权限权限** — 要开始向用户和工作负载授予权限，请使用为许多常见用例授予权限的*AWS 托管策略*。它们在你的版本中可用 AWS 账户。我们建议您通过定义针对您的用例的 AWS 客户托管策略来进一步减少权限。有关更多信息，请参阅《IAM 用户指南》**中的 [AWS 托管策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)或[工作职能的AWS 托管策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)。
+ **应用最低权限**：在使用 IAM 策略设置权限时，请仅授予执行任务所需的权限。为此，您可以定义在特定条件下可以对特定资源执行的操作，也称为*最低权限许可*。有关使用 IAM 应用权限的更多信息，请参阅《IAM 用户指南》**中的 [IAM 中的策略和权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)。
+ **使用 IAM 策略中的条件进一步限制访问权限**：您可以向策略添加条件来限制对操作和资源的访问。例如，您可以编写策略条件来指定必须使用 SSL 发送所有请求。如果服务操作是通过特定的方式使用的，则也可以使用条件来授予对服务操作的访问权限 AWS 服务，例如 CloudFormation。有关更多信息，请参阅《IAM 用户指南》**中的 [IAM JSON 策略元素：条件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)。
+ **使用 IAM Access Analyzer 验证您的 IAM 策略，以确保权限的安全性和功能性**：IAM Access Analyzer 会验证新策略和现有策略，以确保策略符合 IAM 策略语言（JSON）和 IAM 最佳实践。IAM Access Analyzer 提供 100 多项策略检查和可操作的建议，以帮助您制定安全且功能性强的策略。有关更多信息，请参阅《IAM 用户指南》**中的[使用 IAM Access Analyzer 验证策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html)。
+ **需要多重身份验证 (MFA**)-如果 AWS 账户您的场景需要 IAM 用户或根用户，请启用 MFA 以提高安全性。若要在调用 API 操作时需要 MFA，请将 MFA 条件添加到您的策略中。有关更多信息，请参阅《IAM 用户指南》**中的[使用 MFA 保护 API 访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html)。

有关 IAM 中的最佳实操的更多信息，请参阅《IAM 用户指南》**中的 [IAM 中的安全最佳实践](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)。

## 使用 Image Builder 控制台
<a name="sec-iam-id-based-policies-using-console"></a>

要访问 EC2 Image Builder 控制台，您必须拥有一组最低的权限。这些权限允许您列出和查看有关您的  AWS 账户 中的 Image Builder 资源的详细信息。如果您创建的基于身份的策略比所需的最低权限更严格，则无法为具有该策略的实体（IAM 用户或角色）正常运行控制台。

为确保您的 IAM 实体可以使用 Image Builder 控制台，您必须为其附加以下 AWS 托管策略之一：
+ [AWSImageBuilderReadOnlyAccess 策略](security-iam-awsmanpol.md#sec-iam-manpol-AWSImageBuilderReadOnlyAccess)
+ [AWSImageBuilderFullAccess 策略](security-iam-awsmanpol.md#sec-iam-manpol-AWSImageBuilderFullAccess)

有关 Image Builder 托管策略的更多信息，请参阅 [为 EC2 Image Builder 使用 AWS 托管策略](security-iam-awsmanpol.md)。

**重要**  
**AWSImageBuilderFullAccess** 策略是创建 Image Builder 服务相关角色所必需的。将此策略附加到 IAM 实体时，您还必须附加以下自定义策略，并包含要使用的资源（该资源的名称中不含 `imagebuilder`）：

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sns:Publish"
            ],
            "Resource": "arn:aws:sns:*:*:*imagebuilder*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:GetInstanceProfile"
            ],
            "Resource": "arn:aws:iam::*:instance-profile/*imagebuilder*"
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": [
                "arn:aws:iam::*:instance-profile/*imagebuilder*",
                "arn:aws:iam::*:role/*imagebuilder*"
            ],
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "ec2.amazonaws.com"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": "arn:aws:s3::*:*imagebuilder*"
        }
    ]
}
```

------

对于仅调用 AWS CLI 或 AWS API 的用户，您无需为其设置最低控制台权限。相反，只允许访问与您尝试执行的 API 操作相匹配的操作。

## 自定义工作流程的 IAM 权限
<a name="security-iam-custom-workflows"></a>

使用带有特定步骤操作的自定义工作流程时[RegisterImage](wfdoc-step-actions.md#wfdoc-step-action-register-image)，除了标准的 Image Builder 托管策略之外，可能需要其他 IAM 权限。本节介绍自定义工作流程步骤操作所需的其他权限。

### RegisterImage 步骤操作权限
<a name="security-iam-registerimage-permissions"></a>

该`RegisterImage`步骤操作需要特定的 Amazon EC2 权限才能注册AMIs 和可选地检索快照标签。使用`includeSnapshotTags`参数时，需要额外的权限来描述快照。

** RegisterImage 步骤操作所需的权限：**

对于所有资源，允许执行以下操作：
+ `ec2:RegisterImage`
+ `ec2:DescribeSnapshots`

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:RegisterImage",
                "ec2:DescribeSnapshots"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateTags"
            ],
            "Resource": "arn:aws:ec2:*::image/*",
            "Condition": {
                "StringEquals": {
                    "ec2:CreateAction": "RegisterImage"
                }
            }
        }
    ]
}
```

**权限详情：**
+ `ec2:RegisterImage`-需要 AMIs 从快照中注册新快照
+ `ec2:DescribeSnapshots`-使用检索快照标签`includeSnapshotTags: true`以与 AMI 标签合并时必填项
+ `ec2:CreateTags`-需要对注册的 AMI 应用标签，包括 Image Builder 默认标签和合并的快照标签

**注意**  
该`ec2:DescribeSnapshots`权限仅在`includeSnapshotTags`参数设置为时使用`true`。如果您不使用此功能，则可以省略此权限。

**标签合并行为：**

`includeSnapshotTags`启用后， RegisterImage 步骤操作将：
+ 从块储存设备映射中指定的第一个快照中检索标签
+ 排除任何 AWS 保留的标签（密钥以 “aws:” 开头的标签）
+ 将快照标签与映像生成器的默认 AMI 注册标签合并
+ 当标签键发生冲突时，优先使用 Image Builder 标签

## Image Builder 基于资源的策略
<a name="security-iam-resource-based-policies"></a>

有关如何创建组件的信息，请参阅 [使用组件自定义 Image Builder 映像](manage-components.md)。

### 限制 Image Builder 组件访问特定的 IP 地址
<a name="sec-iam-resourcepol-restrict-component-by-ip"></a>

以下示例为任何用户授予权限以对组件执行任何 Image Builder 操作。但是，请求必须来自条件中指定的 IP 地址范围。

此语句中的条件标识了允许的互联网协议版本 4 (IPv4) IP 地址的 54.240.143.\$1 范围，但有一个例外：54.240.143.188。

该`Condition`块使用`IpAddress`和`NotIpAddress`条件和`aws:SourceIp`条件键，后者是一个 AWS宽范围的条件键。有关这些条件键的更多信息，请参阅[在策略中指定条件](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazon-s3-policy-keys.html)。这些`aws:sourceIp` IPv4 值使用标准 CIDR 表示法。有关更多信息，请参阅 *《IAM 用户指南》*中的 [IP 地址条件运算符](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_IPAddress)。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Id": "IBPolicyId1",
  "Statement": [
    {
      "Sid": "IPAllow",
      "Effect": "Allow",
      "Action": "imagebuilder:GetComponent",
      "Resource": "arn:aws:imagebuilder:*::examplecomponent/*",
      "Condition": {
         "IpAddress": {"aws:SourceIp": "54.240.143.0/24"},
         "NotIpAddress": {"aws:SourceIp": "54.240.143.188/32"} 
      } 
    } 
  ]
}
```

------

# 为 EC2 Image Builder 使用 AWS 托管策略
<a name="security-iam-awsmanpol"></a>

 AWS 托管策略是由创建和管理的独立策略 AWS。 AWS 托管策略旨在为许多常见用例提供权限，以便您可以开始为用户、组和角色分配权限。

请记住， AWS 托管策略可能不会为您的特定用例授予最低权限权限，因为它们可供所有 AWS 客户使用。我们建议通过定义特定于使用案例的[客户管理型策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies)来进一步减少权限。

您无法更改 AWS 托管策略中定义的权限。如果 AWS 更新 AWS 托管策略中定义的权限，则更新会影响该策略所关联的所有委托人身份（用户、组和角色）。 AWS 最有可能在启动新的 API 或现有服务可以使用新 AWS 服务 的 API 操作时更新 AWS 托管策略。

有关更多信息，请参阅《IAM 用户指南》**中的 [AWS 托管式策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)。

## AWSImageBuilderFullAccess 策略
<a name="sec-iam-manpol-AWSImageBuilderFullAccess"></a>

该 **AWSImageBuilderFullAccess** 策略授予所附加角色对 Image Builder 资源的完全访问权限，允许该角色列出、描述、创建、更新和删除 Image Builder 资源。该策略还向相关 AWS 服务 人员授予所需的定向权限，例如验证资源或在中显示账户的当前资源 AWS 管理控制台。

### 权限详细信息
<a name="sec-iam-manpol-AWSImageBuilderFullAccess-details"></a>

该策略包含以下权限：
+ **Image Builder** – 授予管理权限，使该角色可以列出、描述、创建、更新和删除 Image Builder 资源。
+ **Amazon EC2** – 授予 Amazon EC2 Describe 操作的访问权限，这些操作是验证资源是否存在或获取属于账户的资源列表所必需的。
+ **IAM** – 授予访问权限以获取和使用名称包含“imagebuilder”的实例配置文件，通过 `iam:GetRole` API 操作验证 Image Builder 服务相关角色是否存在，以及创建 Image Builder 服务相关角色。
+ **License Manager** – 授予访问权限，以列出资源的许可证配置或许可证。
+ **Amazon S3** – 授予访问权限，以列出属于该账户的存储桶，以及名称中带有“imagebuilder”的 Image Builder 存储桶。
+ **Amazon SNS** – 向 Amazon SNS 授予写入权限，以验证包含“imagebuilder”的主题的主题所有权。

要查看此策略的权限，请参阅《AWS 托管式策略参考》中的 [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSImageBuilderFullAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSImageBuilderFullAccess.html)**。

## AWSImageBuilderReadOnlyAccess 策略
<a name="sec-iam-manpol-AWSImageBuilderReadOnlyAccess"></a>

**AWSImageBuilderReadOnlyAccess** 策略提供对所有 Image Builder 资源的只读访问权限。授予权限以通过 `iam:GetRole` API 操作验证 Image Builder 服务相关角色是否存在。

### 权限详细信息
<a name="sec-iam-manpol-AWSImageBuilderReadOnlyAccess-details"></a>

该策略包含以下权限：
+ **Image Builder** – 授予对 Image Builder 资源的只读访问权限。
+ **IAM** – 授予访问权限，以通过 `iam:GetRole` API 操作验证 Image Builder 服务相关角色是否存在。

要查看此策略的权限，请参阅《AWS 托管式策略参考》中的 [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSImageBuilderReadOnlyAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSImageBuilderReadOnlyAccess.html)**。

## AWSServiceRoleForImageBuilder 策略
<a name="sec-iam-manpol-AWSServiceRoleForImageBuilder"></a>

该**AWSServiceRoleForImageBuilder**政策允许 Image Builder AWS 服务 代表您致电。

### 权限详细信息
<a name="sec-iam-manpol-AWSServiceRoleForImageBuilder-details"></a>

通过 Systems Manager 创建 Image Builder 服务相关角色时，该策略将附加到该角色。有关 Image Builder 服务相关角色的更多信息，请参阅 [使用 Image Builder 的 IAM 服务相关角色](image-builder-service-linked-role.md)。

此策略包含以下权限：
+ **CloudWatch 日志**-授予创建 CloudWatch 日志并将其上传到名称以开头的任何日志组的访问权限`/aws/imagebuilder/`。
+ **Amazon EC2** — Image Builder 有权创建、拍摄快照和注册其创建的映像 (AMI)，并在您的账户中启动 EC2 实例。Image Builder 会根据需要使用相关的快照、卷、网络接口、子网、安全组、许可证配置和密钥对，前提是正在创建或使用的映像、实例和卷标有`CreatedBy: EC2 Image Builder`或`CreatedBy: EC2 Fast Launch`。

  Image Builder 可以获取以下有关信息：Amazon EC2 映像、实例属性、实例状态、账户可用的实例类型、启动模板、子网、主机和 Amazon EC2 资源上的标签。

  Image Builder 可以更新映像设置，以启用或禁用账户中的 Windows 实例快速启动（其中映像标有 `CreatedBy: EC2 Image Builder`）。

  此外，Image Builder 可以启动、停止和终止账户中运行的实例，还可以共享 Amazon EBS 快照、创建和更新映像和启动模板，注销现有映像，添加标签，以及在您通过 **Ec2ImageBuilderCrossAccountDistributionAccess** 策略授予权限的账户之间复制映像。如前所述，所有这些操作都需要使用 Image Builder 标记。
+ **Amazon ECR** – 向 Image Builder 授予访问权限，在需要进行容器映像漏洞扫描时创建存储库，并为其创建的资源添加标签，以限制其操作范围。Image Builder 还被授予访问权限，以在获取漏洞快照后删除其为扫描创建的容器映像。
+ **EventBridge**— 授予 Image Builder 创建和管理 EventBridge 规则的权限。
+ **IAM** – 向 Image Builder 授予访问权限，以将您账户中的任意角色传递给 Amazon EC2 和 VM Import/Export。
+ **Amazon Inspector** – 向 Image Builder 授予访问权限，以确定 Amazon Inspector 何时完成构建实例扫描，并收集配置为允许扫描的映像的结果。
+ **AWS KMS**：向 Amazon EBS 授予访问权限，以加密、解密或重新加密 Amazon EBS 卷。这一点非常重要，可以确保当 Image Builder 构建映像时，加密卷能够正常工作。
+ **License Manager** – 向 Image Builder 授予访问权限，以通过 `license-manager:UpdateLicenseSpecificationsForResource` 更新 License Manager 规格。
+ **Amazon SNS** – 向账户中的任何 Amazon SNS 主题都授予写入权限。
+ **Systems Manager** – 向 Image Builder 授予访问权限，以列出 Systems Manager 命令及其调用、清单条目、描述实例信息和自动执行状态、描述提供实例放置支持的主机，并获取命令调用详细信息。Image Builder 还可以发送自动化信号，并停止对账户中任意资源的自动化执行。

  Image Builder 能够向标记为 `"CreatedBy": "EC2 Image Builder"` 的任何实例发出运行命令调用，用于以下脚本文件：`AWS-RunPowerShellScript`、`AWS-RunShellScript` 和 `AWSEC2-RunSysprep`。Image Builder 能够在账户中启动 Systems Manager 自动化执行，用于名称以 `ImageBuilder` 开头的自动化文档。

  Image Builder 还可以在账户中为任何实例创建或删除状态管理器关联（只要关联文档为 `AWS-GatherSoftwareInventory`），并且可以在账户中创建 Systems Manager 服务相关角色。

  Image Builder 能够读取公共参数存储参数，并读取和更新前缀为的私有参数，`/imagebuilder/`这样它就可以使用 Image Builder 从新版本中创建的输出 AMI IDs 来更新参数值。
+ **AWS STS**：向 Image Builder 授予访问权限，以将账户中名为 **EC2ImageBuilderDistributionCrossAccountRole** 的角色带入任何账户，前提是该角色的信任策略允许代入。这可用于跨账户映像分配。

要查看此策略的权限，请参阅《AWS 托管式策略参考》中的 [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSServiceRoleForImageBuilder.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSServiceRoleForImageBuilder.html)**。

## Ec2ImageBuilderCrossAccountDistributionAccess 策略
<a name="sec-iam-manpol-Ec2ImageBuilderCrossAccountDistributionAccess"></a>

该 **Ec2ImageBuilderCrossAccountDistributionAccess** 策略向 Image Builder 授予权限，以在目标区域跨账户分配映像。此外，Image Builder 能够描述、复制和应用标签到账户中的任何 Amazon EC2 映像。该策略还允许通过 `ec2:ModifyImageAttribute` API 操作修改 AMI 权限。

### 权限详细信息
<a name="sec-iam-manpol-Ec2ImageBuilderCrossAccountDistributionAccess-details"></a>

该策略包含以下权限：
+ **Amazon EC2** – 向 Amazon EC2 授予访问权限，以描述、复制和修改映像的属性，以及为账户中的任何 Amazon EC2 映像创建标签。

要查看此策略的权限，请参阅《AWS 托管式策略参考》中的 [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/Ec2ImageBuilderCrossAccountDistributionAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/Ec2ImageBuilderCrossAccountDistributionAccess.html)**。

## EC2ImageBuilderLifecycleExecutionPolicy 策略
<a name="sec-iam-manpol-EC2ImageBuilderLifecycleExecutionPolicy"></a>

该**EC2ImageBuilderLifecycleExecutionPolicy**政策授予 Image Builder 执行诸如弃用、禁用或删除 Image Builder 图像资源及其底层资源（快照）等操作的权限AMIs，以支持映像生命周期管理任务的自动规则。

### 权限详细信息
<a name="sec-iam-manpol-EC2ImageBuilderLifecycleExecutionPolicy-details"></a>

该策略包含以下权限：
+ **Amazon EC2** — Amazon EC2 被授予访问权限，允许其对账户中标记为的亚马逊系统映像 (AMIs) 执行以下操作`CreatedBy: EC2 Image Builder`。
  + 启用和禁用 AMI。
  + 启用和禁用映像弃用。
  + 描述和注销 AMI。
  + 描述和修改 AMI 映像属性。
  + 删除与 AMI 关联的卷快照。
  + 检索资源的标签。
  + 在 AMI 中添加或删除弃用标签。
+ **Amazon ECR** – 向 Amazon ECR 授予访问权限，以对具有 `LifecycleExecutionAccess: EC2 Image Builder` 标签的 ECR 存储库上执行以下批处理操作。批处理操作支持自动化容器映像生命周期规则。
  + `ecr:BatchGetImage`
  + `ecr:BatchDeleteImage`

  在存储库级别向标记为 `LifecycleExecutionAccess: EC2 Image Builder` 的 ECR 存储库授予访问权限。
+ **AWS 资源组** — 授予 Image Builder 基于标签获取资源的权限。
+ **EC2 Image Builder** – 向 Image Builder 授予权限，以删除 Image Builder 映像资源。

要查看此策略的权限，请参阅《AWS 托管式策略参考》中的 [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/EC2ImageBuilderLifecycleExecutionPolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/EC2ImageBuilderLifecycleExecutionPolicy.html)**。

## EC2InstanceProfileForImageBuilder 策略
<a name="sec-iam-manpol-EC2InstanceProfileForImageBuilder"></a>

**EC2InstanceProfileForImageBuilder** 策略授予 EC2 实例与 Image Builder 协同工作所需的最低权限。但这不包括使用 Systems Manager 代理所需的权限。

### 权限详细信息
<a name="sec-iam-manpol-EC2InstanceProfileForImageBuilder-details"></a>

该策略包含以下权限：
+ **CloudWatch 日志**-授予创建 CloudWatch 日志并将其上传到名称以开头的任何日志组的访问权限`/aws/imagebuilder/`。
+ **Amazon EC2** — 有权描述卷和快照、创建 Image Builder 创建的卷或快照资源的快照以及为 Image Builder 资源创建标签。
+ **Image Builder** — 授予获取任何图像生成器或 AWS Marketplace 组件的访问权限。
+ **AWS KMS**— 如果Image Builder组件是通过加密的，则有权解密该组件。 AWS KMS
+ **Amazon S3** — 授予访问权限，以获取存储在名称以 `ec2imagebuilder-` ISO 开头的 Amazon S3 存储桶中的对象或文件扩展名为 ISO 的资源。

要查看此策略的权限，请参阅《AWS 托管式策略参考》中的 [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/EC2InstanceProfileForImageBuilder.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/EC2InstanceProfileForImageBuilder.html)**。

## EC2InstanceProfileForImageBuilderECRContainerBuilds 策略
<a name="sec-iam-manpol-EC2InstanceProfileForImageBuilderECRContainerBuilds"></a>

当 EC2 实例使用 Image Builder 构建 Docker 映像，然后在 Amazon ECR 容器存储库中注册和存储映像时，**EC2InstanceProfileForImageBuilderECRContainerBuilds** 策略会授予其所需的最低权限。但这不包括使用 Systems Manager 代理所需的权限。

### 权限详细信息
<a name="sec-iam-manpol-EC2InstanceProfileForImageBuilderECRContainerBuilds-details"></a>

该策略包含以下权限：
+ **CloudWatch 日志**-授予创建 CloudWatch 日志并将其上传到名称以开头的任何日志组的访问权限`/aws/imagebuilder/`。
+ **Amazon ECR** – 向 Amazon ECR 授予访问权限，以获取、注册和存储容器映像，以及获取授权令牌。
+ **Image Builder** – 授予访问权限，以获取 Image Builder 组件或容器配方。
+ **AWS KMS**— 如果Image Builder组件或容器配方是通过加密的，则授予解密该组件或容器配方的权限。 AWS KMS
+ **Amazon S3** – 授予权限，以获取存储在名称以 `ec2imagebuilder-` 开头的 Amazon S3 存储桶中的对象。

要查看此策略的权限，请参阅《AWS 托管式策略参考》中的 [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/EC2InstanceProfileForImageBuilderECRContainerBuilds.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/EC2InstanceProfileForImageBuilderECRContainerBuilds.html)**。

## Image Builder 更新 AWS 了托管策略
<a name="security-iam-awsmanpol-updates"></a>

本节提供有关自Image Builder AWS 托管策略开始跟踪这些更改以来对该服务所做的更新的信息。有关此页面更改的自动警报，请订阅 Image Builder [文档历史记录](doc-history.md)页面上的 RSS 源。




| 更改 | 描述 | 日期 | 
| --- | --- | --- | 
|  [AWSServiceRoleForImageBuilder](#sec-iam-manpol-AWSServiceRoleForImageBuilder)：对现有策略的更新  |  Image Builder 对服务角色进行了以下更改： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/imagebuilder/latest/userguide/security-iam-awsmanpol.html)  | 2026 年 2 月 26 日 | 
|  [AWSServiceRoleForImageBuilder](#sec-iam-manpol-AWSServiceRoleForImageBuilder)：对现有策略的更新  |  Image Builder 对服务角色进行了以下更改，以支持在配方和图像分发期间使用 AWS Systems Manager (SSM) 参数存储参数。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/imagebuilder/latest/userguide/security-iam-awsmanpol.html)  | 2025 年 7 月 23 日 | 
|  [EC2InstanceProfileForImageBuilder](#sec-iam-manpol-EC2InstanceProfileForImageBuilder)：对现有策略的更新  |  Image Builder 对实例配置文件策略进行了以下更改，以支持 ISO 文件下载更多文件扩展名。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/imagebuilder/latest/userguide/security-iam-awsmanpol.html)  | 2025 年 5 月 19 日 | 
|  [AWSServiceRoleForImageBuilder](#sec-iam-manpol-AWSServiceRoleForImageBuilder)：对现有策略的更新  |  Image Builder 对服务角色进行了以下更改，以支持将 Microsoft 客户端操作系统 ISO 文件作为基础映像导入。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/imagebuilder/latest/userguide/security-iam-awsmanpol.html)  | 2024 年 12 月 30 日 | 
|  [EC2InstanceProfileForImageBuilder](#sec-iam-manpol-EC2InstanceProfileForImageBuilder)：对现有策略的更新  |  Image Builder 对实例配置文件策略进行了以下更改，以支持从磁盘映像文件创建映像。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/imagebuilder/latest/userguide/security-iam-awsmanpol.html)  | 2024 年 12 月 30 日 | 
|  [EC2InstanceProfileForImageBuilder](#sec-iam-manpol-EC2InstanceProfileForImageBuilder) - 更新的策略  |  Image Builder 更新了`EC2InstanceProfileForImageBuilder`政策，允许图像生成器获取 AWS Marketplace 组件。  | 2024 年 12 月 2 日 | 
|  [EC2ImageBuilderLifecycleExecutionPolicy](#sec-iam-manpol-EC2ImageBuilderLifecycleExecutionPolicy)：新策略  |  Image Builder 添加了包含映像生命周期管理权限的新 `EC2ImageBuilderLifecycleExecutionPolicy` 策略。  | 2023 年 11 月 17 日 | 
|  [AWSServiceRoleForImageBuilder](#sec-iam-manpol-AWSServiceRoleForImageBuilder)：对现有策略的更新  |  Image Builder 对服务角色进行了以下更改以提供实例放置支持。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/imagebuilder/latest/userguide/security-iam-awsmanpol.html)  | 2023 年 10 月 19 日 | 
|  [AWSServiceRoleForImageBuilder](#sec-iam-manpol-AWSServiceRoleForImageBuilder)：对现有策略的更新  |  Image Builder 对服务角色进行了以下更改以提供实例放置支持。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/imagebuilder/latest/userguide/security-iam-awsmanpol.html)  | 2023 年 9 月 28 日 | 
|  [AWSServiceRoleForImageBuilder](#sec-iam-manpol-AWSServiceRoleForImageBuilder)：对现有策略的更新  |  Image Builder 对服务角色进行了以下更改，以允许 Image Builder 工作流程收集 AMI 和 ECR 容器映像版本的漏洞结果。新权限支持 CVE 检测和报告功能。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/imagebuilder/latest/userguide/security-iam-awsmanpol.html)  | 2023 年 3 月 30 日 | 
|  [AWSServiceRoleForImageBuilder](#sec-iam-manpol-AWSServiceRoleForImageBuilder)：对现有策略的更新  |  Image Builder 对服务角色进行了以下更改： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/imagebuilder/latest/userguide/security-iam-awsmanpol.html)  | 2022 年 3 月 22 日 | 
|  [AWSServiceRoleForImageBuilder](#sec-iam-manpol-AWSServiceRoleForImageBuilder)：对现有策略的更新  |  Image Builder 对服务角色进行了以下更改： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/imagebuilder/latest/userguide/security-iam-awsmanpol.html)  | 2022 年 2 月 21 日 | 
|  [AWSServiceRoleForImageBuilder](#sec-iam-manpol-AWSServiceRoleForImageBuilder)：对现有策略的更新  |  Image Builder 对服务角色进行了以下更改： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/imagebuilder/latest/userguide/security-iam-awsmanpol.html)  | 2021 年 11 月 20 日 | 
|  [AWSServiceRoleForImageBuilder](#sec-iam-manpol-AWSServiceRoleForImageBuilder)：对现有策略的更新  |  Image Builder 已添加新权限，以修复多个清单关联导致映像构建卡住的问题。  | 2021 年 8 月 11 日 | 
|  [AWSImageBuilderFullAccess](#sec-iam-manpol-AWSImageBuilderFullAccess)：对现有策略的更新  |  Image Builder 对完全访问权限角色进行了以下更改： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/imagebuilder/latest/userguide/security-iam-awsmanpol.html)  | 2021 年 4 月 13 日 | 
|  Image Builder 已开始跟踪更改  |  Image Builder 开始跟踪其 AWS 托管策略的更改。  | 2021 年 4 月 02 日 | 

# 使用 Image Builder 的 IAM 服务相关角色
<a name="image-builder-service-linked-role"></a>

EC2 Image Builder 使用 AWS Identity and Access Management (IAM) [服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)。服务相关角色是一种独特类型的 IAM 角色，它与 Image Builder 直接相关。服务相关角色由 Image Builder 预定义，包括该服务代表您呼叫他人 AWS 服务 所需的所有权限。

服务相关角色可让您更高效地设置 Image Builder，因为您不必手动添加必要的权限。Image Builder 定义其服务相关角色的权限，除非另外定义，否则只有 Image Builder 可以代入该角色。定义的权限包括信任策略和权限策略。不能将该权限策略附加到任何其他 IAM 实体。

有关支持服务相关角色的其他服务的信息，请参阅[与 IAM 配合使用的AWS 服务](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)，并查找 **Service-Linked Role**（服务相关角色）列中显示为 **Yes**（是）的服务。请选择**是**与查看该服务的服务关联角色文档的链接。

## Image Builder 的服务相关角色权限
<a name="image-builder-slr-permissions"></a>

Image Builder 使用**AWSServiceRoleForImageBuilder**服务相关角色允许 EC2 Image Builder 代表您访问 AWS 资源。服务相关角色信任 *imagebuilder.amazonaws.com* ​服务来代入该角色。

您无需手动创建该服务相关角色。当您在 AWS 管理控制台、或 AWS API 中创建第一个 Image Builder 映像时，Image Builder 会为您创建服务相关角色。 AWS CLI

以下操作可创建新的映像：
+ 在 Image Builder 控制台中运行管道向导以创建自定义映像。
+ 使用以下 API 操作之一或其对应的 AWS CLI 命令：
  + **[CreateImage](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateImage.html)**API 操作（**[create-image](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/create-image.html)**在 AWS CLI）。
  + **[ImportVmImage](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_ImportVmImage.html)**API 操作（**[import-vm-image](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/import-vm-image.html)**在 AWS CLI）。
  + **[StartImagePipelineExecution](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_StartImagePipelineExecution.html)**API 操作（**[start-image-pipeline-execution](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/start-image-pipeline-execution.html)**在 AWS CLI）。

**重要**  
如果您的帐户已删除服务相关角色，您可以使用相同的过程重新创建它。在创建第一个 EC2 Image Builder 资源时，Image Builder 将再次为您创建服务相关角色。

要查看 **AWSServiceRoleForImageBuilder** 的权限，请参阅 [AWSServiceRoleForImageBuilder 策略](security-iam-awsmanpol.md#sec-iam-manpol-AWSServiceRoleForImageBuilder) 页面。要了解有关为服务相关角色配置权限的更多信息，请参阅 *IAM 用户指南*中的[服务相关角色权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions)。

## 从您的账户中移除 Image Builder 服务相关角色
<a name="image-builder-slr-deleting"></a>

您可以使用 IAM 控制台 AWS CLI、或 AWS API 从您的账户中手动移除 Image Builder 的服务相关角色。但是，在执行此操作之前，必须确保未启用任何引用它的 Image Builder 资源。

**注意**  
在尝试删除资源时，如果 Image Builder 服务正在使用该角色，删除可能会失败。如果发生这种情况，请等待几分钟后重试。

**清理 `AWSServiceRoleForImageBuilder` 角色使用的 Image Builder 资源**

1. 在开始操作之前，请确认没有正在运行中的任何管道构建。要取消正在运行中的构建，请使用 AWS CLI中的 `cancel-image-creation` 命令。

   ```
   aws imagebuilder cancel-image-creation --image-build-version-arn arn:aws:imagebuilder:us-east-1:123456789012:image-pipeline/sample-pipeline
   ```

1. 将所有管道计划更改为采用手动构建流程，或者如果不再使用它们，则将其删除。有关删除资源的更多信息，请参阅 [删除过期或未使用的 Image Builder 资源](delete-resources.md)。

**使用 IAM 删除服务相关角色**  
您可以使用 IAM 控制台 AWS CLI、或 AWS API 从您的账户中删除该`AWSServiceRoleForImageBuilder`角色。有关更多信息，请参阅《IAM 用户指南》**中的[删除服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)。

## Image Builder 服务相关角色的受支持区域
<a name="image-builder-slr-regions"></a>

Image Builder 支持在提供服务的所有 AWS 区域中使用服务相关角色。有关支持的 AWS 区域列表，请参阅[AWS 区域和终端节点](what-is-image-builder.md#image-builder-regions)。

# Image Builder 中的 IAM 问题疑难解答
<a name="security_iam_troubleshoot"></a>

**Topics**
+ [我无权在 Image Builder 中执行操作](#security_iam_troubleshoot-no-permissions)
+ [我无权执行 iam：PassRole](#security_iam_troubleshoot-passrole)
+ [我想允许我以外的人访问我 AWS 账户 的 Image Builder 资源](#security_iam_troubleshoot-cross-account-access)

## 我无权在 Image Builder 中执行操作
<a name="security_iam_troubleshoot-no-permissions"></a>

如果您收到错误提示，指明您无权执行某个操作，则必须更新策略以允许执行该操作。

当 `mateojackson` IAM 用户尝试使用控制台查看有关虚构 `my-example-widget` 资源的详细信息，但不拥有虚构 `imagebuilder:GetWidget` 权限时，会发生以下示例错误。

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: imagebuilder:GetWidget on resource: my-example-widget
```

在此情况下，必须更新 `mateojackson` 用户的策略，以允许使用 `imagebuilder:GetWidget` 操作访问 `my-example-widget` 资源。

如果您需要帮助，请联系您的 AWS 管理员。您的管理员是提供登录凭证的人。

## 我无权执行 iam：PassRole
<a name="security_iam_troubleshoot-passrole"></a>

如果您收到一个错误，表明您无权执行 `iam:PassRole` 操作，则必须更新策略以允许您将角色传递给 Image Builder。

有些 AWS 服务 允许您将现有角色传递给该服务，而不是创建新的服务角色或服务相关角色。为此，您必须具有将角色传递到服务的权限。

当名为 `marymajor` 的 IAM 用户尝试使用控制台在 Image Builder 中执行操作时，会发生以下示例错误。但是，服务必须具有服务角色所授予的权限才可执行此操作。Mary 不具有将角色传递到服务的权限。

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

在这种情况下，必须更新 Mary 的策略以允许她执行 `iam:PassRole` 操作。

如果您需要帮助，请联系您的 AWS 管理员。您的管理员是提供登录凭证的人。

## 我想允许我以外的人访问我 AWS 账户 的 Image Builder 资源
<a name="security_iam_troubleshoot-cross-account-access"></a>

您可以创建一个角色，以便其他账户中的用户或您组织外的人员可以使用该角色来访问您的资源。您可以指定谁值得信赖，可以代入角色。对于支持基于资源的策略或访问控制列表 (ACLs) 的服务，您可以使用这些策略向人们授予访问您的资源的权限。

要了解更多信息，请参阅以下内容：
+ 要了解 Image Builder 是否支持这些特征，请参阅 [Image Builder 如何与 IAM 策略和角色配合使用](security_iam_service-with-iam.md)。
+ 要了解如何提供对您拥有的资源的访问权限 AWS 账户 ，请参阅 [IAM 用户*指南中的向您拥有 AWS 账户 的另一个 IAM 用户*提供访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html)权限。
+ 要了解如何向第三方提供对您的资源的访问[权限 AWS 账户，请参阅 *IAM 用户指南*中的向第三方提供](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html)访问权限。 AWS 账户 
+ 要了解如何通过身份联合验证提供访问权限，请参阅《IAM 用户指南》**中的[为经过外部身份验证的用户（身份联合验证）提供访问权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html)。
+ 要了解使用角色和基于资源的策略进行跨账户访问之间的差别，请参阅《IAM 用户指南》**中的 [IAM 中的跨账户资源访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)。