![](/img/trans.png)
[英]How do I bulk copy AMI AWS account number permissions from one AMI image to another?
[英]How can I copy an AMI to another account using Packer?
我有两个 AWS 账户:
我正在测试帐户中使用 Packer 创建一个 AMI,然后想将 AMI 复制到 Prod 帐户。
我如何使用 Packer 来做到这一点,并在工作完成后删除实际的 AMI?
我已经检查了以下问题,但他们没有解决我的查询:
您可以通过在 packer 中使用ami_users指令来完成此行为。 这将允许指定账户从源账户访问创建的 AMI。
如果您希望在每个账户中拥有 AMI 的深层副本(不同的 ID),那么您将必须使用凭据重新运行packer build
到另一个账户中。
如上所述,使用ami_users 。
我们在生产中使用它的方式是,我们通常在“vars”文件夹中为每个环境都有 vars 文件。 vars JSON 文件中的值之一是"nonprod_account_id":"1234567890"
。 然后在 packer.json 中,使用ami_users如下。
"ami_users": ["{{user `nonprod_account_id`}}"]
我不清楚为什么您要在将 AMI 复制到另一个帐户后从其构建的帐户中删除它,而不是仅仅在“目标”帐户中构建它,除非可能有更强的访问限制或 Prod 中的某些内容,但在那种情况下,我会质疑在事情“松散”的情况下构建的 AMI 中的复制。
要专门进行复制,您可能需要此插件。
https://github.com/martinbaillie/packer-post-processor-ami-copy
从源账户中删除可能需要“手动”进行,或者可以通过删除超过特定时间段的 AMI 的清理过程自动进行。 截至 2019 年 5 月,可以在一个帐户中创建并共享未加密和加密 AMI 的访问权限(与其他答案相比,复制/利用加密 AMI 的能力是新的一点)。
亚马逊发布了一些关于新功能的帖子。
本文概述了使用 Packer 在账户之间复制 AMI 的过程,而不仅仅是引用另一个账户中的源,您可能可以扩展它来执行清理。
这显示了上面的更新过程,该过程使用跨账户授予访问权限的能力,以避免创建 AMI 的多个副本,每个副本用于您想要使用它的每个账户/环境。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.