我们希望通过提供“黄金映像”(加入域,拥有我们的安全软件,infra软件等)来限制用户可以访问的AMI。因此,我们通过在AWS中使用现有的AMI并按照惯例进行构建来实现这一目标。
问题在于来自AWS的基本AMI经常发生变化(即微软补丁,类似的东西),这意味着我们的黄金映像已经过时。
有没有办法让用户只能访问拥有我们所有软件的图像(即“黄金图像”),但是它会动态地构建它,将我们的安全/ infra软件添加到基本图像,以及只允许访问环境的最终用户吗?
答案 0 :(得分:0)
我建议自动化,当你想要"刷新"图像:
使用最新的基本Windows映像创建新的EC2实例 http://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html
安装你的东西: 让puppet / chef / ansible /.../ powershell自动完成(如果可能的话,从用户数据中),这将是很好的。
从现有实例创建自定义AMI: http://docs.aws.amazon.com/cli/latest/reference/ec2/create-image.html
更新IAM策略以将实例创建限制为新的AMi快照:
json
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1410544721000",
"Effect": "Allow",
"Action": [
"ec2:RunInstances"
],
"Condition": {
"ArnEquals": {
"ec2:ParentSnapshot": "arn:aws:ec2:region::snapshot/snapshot-id"
}
},
"Resource": [
"*"
]
}
]
}
您可以使用CLI将该策略设置为组:
http://docs.aws.amazon.com/cli/latest/reference/iam/put-group-policy.html
所有这些都可以使用CloudFormation自动化...我建议您至少手动执行一次并逐步自动执行。