我有一个使用我自己的帐户创建的私有(private) AMI。我希望其他人使用这个 AMI(使用我编写的 CLoudFormation 脚本)来建立他们自己的 EC2 实例。但我不能公开 AMI,它应该只提供给指定的 100 人。
这可以通过授予对 AWS 帐号的访问权限来手动完成,如此链接中提到的,但对于 100 人来说这太繁琐了。
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sharingamis-explicit.html
我的问题是,有没有办法在 CloudFormation 脚本上提供我的 AWS 账户的 aws_access_key_id
和 aws_secret_access_key
以使其能够使用私有(private) AMI?
最佳答案
如果您的问题是询问您是否可以将访问 key 提供给这 100 个人,并且他们以某种方式使用这些 key 来访问您的 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}"
关于amazon-web-services - 在 CloudFormation 脚本中使用私有(private) AMI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26255827/