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

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

要共享 EC2 Image Builder 资源

EC2 Image BuilderAmazon Resource Access Manager(Amazon RAM) 允许你与任何人共享某些资源Amazon Web Services 账户或者通过Amazon Organizations. 可以共享的 EC2 Image Builder 资源包括:

  • 组件

  • 映像

  • 诀窍

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

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

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

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

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

  • ECICOAmazon Web Services 账户在其组织内部或外部Amazon Organizations.

  • 中的所有者组织内部的组织单位Amazon Organizations.

  • 中的整个所有者组织Amazon Organizations.

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

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

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

  • 这些区域有:Amazon Key Management Service(Amazon KMS) 必须与目标账户明确共享与加密资源关联的密钥。

  • 您必须允许与 Amazon Organizations 共享,才能与您的组织或 Amazon Organizations 中的组织单位共享这些资源。

  • 您有责任确保这些资源外部的依赖项或在外部管理的基础资源。Amazon,也可以与消费者分享。EC2 Image Builder 不管理 EC2 Image Builder 之外的依赖关系。这包括与 EC2 Image Builder 映像关联的 Amazon EC2 AMI,这些映像需要账户级共享。这可以在与 Image Builder 工作流程关联的分发配置中进行配置。

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

Amazon Resource Access Manager

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

跨区域共享

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

要共享组件、镜像或镜像配方

要共享组件、镜像或镜像配方,您必须将其添加到资源共享中。资源共享是一项 Amazon Resource Access Manager 资源,可让您跨 Amazon 账户共享资源。资源共享指定要共享的资源以及与您共享这些资源的使用者。要将组件、镜像或镜像配方添加到新的资源共享中,您必须先使用 Amazon Resource Access Manager 控制台创建资源共享。

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

使用共享您拥有的组件、镜像或配方Amazon Resource Access Manager控制台或Amazon CLI.

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

请参阅 Amazon Resource Access Manager 用户指南中的“创建资源共享”

使用 Amazon CLI 共享您拥有的组件、镜像或镜像配方

使用 create-resource-share 命令。

使用基于资源的策略共享组件、镜像或配方

这些区域有:PutImagePolicyPutComponentPolicy, 和PutImageRecipePolicyImage Builder 服务提供的 API 允许您分别为映像、组件和映像配方定义资源策略。Amazon RAM使用这些 API 来定义正确的资源策略,以允许与其共享某个资源的使用者执行涉及此共享资源的 API 调用。适用于Amazon RAM要设置正确的策略以共享和取消共享资源,资源拥有者必须具有imagebuilder:put*权限。

将资源策略应用于镜像

您可以将资源策略应用于镜像,以允许其他用户在其镜像配方中使用该镜像。要成功执行该命令,您必须确保与您共享资源的账户有权访问基础资源(例如 Amazon EC2 AMI)。我们建议您使用 RAM CLI 命令 create-resource-share 来共享资源。如果您使用 EC2 Image Builder CLI 命令put-image-policy,您还必须使用 RAM CLI 命令从策略创建的促销资源共享使资源能够对与其共享资源的所有委托人看到这些资源。有关更多信息,请参阅要共享 EC2 Image Builder 资源

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" ] } ] }'

将资源策略应用于组件

您可以将资源策略应用于生成组件,以便为生成组件启用跨账户共享。以下命令为其他账户授予权限,以便在其镜像配方中使用您的生成组件。要成功执行该命令,您必须确保与您共享资源的账户有权访问共享的生成组件引用的所有资源,例如,在私有存储库上托管的文件。我们建议您使用 RAM CLI 命令 create-resource-share 来共享资源。如果您使用 EC2 Image Builder CLI 命令put-policy,您还必须使用 RAM CLI 命令从策略创建的促销资源共享使资源能够对与其共享资源的所有委托人看到这些资源。有关更多信息,请参阅要共享 EC2 Image Builder 资源

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" ] } ] }'

将资源策略应用于配方

您可以将资源策略应用于镜像配方,以便为镜像配方启用跨账户共享。以下命令为其他账户授予权限,以使用您的镜像配方在其账户中创建镜像。要成功执行该命令,您必须确保与您共享资源的账户有权访问镜像配方引用的所有镜像或组件。我们建议您使用 RAM CLI 命令 create-resource-share 来共享资源。如果您使用 EC2 Image Builder CLI 命令put-image-policy,您还必须使用 RAM CLI 命令从策略创建的促销资源共享使资源能够对与其共享资源的所有委托人看到这些资源。有关更多信息,请参阅要共享 EC2 Image Builder 资源

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" ] } ] }'

取消共享共享共享共享共享组件、镜像或配方

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

注意

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

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

请参阅更新资源共享中的Amazon Resource Access Manager用户指南。

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

使用 disassociate-resource-share 命令。

识别共享的组件、镜像或配方

所有者和使用 Image Builder 可以使用Amazon CLI.

识别共享的组件

运行列出组件命令获取您拥有的组件以及与您共享的组件的列表。这些区域有:获取组件命令显示Amazon Web Services 账户组件拥有者的 ID。

识别共享镜像

运行列出镜像命令获取您拥有的镜像以及与您共享的镜像的列表。这些区域有:获取镜像命令显示Amazon Web Services 账户映像拥有者的 ID。

识别共享容器镜像

运行列出镜像命令获取您拥有的镜像以及与您共享的镜像的列表。这些区域有:获取镜像命令显示Amazon Web Services 账户映像拥有者的 ID。

识别共享镜像配方

运行列表图片食谱命令以获取您拥有的镜像配方以及与您共享的镜像配方的列表。这些区域有:获取图片食谱命令显示Amazon Web Services 账户映像配方拥有者的 ID。

识别共享容器配方

运行列表容器食谱命令来获取您拥有的容器配方和与您共享的容器配方的列表。这些区域有:获取容器配方命令显示Amazon Web Services 账户容器配方拥有者的 ID。

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

拥有者的权限

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

使用者的权限

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

计费和计量

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

实例限制

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