在CloudFormation脚本中使用私有AMI

时间:2014-10-08 11:29:25

标签: amazon-web-services amazon-ec2 amazon-cloudformation

我有一个使用我自己的帐户创建的私人AMI。这个AMI我希望其他人使用(使用我编写的CLoudFormation脚本)来建立他们自己的EC2实例。但是我不能公开AMI,它应该只供指定的100人使用。

这可以通过在此链接中提供对AWS账号的访问来手动完成,但对于100人而言,它过于繁琐。

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sharingamis-explicit.html

我的问题是,有没有办法在CloudFormation脚本上提供我的AWS账户“aws_access_key_idaws_secret_access_key”,以便能够使用私有AMI?

2 个答案:

答案 0 :(得分:1)

您说过一次添加一个帐户“太过于繁琐”但是如何使用CLI或您喜欢的SDK编写一个简单的脚本来添加帐户?对我而言,这似乎是最简单的方法。

答案 1 :(得分:1)

如果您的问题是询问是否可以将您的访问密钥提供给100个人并且他们以某种方式使用这些密钥来访问您的AMI,那么这是不可能的。当其他人在其帐户中运行CloudFormation模板时,它将在与其帐户关联的用户的上下文中运行。如果他们使用您的凭据执行此操作,则会尝试在您的帐户中创建CloudFormation堆栈。

似乎你最好的选择是Max建议的,写一个简单的脚本与你拥有的100个账户分享AMI。这是一个使用AWS CLI的简单示例,假设您有一个文件,其中每个帐号都在一个单独的行上。

#!/bin/bash
ami="ami-11235813"
file="accounts.txt"
while read -r line
do
    account="${line}"
    aws ec2 modify-image-attribute --image-id ${ami} --launch-permission "{\"Add\":[{\"UserId\":\"${ami}\"}]}"
done < "${file}"