2016-12-17 95 views
1

我有n个EC2实例,我希望将ec2操作限制为具有相同键/值标记(I.E. platform = dev)的实例。使用条件的IAM策略ec2:ResourceTag不工作

我看这样使用连接到它们的默认IAM用户在该组的IAM策略

政策:

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

我设置了按在线AWS文档: Example Policies for Working With the AWS CLI or an AWS SDK

我在策略模拟器中检查它,它按预期工作(通过dev并允许,否则拒绝)。

然后在与标签键/对平台=开发的服务器之一,我跑aws ec2 describe-instances我得到的回应:

An error occurred (UnauthorizedOperation) when calling the DescribeInstances operation: You are not authorized to perform this operation. 

,但如果我删除的条件它的工作原理。我不明白我做错了什么。任何帮助将感激地收到!

回答

2

问题是,并非每个API Action都会接受该条件中的ec2:ResourceTag/tag。

我认为你可能会授予过宽的权限(Action:ec2:*),因此找出你的实例需要做什么动作,然后决定如何限制它们。

操作,资源和条件键的列表可以在Supported Resource-Level Permissions for Amazon EC2 API Actions找到。

+0

谢谢克里斯,我只用这个测试过。我有没有条件测试和工作的具体活动。通过与此相关的工作,我认为我正在减少可能出错的因素,但根据其他答案,这不是我可以信赖的事实(条件可能只适用于更具体的行动/资源定义) 。 – the4thv

1

我之前遇到过这个问题,它与组合通配符和条件有关。对于我们来说,解决这个问题的方法是更加明确地采取行动(例如["ec2:DescribeInstances"])以及资源(arn:aws:ec2:region:accountid:instance/*)。

+0

谢谢 - 在你的答案之间,我明白了。 – the4thv