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