繁体   English   中英

如何使用 Packer 将 AMI 复制到另一个帐户?

[英]How can I copy an AMI to another account using Packer?

我有两个 AWS 账户:

  1. 测试账户
  2. 产品帐户

我正在测试帐户中使用 Packer 创建一个 AMI,然后想将 AMI 复制到 Prod 帐户。

我如何使用 Packer 来做到这一点,并在工作完成后删除实际的 AMI?

我已经检查了以下问题,但他们没有解决我的查询:

  1. 如何将 AMI AWS 帐号权限从一个 AMI 映像批量复制到另一个?
  2. 如何将 AMI 从一个 aws 帐户复制到另一个 aws 帐户?

您可以通过在 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 的能力是新的一点)。

亚马逊发布了一些关于新功能的帖子。

https://aws.amazon.com/about-aws/whats-new/2019/05/share-encrypted-amis-across-accounts-to-launch-instances-in-a-single-step/

https://aws.amazon.com/blogs/security/how-to-share-encrypted-amis-across-accounts-to-launch-encrypted-ec2-instances/

本文概述了使用 Packer 在账户之间复制 AMI 的过程,而不仅仅是引用另一个账户中的源,您可能可以扩展它来执行清理。

https://www.helecloud.com/single-post/2019/03/21/How-to-overcome-AWS-Copy-AMI-boundaries-by-using-Hashicorp%E2%80%99s-Packer

这显示了上面的更新过程,该过程使用跨账户授予访问权限的能力,以避免创建 AMI 的多个副本,每个副本用于您想要使用它的每个账户/环境。

https://www.helecloud.com/single-post/2019/11/06/Overcome-AWS-Copy-AMI-boundaries-%E2%80%93-share-encrypted-AMIs-with-Packer-%E2% 80%93-跟进

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM