2014-09-11 148 views
1

我正在尝试更新IAM策略以将其限制为单个区域,但我有一个语法错误,似乎无法解决。AWS EC2 IAM条件

下面是该策略的JSON:

{ 
    "Version":"2012-10-17", 
    "Statement":[ 
     { 
     "Action":[ 
      "ec2:*" 
     ], 
     "Resource":[ 
      "*" 
     ], 
     "Effect":"Allow", 
     "Condition":{ 
      "condition":{ 
       "StringEquals":{ 
        "ec2:Region":"us-east-1" 
       } 
      } 
     } 
     } 
    ] 
} 

这是造成这一问题的条件,但我不能完全似乎揣摩出我已经错了。我尝试过使用AWS IAM策略生成器来生成它,但当我尝试通过它创建它时,它仍然给我一个语法错误,所以我猜这是一个语法问题。

我所要做的只是将政策限制在我们只有东欧1的EC2运营中。

我使用这个命令将其上传

aws iam put-group-policy --group-name eastern-contractors --policy-document file://ec2.json --policy-name ec2 

我也得到如下回应

客户端错误(MalformedPolicyDocument)调用 PutGroupPolicy操作时发生:有是无效的条件在这个政策。

我试过在这个网站上使用类似的答案,如AWS IAM Permissions for EC2 – Controlling Access on Specific Instances with particular region,但它似乎并没有工作。

回答

4

这里是工作的政策

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
    { 
     "Sid": "Stmt1410456206000", 
     "Effect": "Allow", 
     "Action": [ 
     "ec2:*" 
     ], 
     "Condition": { 
     "StringEquals": { 
      "ec2:Region": "us-east-1" 
     } 
     }, 
     "Resource": [ 
     "*" 
     ] 
    } 
    ] 
} 

嵌套的 “条件” 是问题。