使用条件ec2的IAM策略:ResourceTag无法正常工作

时间:2016-12-17 15:45:01

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

我有n个EC2实例,我希望将ec2操作限制为具有相同键/值标记的实例(I.E. platform = dev)。

我正在考虑使用附加到其默认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

我在策略模拟器中检查它并按预期工作(传入开发并允许,否则被拒绝)。

然后在其中一个带有标签密钥/对的platform = dev的服务器上,我运行aws ec2 describe-instances我得到了回复:

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

但是如果我删除条件就可以了。我不明白我做错了什么。感谢任何帮助!

2 个答案:

答案 0 :(得分:2)

问题在于并非每个API Action&资源将接受条件中的ec2:ResourceTag /标记。

我认为您可能正在授予过于宽泛的权限(操作:ec2:*),因此请确定您的实例需要执行哪些操作,然后决定如何限制它们。

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

答案 1 :(得分:1)

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