amazon-web-services - 在 CloudFormation 脚本中使用私有(private) AMI

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

我有一个使用我自己的帐户创建的私有(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_idaws_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/

相关文章:

amazon-web-services - 获取对在 CloudFormation 中触发 AWS::Serverless::Function 的 Api 的引用

java - 如何发布 sampleCount 为 0 的 cloudwatch 值?

amazon-web-services - 用于在 S3 事件上触发 Lambda 的 Cloudformation 模板

ruby - SignatureDoesNotMatch - 查询字符串参数(AWS 签名版本 4)

java - 为什么我会收到媒体类型不受支持的 415 错误?

amazon-web-services - 如何从另一个私有(private)子网的ec2实例访问私有(private)子网中的RDS实例?

amazon-web-services - 我当前的 AWS 架构能否扩展到每天 20,000 名访问者?我该如何改进它?

ubuntu - 在 ubuntu ec2 的 couchdb 中设置自签名 ssl 证书时出现问题

amazon-web-services - 如何使用 AWS codedeploy 将多个应用程序部署到一个实例

aws-cloudformation - 将 CloudFormation 模板 (yaml) 转换为 cdk python 代码