我正在尝试创建一个AWS角色,从JSON格式的字符串而不是JSON文件中提供假设角色信任策略。更具体地说,在aws iam create-role
命令中,当我使用选项--assume-role-policy-document file://iam_role_trust_policy.json"
时,将创建IAM角色。但是,当我尝试选项--assume-role-policy-document $IAM_ROLE_TRUST_POLICY
时,它会失败,出现以下错误:
Unknown options: "2012-10-17",, "Statement":, [, {, "Effect":, "Allow",, "Principal":, {, "AWS":, "arn:aws:iam::111111111111:user/svc-tooling-user", },, "Action":, "sts:AssumeRole", }, ], }, "Version":
变量$IAM_ROLE_TRUST_POLICY
包含与iam_role_trust_policy.json
文件相同的JSON字符串。
它可以以下列方式复制:
$ IAM_ROLE_TRUST_POLICY=$(cat <<-END
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::111111111111:user/svc-tooling-user"
},
"Action": "sts:AssumeRole"
}
]
}
END
)
$ aws iam create-role \
--role-name myTestRole\
--assume-role-policy-document $IAM_ROLE_TRUST_POLICY
结果:
Unknown options: "2012-10-17",, "Statement":, [, {, "Effect":, "Allow",, "Principal":, {, "AWS":, "arn:aws:iam::111111111111:user/svc-tooling-user", },, "Action":, "sts:AssumeRole", }, ], }, "Version":
下面,使用file://
选项工作得很好:
$ aws iam create-role \
--role-name myTestRole\
--assume-role-policy-document file://iam_role_trust_policy.json
我比较了变量IAM_ROLE_TRUST_POLICY
和文件iam_role_trust_policy.json
的内容。他们是一样的。
$ echo $IAM_ROLE_TRUST_POLICY
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::111111111111:user/svc-tooling-user"
},
"Action": "sts:AssumeRole"
}
]
}
$ cat iam_trust_policy.json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::111111111111:user/svc-tooling-user"
},
"Action": "sts:AssumeRole"
}
]
}
这里有什么问题,我该怎么解决呢?
注意:在代码和输出中,我用111111111111
替换了实际的AWS帐户。
发布于 2022-07-24 22:15:47
您必须这样做(添加引号):
aws iam create-role \
--role-name myTestRole\
--assume-role-policy-document "${IAM_ROLE_TRUST_POLICY}"
https://stackoverflow.com/questions/73102190
复制相似问题