AWS 创建角色 - 有禁止字段
AWS create role - Has prohibited field
我正在尝试 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
政策文件应该是这样的:
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Principal": {"Service": "ec2.amazonaws.com"},
"Action": "sts:AssumeRole"
}
}
这称为信任关系策略文档。这与政策文件不同。您粘贴的任何内容都是针对附加到使用 attach role policy
完成的角色的策略
连上面的角色文档都在你粘贴的link中给出了。
这应该工作。我从事过角色和政策方面的工作,我可以肯定地说。
即使在 AWS 控制台中,对于角色,您也可以看到有一个单独的信任关系选项卡。此外,您目前在权限选项卡中附加了政策。
AWS 消息,
调用 CreateRole 操作时发生错误 (MalformedPolicyDocument):此策略包含无效 Json
如果您不使用完整路径名,则会出现。例如,使用
--assume-role-policy-document myfile.json
甚至 nonexistent.file.json,都会导致问题。
解决方法是使用
--assume-role-policy-document file://myfile.json
这是我的 Kinesis Firehose Delivery Stream 的内容
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Principal": {"Service": "firehose.amazonaws.com"},
"Action": "sts:AssumeRole"
}
}
我正在尝试 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
政策文件应该是这样的:
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Principal": {"Service": "ec2.amazonaws.com"},
"Action": "sts:AssumeRole"
}
}
这称为信任关系策略文档。这与政策文件不同。您粘贴的任何内容都是针对附加到使用 attach role policy
完成的角色的策略连上面的角色文档都在你粘贴的link中给出了。 这应该工作。我从事过角色和政策方面的工作,我可以肯定地说。
即使在 AWS 控制台中,对于角色,您也可以看到有一个单独的信任关系选项卡。此外,您目前在权限选项卡中附加了政策。
AWS 消息, 调用 CreateRole 操作时发生错误 (MalformedPolicyDocument):此策略包含无效 Json 如果您不使用完整路径名,则会出现。例如,使用
--assume-role-policy-document myfile.json
甚至 nonexistent.file.json,都会导致问题。
解决方法是使用
--assume-role-policy-document file://myfile.json
这是我的 Kinesis Firehose Delivery Stream 的内容
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Principal": {"Service": "firehose.amazonaws.com"},
"Action": "sts:AssumeRole"
}
}