Bog*_*aru 5 amazon-ec2 amazon-web-services amazon-iam
我想限制特定用户的访问权限,只能查看几个 EC2 实例。我在 IAM 角色中创建了一个新用户,并为其附加了一个新策略。该政策的内容附在下面。我试图查看文档并像这样自己做:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ec2:*",
"Resource": [
"arn:aws:ec2:eu-west-1:ACCOUNT_ID:instance/i-INSTANCE_ID1",
"arn:aws:ec2:eu-west-1:ACCOUNT_ID:instance/i-INSTANCE_ID2"
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
我放置了我的region, ACCOUNT_ID(所有者 ID,而不是创建的新用户的 ID) and instance-id,但是当我与该用户连接时,我会列出我得到的所有实例An error occurred fetching instance data: You are not authorized to perform this operation.。
将代码放入 JSON 编辑器后,在Policy Review步骤中,我收到以下消息:
此策略定义了一些不提供权限的操作、资源或条件。要授予访问权限,策略必须具有具有适用资源或条件的操作。有关详细信息,请选择显示剩余了解更多
我假设您在控制台中以该用户身份进行连接(但与 CLI 相同),我认为正在发生的情况如下:
要列出所有实例,控制台很可能会调用DescribeInstances API。根据可在 IAM 策略中使用的操作/资源/标签列表,此 API 不支持 IAM 中的资源过滤器。
这意味着您的用户无权列出实例,并且它们不会显示在控制台中。您可以通过使用 CLI 请求特定实例 ID 的详细信息来验证这个理论,如果我的假设正确,它将被授权。
由于DescribeInstances不能受到资源或标签的限制,我认为不可能过滤用户的实例列表。
要使控制台正常工作,您需要在 IAM 策略中添加以下语句
"Statement": [
{ your existing statement },
{
"Effect": "Allow",
"Action": "ec2:DescribeInstances",
"Resource": "*"
}
]
Run Code Online (Sandbox Code Playgroud)
请报告我是否正确:-)您在问题中提到的示例准确地显示了:在其他操作上和资源特定的 InstanceIdResources = *上DescribeInstances。
| 归档时间: |
|
| 查看次数: |
1579 次 |
| 最近记录: |