AWS 创建角色-禁止字段

我正在尝试使用 AWS 文档建议的一个简单示例来使用策略 json 文件创建角色 Http://docs.aws.amazon.com/iam/latest/userguide/id_roles_create_for-service.html 我知道错了

A client error (MalformedPolicyDocument) occurred when calling the CreateRole operation: Has prohibited field Resource

这是命令,

>> aws iam create-role --role-name test-service-role --assume-role-policy-document file:///home/ec2-user/policy.json
A client error (MalformedPolicyDocument) occurred when calling the CreateRole operation: Has prohibited field Resource

该策略与示例中提到的策略完全相同

>> cat policy.json
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::example_bucket"
}
}

我的版本似乎是最新的

>> aws --version
aws-cli/1.9.9 Python/2.7.10 Linux/4.1.10-17.31.amzn1.x86_64 botocore/1.3.9
79370 次浏览

政策文件应该是这样的:

{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Principal": {"Service": "ec2.amazonaws.com"},
"Action": "sts:AssumeRole"
}
}

这称为信任关系策略文档。这与策略文档不同。无论您粘贴了什么,都是针对使用 附加角色策略附加角色策略完成的角色所附带的策略

甚至上面的角色文档也是在您粘贴的链接中给出的。 这应该可行。我已经在角色和政策方面做过工作,我可以肯定地说。

甚至在 AWS 控制台中,对于角色,您可以看到有一个单独的用于信任关系的选项卡。此外,您当前还在权限选项卡中附加了策略。

AWS 信息, 调用 CreateRole 操作时发生错误(MalformedPolicyDocument) : 此策略包含无效的 Json 如果不使用完整的路径名,将显示

--assume-role-policy-document myfile.json

或者甚至不存在.file.json,都会导致问题。

解决办法是使用

--assume-role-policy-document file://myfile.json

这里是我的 Kinesis 消防管传送流的内容

{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Principal": {"Service": "firehose.amazonaws.com"},
"Action": "sts:AssumeRole"
}
}