共享 EC2 Image Builder 资源 - EC2 Image Builder
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

共享 EC2 Image Builder 资源

EC2 Image Builder 与 Amazon Resource Access Manager (Amazon RAM) 集成,允许您与任何资源 Amazon Web Services 账户 或通过共享某些资源 Amazon Organizations。可以共享的 EC2 Image Builder 资源有:

  • 组件

  • 映像

  • 配方

本部分提供了一些信息以帮助您共享这些 EC2 Image Builder 资源。

在 EC2 Image Builder 中使用共享的组件、映像和配方

组件、映像和配方共享使资源所有者能够与其他人共享软件配置 Amazon Web Services 账户 或在 Amazon 组织内部共享软件配置。您可以集中管理资源共享,并定义一组可与您共享配置的账户。

在此模型中 Amazon Web Services 账户 ,拥有组件、图像或配方的人(所有者)与其他 Amazon Web Services 账户 (消费者)共享。使用者可以将共享的组件与其映像管道相关联,以自动使用共享组件、映像或配方的更新。

组件、映像或配方所有者可以与以下实体共享这些资源:

  • 具体在其组织 Amazon Web Services 账户 内部或外部 Amazon Organizations。

  • Amazon Organizations中的组织内部的组织单元 (OU)。

  • Amazon Organizations中的整个组织。

  • Amazon Organizations 或其组织之外的 OU。

共享组件、映像和配方的先决条件

要共享 Image Builder 组件、映像或配方,必须满足以下条件:

  • 您必须在 Amazon Web Services 账户中拥有组件、映像或配方。您不能共享已与您共享的资源。

  • 必须与目标账户、组织或 OU 明确共享与加密资源关联的 Amazon Key Management Service (Amazon KMS) 密钥。

  • 如果您在不同区域的账户 Amazon KMS 之间分发使用加密的图像,则必须在每个目标区域中创建 KMS 密钥和别名。此外,将在这些地区启动实例的人员需要访问通过密钥策略指定的 KMS 密钥。

Image Builder 从您的管道构建中创建的以下资源不被视为 Image Builder 资源,而是 Image Builder 在您的账户中分配的外部资源,以及您在分发配置中指定的账户、组织或组织单位 (OU)。 Amazon Web Services 区域

  • 亚马逊机器映像(AMI)

  • 存放在 Amazon ECR 中的容器映像

有关适用于 AMI 的分配设置的更多信息,请参阅 创建和更新 AMI 分配配置。有关在 Amazon ECR 中容器映像的分配设置的更多信息,请参阅 创建和更新容器映像的分配设置

有关共享 AMI的更多信息,请参阅 共享 AMIs

Amazon Resource Access Manager

组件、图像和配方共享与 Amazon Resource Access Manager (Amazon RAM) 集成。 Amazon RAM 是一项服务,可让您与任何 Amazon 账户或通过任何账户共享 Amazon 资源 Amazon Organizations。使用 Amazon RAM,您可以通过创建资源共享来共享您拥有的资源。资源共享指定要共享的资源以及与您共享这些资源的使用者。消费者可以是个人 Amazon Web Services 账户、组织单位或中的整个组织 Amazon Organizations。

跨区域共享

共享的组件、映像和配方只能在指定的 Amazon 区域中进行共享。在共享这些资源时,不会在区域之间复制它们。

共享组件、映像或配方

要共享组件、映像或配方,您必须将其添加到资源共享中。资源共享是一种 Amazon RAM 允许您跨 Amazon 账户共享资源的资源。资源共享指定要共享的资源以及与您共享这些资源的使用者。要将组件、映像或配方添加到新的资源共享中,必须先使用 Amazon RAM 控制台创建资源共享。

如果您是组织中的一员, Amazon Organizations 并且启用了组织内部共享,则系统会自动授予组织中的消费者访问共享组件、图像或配方的权限。否则,使用者将会收到加入资源共享的邀请,并在接受邀请后为其授予共享资源的访问权限。

可以提供以下选项用于共享资源:

选项 1:创建 RAM 资源共享

创建 RAM 资源共享时,只需一步即可共享您所拥有的组件、映像或配方。使用以下方法之一创建资源共享:

选项 2:应用资源策略并提升到 RAM 资源共享

