我向AWS账户(通过IAM)添加了一个用户“Snapshotter”,并且只有ebs:CreateSnapshot权限。
在我的一个实例中,我希望有一个定期创build快照的脚本,但不要在该实例上存储任何凭据或证书,以允许更多的宽容访问帐户或其他EC2命令。
我如何做到这一点?
在IAM中,我可以得到Snapshotter用户的“秘密访问密钥”和“访问密钥ID”,但是它看起来像私人密钥,X509证书只能用于整个账户,因此需要完全访问权限。
$ ec2-create-snapshot -h SYNOPSIS ec2addsnap ([ec2-create-snapshot]) ec2addsnap [GENERAL OPTIONS] -d DESCRIPTION VOLUME ... GENERAL OPTIONS -K, --private-key KEY Specify KEY as the private key to use. Defaults to the value of the EC2_PRIVATE_KEY environment variable (if set). Overrides the default. -C, --cert CERT Specify CERT as the X509 certificate to use. Defaults to the value of the EC2_CERT environment variable (if set). Overrides the default.
一种select是使用REST接口而不是SOAP接口调用ec2-create-snapshot API调用。 这使您可以使用“访问密钥ID”和“秘密访问密钥”而不是x509 cert / pk。
我写了一个名为ec2-consistent-snapshot的命令行程序,它使用了ec2-create-snapshot REST API。
如果您不使用触发创build快照的“一致性”方面的任何命令行选项,则它基本上与ec2-create-snapshot命令行(除了运行速度快十倍)相同。
下面是我写的一篇文章,其中详细介绍了如何使用IAM和ec2-consistent-snapshot来完成你想要做的事情:
使用AWS身份和访问pipe理(IAM)提高EC2的安全性
http://alestic.com/2010/09/aws-iam
我已经设置了一个Ubuntu PPA,以便安装ec2-consistent-snapshot及其依赖项。 其他发行版将需要更多的工作,但它只是一个用Perl编写的脚本,所以它是高度可移植的。
我也正在将ec2-consistent-snapshot的主要源码从bazaar移到github,以方便人们查看和分叉。