我尝试使用 AWS EC2。有一个命令
$ aws ec2 describe-instances
答案是:
调用 DescribeInstances 操作时发生客户端错误(UnauthorizedOperation):您无权执行此操作。
但确切的最低限度政策是什么
https://console.aws.amazon.com/iam/home?#policies
应该允许用户执行这个(或任何其他特定)命令吗?
答案1
但确切的最低限度政策是什么 https://console.aws.amazon.com/iam/home?#policies 应该允许用户执行这个(或任何其他特定)命令吗?
除了“AdministratorAccess”策略之外,没有像您要求的那样的单一“最小”策略,该策略赋予您执行所有命令的能力。但拥有这么大的权力是危险的,不应无缘无故地使用。
每项策略都是针对您可能想要执行的某些命令组合而设计的。有些策略对只读函数(如 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 命令的名称。
例如,ec2:DescribeInstances
对于aws ec2 describe-instances
。
不幸的是,对于 Amazon S3,命令有点不同,而且并不完全是一对一的。
如果您想添加aws ec2 describe-snapshots
允许的命令,那么只需将其添加ec2:DescribeSnapshots
到上述策略中的“操作”列表中。