我正在尝试更新角色的信任策略以包含用户。 我已经使用 AWS 管理控制台成功实现了这一目标。
但是,当尝试使用 AWS CLI 执行相同操作时,我遇到了以下错误消息: (我尝试在命令行和 JSON 文件中复制 AWS 控制台中使用的相同 JSON。)
aws iam update-assume-role-policy --role-name my_role_name --policy-document '{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"AWS":["arn:aws:iam::xxxxxxxxxxxx:user/my_user_name"]},"Sid":""}'
An error occurred (MalformedPolicyDocument) when calling the UpdateAssumeRolePolicy operation: This policy contains invalid Json
aws iam update-assume-role-policy --role-name my_role_name --policy-document file://path/to/policy.json
An error occurred (MalformedPolicyDocument) when calling the UpdateAssumeRolePolicy operation: Syntax error at position (1,12)
这是使用 AWS CLI 添加它的正确方法吗?
我的测试表明它需要完整的策略,包括
Version
。
这有效:
aws iam update-assume-role-policy --role-name my_role_name --policy-document '{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789012:user/foo"
},
"Action": "sts:AssumeRole"
}
]
}'
因此,它将“取代”现有政策,而不是对其进行补充。