2014-09-11 158 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": [ 
     "*" 
     ] 
    } 
    ] 
} 

嵌套的 「條件」 是問題。