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

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

我向我的 AWS 账户(通过 IAM)添加了一个用户“Snapshotter”,并授予其以下权限ebs:CreateSnapshot

在我的一个实例上,我想要一个定期创建快照的脚本,但不在该实例上存储任何允许更宽松地访问帐户或其他 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.

答案1

一种选择是使用 REST 接口而不是 SOAP 接口来调用 ec2-create-snapshot API。这样您就可以使用“访问密钥 ID”和“秘密访问密钥”而不是 x509 证书/pk。

我编写了一个名为 ec2-consistent-snapshot 的命令行程序,它使用 ec2-create-snapshot REST API。

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

如果您不使用任何触发创建快照的“一致”方面的命令行选项,那么它基本上与 ec2-create-snapshot 命令行相同(除了运行速度快十倍)。

这是我写的一篇文章,其中包含有关使用 IAM 和 ec2-consistent-snapshot 来执行您要执行的操作的分步说明:

使用 AWS Identity and Access Management (IAM) 提高 EC2 的安全性
http://alestic.com/2010/09/aws-iam

我已经设置了一个 Ubuntu PPA,以便轻松安装 ec2-consistent-snapshot 及其依赖项。其他发行版将需要更多工作,但它只是一个用 Perl 编写的脚本,因此具有高度的可移植性。

我还正在将 ec2-consistent-snapshot 的主源从 bazaar 移动到 github,以方便人们审查和分叉。

相关内容