我已经创建了开发组,我想在其中实施组内联策略,该策略将允许每个成员能够描述具有带有密钥“Product”的标签的 EC2 实例,该密钥的值为“TestProduct”。下面显示的示例未授予所需的访问权限,如果我保留 resosurce *,它就可以工作,因此这是我定义它的方式,而不是凭据或更高级别。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "XXXX",
"Effect": "Allow",
"Action": [
"ec2:DescribeInstances"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"ec2:ResourceTag/Product": "TestProduct"
}
}
}
]
}
我在 aws cli 中收到的错误是:调用 DescribeInstances 操作时发生错误(UnauthorizedOperation):您无权执行此操作。
答案1
该ec2:DescribeInstances
命令不支持资源级权限。这意味着您必须在 IAM 策略语句中指定*
为。如果您指定除为以外的任何内容,则授权将失败(正如您已经看到的那样)。Resource
*
Resource
这意味着您无法对某些 IAM 用户“隐藏”实例。IAM 用户要么可以看到所有实例,要么看不到任何实例。
支持资源级权限的命令列表请参阅以下文档:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-iam-actions-resources.html