amazon-web-services - 如何允许实例删除附加卷的旧快照?

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

我正在尝试创建一个 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/

相关文章:

amazon-web-services - 如何使用 CodeBuild 将生成的文件夹内容上传到 S3?

amazon-web-services - AWS API Gateway 和 Lambda 的公共(public) IP 地址(无 VPC)

django - 在 EC2 上以几乎零停机时间部署(单节点)Django Web 应用程序

amazon-web-services - AWS 云形成 : Nested Stacks - Unresolved dependencies

java - 使用 vfs s3 插件使用客户提供的加密 key (SSE-C) 进行服务器端加密

amazon-ec2 - 橡胶 ec2 部署重复的默认安全组

amazon-web-services - 从 ECS 容器实例运行 docker

aws-cloudformation - 为什么我的内容安全策略无法部署到 CloudFront?

amazon-web-services - 每个环境的不同 Cloud Formation 参数值

amazon-web-services - boto3 是否具有与 awscli 相当的凭证缓存?