我正在尝试创建一个可以创建EC2实例的云信息模板,安装2GB的卷并定期执行快照,同时还删除那些说一周或更久的快照。
虽然我可以获取并集成访问密钥和密钥,但似乎需要签名证书才能删除快照。我找不到使用cloudformation创建新证书的方法,所以看起来我应该手动创建一个新用户和证书并将其放到模板参数中?在这种情况下,用户是否能够删除所有快照(包括那些不是来自该实例的快照)是否正确?
有没有办法将快照删除限制为仅包含匹配描述的快照?或者处理删除旧快照的正确方法是什么?
答案 0 :(得分:5)
我的建议是使用CloudFormation创建IAM角色(而非IAM用户),并将此角色分配给实例(再次使用CloudFormation)。应允许该角色根据需要删除快照。
使用实例上的IAM角色删除快照的最简单方法之一是使用boto Python AWS库。如果您在具有指定的IAM角色的实例上运行它,Boto会自动查找并使用正确的凭据。
以下是我刚刚用于删除snap-51930522
中的快照us-east-1
的简单boto脚本:
#!/usr/bin/python
import boto.ec2
boto.ec2.connect_to_region('us-east-1').delete_snapshot('snap-51930522')
或者,您可能让外部服务器运行快照清理,而不是在实例本身上运行它。除了简化凭证管理和cron作业分发之外,它还允许您在停止或终止实例后进行清理。