如何设置对EC2权限有限的命令行访问?

我向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。

http://alestic.com/2009/09/ec2-consistent-snapshot

如果您不使用触发创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,以方便人们查看和分叉。