在AWS中查找用户需要的最小策略

我尝试使用AWS EC2。 有一个命令

$ aws ec2 describe-instances 

答案是:

调用DescribeInstances操作时发生客户端错误(UnauthorizedOperation):您无权执行此操作。

但什么是确切的最低限度的政策
https://console.aws.amazon.com/iam/home?#policies
对于这个(或任何其他特定的)命令应该允许用户?

但是,对于这个(或任何其他特定的)命令,用户应该允许哪些确切的最小策略https://console.aws.amazon.com/iam/home?#policies

除了“pipe理员访问”策略之外,没有一个“最小”策略可以让您执行所有命令。 但拥有这么多的权力是危险的,不应该没有理由地使用。

每个策略都是为您可能要执行的某些命令组合而devise的。 有些是只读function(如describe *函数)的完全访问权限,没有权力“改变”任何东西。 其他人则完全控制某些AWS服务(例如允许EC2,但不允许RDS)。

如果你真的想要“最小”,那么内置的策略是不是你想要的。 相反,您希望使用IAM策略生成器来生成特定于您需要执行的自定义策略。

在你的情况下,要执行一个aws ec2 describe-instances ,你只需要ec2:DescribeInstances在一个策略,如

 { "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1432001253000", "Effect": "Allow", "Action": [ "ec2:DescribeInstances" ], "Resource": [ "*" ] } ] } 

命令与执行它们所需的策略通常是一一对应的。 对于大多数AWS服务(如EC2和RDS),必要的策略模仿CLI / API命令的名称。

例如,用于aws ec2 describe-instances ec2:DescribeInstances

不幸的是,对于Amazon S3,这些命令有点不同,并不完全是一对一的。

如果您想要将aws ec2 describe-snapshots添加到允许的命令中,则只需将ec2:DescribeSnapshots添加到上述策略中的“Action”列表中即可。