共享资源的第二个选项包括两个步骤,两个步骤都在中 Amazon CLI 运行命令。第一步使用中的 Image Builder 命令 Amazon CLI 将基于资源的策略应用于共享资源。第二步使用中的promote-resource-share-created-from-policy Amazon RAM 命令将资源提升为 RAM 资源共享, Amazon CLI 以确保与您共享该资源的所有委托人都能看到该资源。

  1. 应用资源策略

    要成功应用资源策略,您必须确保与之共享的账户有权访问任何底层资源。

    选择与适用命令的资源类型相匹配的选项卡。

    Image

    您可以将资源策略应用于映像,以允许其他用户在其配方中作为基础映像使用该映像。

    运行中的 put-image-policy Image Builder 命令 Amazon CLI,确定要与之共享映像的 Amazon 委托人。

    aws imagebuilder put-image-policy --image-arn arn:aws:imagebuilder:us-west-2:123456789012:image/my-example-image/2019.12.03/1 --policy '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "123456789012" ] }, "Action": ["imagebuilder:GetImage", "imagebuilder:ListImages"], "Resource": [ "arn:aws:imagebuilder:us-west-2:123456789012:image/my-example-image/2019.12.03/1" ] } ] }'
    Component

    您可以将资源策略应用于构建或测试组件,以启用跨账户共享。此命令为其他账户授予权限,以便在其配方中使用您的组件。要成功应用该资源策略,您必须确保与您共享资源的账户有权访问共享的组件引用的所有资源,例如,在私有存储库上托管的文件。

    运行中的 put-component-policy Image Builder 命令 Amazon CLI,确定要与之共享组件的 Amazon 委托人。

    aws imagebuilder put-component-policy --component-arn arn:aws:imagebuilder:us-west-2:123456789012:component/my-example-component/2019.12.03/1 --policy '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "123456789012" ] }, "Action": [ "imagebuilder:GetComponent", "imagebuilder:ListComponents" ], "Resource": [ "arn:aws:imagebuilder:us-west-2:123456789012:component/my-example-component/2019.12.03/1" ] } ] }'
    Image recipe

    您可以将资源策略应用于映像配方,以便启用跨账户共享。此命令为其他账户授予权限,以使用您的配方在其账户中创建映像。要成功应用资源策略,必须确保与之共享的账户有权限访问配方引用的任何资源,如基础映像或选定组件。

    运行中的 put-image-recipe-policy Image Builder 命令 Amazon CLI,确定要与之共享映像的 Amazon 委托人。

    aws imagebuilder put-image-recipe-policy --image-recipe-arn arn:aws:imagebuilder:us-west-2:123456789012:image-recipe/my-example-image-recipe/2019.12.03 --policy '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "123456789012" ] }, "Action": [ "imagebuilder:GetImageRecipe", "imagebuilder:ListImageRecipes" ], "Resource": [ "arn:aws:imagebuilder:us-west-2:123456789012:image-recipe/my-example-image-recipe/2019.12.03" ] } ] }'
    Container recipe

    您可以将资源策略应用于容器配方,以便启用跨账户共享。此命令为其他账户授予权限,以使用您的配方在其账户中创建映像。要成功应用资源策略,必须确保与之共享的账户有权限访问配方引用的任何资源,如基础映像或选定组件。

    运行中的 put-container-recipe-policy Image Builder 命令 Amazon CLI,确定要与之共享映像的 Amazon 委托人。

    aws imagebuilder put-container-recipe-policy --container-recipe-arn arn:aws:imagebuilder:us-west-2:123456789012:container-recipe/my-example-container-recipe/2021.12.03 --policy '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "123456789012" ] }, "Action": [ "imagebuilder:GetContainerRecipe", "imagebuilder:ListContainerRecipes" ], "Resource": [ "arn:aws:imagebuilder:us-west-2:123456789012:container-recipe/my-example-container-recipe/2021.12.03" ] } ] }'
    注意

    为了设置正确的策略来共享和取消共享某个资源,资源所有者必须具有 imagebuilder:put* 权限。

  2. 提升为 RAM 资源共享

    要确保与您共享资源的所有委托人都能看到该资源,请运行中的promote-resource-share-created-from-policy Amazon RAM Amazon CLI命令。

将共享的组件、映像或配方取消共享

要将您拥有的共享组件、映像或配方取消共享,您必须将其从资源共享中删除。您可以使用 Amazon Resource Access Manager 控制台或 Amazon CLI.

注意

要取消共享组件、映像或配方,使用者不能具有这些资源的任何依赖项。使用者必须先删除共享资源的任何依赖项,然后所有者才能取消共享这些资源。

使用 Amazon Resource Access Manager 控制台取消共享您拥有的共享组件、映像或配方

请参阅《Amazon RAM 用户指南》中的更新资源共享

使用 Amazon CLI将您拥有的共享组件、映像或配方取消共享

使用 disassociate-resource-share 命令停止共享资源。

查找共享的组件、映像或配方

所有者和使用者可以使用 Amazon CLI中的 Image Builder 命令,查找共享的组件、映像和映像配方。

查找共享的组件

运行 list-components 命令,以获取您所拥有的组件以及与您共享的组件的列表。get- component 命令显示组件 Amazon Web Services 账户 所有者的 ID。

识别共享的映像

运行 list-images 命令,以获取您所拥有的映像以及与您共享的映像的列表。get-image 命令显示图像 Amazon Web Services 账户 所有者的 ID。

识别共享容器映像

运行 list-images 命令,以获取您所拥有的映像以及与您共享的映像的列表。get-image 命令将显示映像所有者的 Amazon Web Services 账户 ID。

识别共享的映像配方

运行list-image-recipes命令以获取您拥有的图像配方列表以及与您共享的图像配方。该get-image-recipe命令显示图像配方所有者的 Amazon Web Services 账户 ID。

识别共享容器配方

运行list-container-recipes命令以获取您拥有的容器配方以及与您共享的容器配方的列表。该get-container-recipe命令显示容器配方所有者的 Amazon Web Services 账户 ID。

共享的组件、映像和配方权限

所有者的权限

所有者不能删除共享的组件、镜像或镜像配方,直到不再共享该资源。所有者不能取消共享这些资源,直到没有使用者依赖它们。

使用者的权限

使用者可以读取组件、映像或配方,但不能以任何方式对其进行修改。如果这些资源由其他使用者或资源所有者拥有,则使用者不能查看或修改它们。使用者可以在映像配方中使用共享的组件和映像以创建自定义映像。使用者可以使用共享的映像配方以创建他们拥有的自定义映像。

计费和计量

使用 EC2 Image Builder 不收取任何费用。

资源限制

共享的组件、映像和映像配方仅计入所有者的相应资源限制。使用者的资源限制不受已与他们共享的资源的影响。