我正试图更新IAM策略,将其限制在一个区域内,但我遇到了一个语法错误,似乎无法解决。
以下是策略的JSON:
{
"Version":"2012-10-17",
"Statement":[
{
"Action":[
"ec2:*"
],
"Resource":[
"*"
],
"Effect":"Allow",
"Condition":{
"condition":{
"StringEquals":{
"ec2:Region":"us-east-1"
}
}
}
}
]
}
这是造成问题的原因,但我似乎不太清楚自己哪里出了问题。我尝试过使用AWS IAM策略生成器来生成它,但当我尝试通过它创建它时,它仍然会给我一个语法错误,所以我猜这是一个语法问题。
我所要做的只是将策略限制为仅在us-east-1中执行EC2操作。
我用这个命令上传
aws iam put-group-policy --group-name eastern-contractors --policy-document file://ec2.json --policy-name ec2
我得到以下响应
调用时发生客户端错误(MalformedPolicyDocument)PutGroupPolicy操作:此策略中存在无效条件。
我在这个网站上尝试过使用类似的答案,比如AWS IAM EC2权限-控制特定区域特定实例的访问,但似乎不起作用。
这是的工作策略
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1410456206000",
"Effect": "Allow",
"Action": [
"ec2:*"
],
"Condition": {
"StringEquals": {
"ec2:Region": "us-east-1"
}
},
"Resource": [
"*"
]
}
]
}
嵌套的"条件"就是问题所在。