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

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

我尝试使用 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到上述策略中的“操作”列表中。

相关内容