我想阻止来自production-ec2instance的iam-test-user

时间:2018-05-28 02:57:22

标签: json amazon-web-services amazon-ec2 amazon-iam

我想使用ec2标签阻止来自production-ec2instance的iam-test-user。

我认为IAM政策隐含拒绝。

所以我添加了标签"目的/测试" to test-ec2instance。

我将iam-policy-file应用于iam-test-user。

{
"Version": "2012-10-17",
"Statement": [
    {
        "Effect": "Allow",
        "Action": "ec2:*",
        "Resource": "*",
        "Condition": {"StringEquals": {"ec2:ResourceTag/Purpose": "Test"}}
    }
] }

但iam-test-user无法在aws-console上看到所有ec2instance都包含test-ec2instance。

json文件错了吗?

1 个答案:

答案 0 :(得分:0)

您的政策是:

  • 允许此实体在EC2上执行任何操作(ec2:* ...
  • 如果资源的标记为Purpose:Test

这在使用该标记启动和停止实例时应该有效。

然后你说:无法在aws-console上看到所有ec2instance包括test-ec2instance

返回实例列表的API调用是DescribeInstances。此命令与单个实例相关的 NOT ,因此无法使用标记。因此,该命令将功能。

虽然您可能认为您正在分配权限以便仅列出测试实例,但列出实例的命令不会查看实例本身上的标记。它只列出了实例。

以下是一个例子:

  • 我只允许你与任何名字为'Keisuke'
  • 的人交谈
  • 然后我请你算一下有多少人站在一个房间里

房间没有Keisuke的名字,因此您无法计算房间内的人数。

同样,不能限制从DescribeInstances命令返回的实例。您可以授予实体列出 all 的权限,也可以列出 none