首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用JSON格式的信任策略字符串从变量创建AWS IAM角色

如何使用JSON格式的信任策略字符串从变量创建AWS IAM角色
EN

Stack Overflow用户
提问于 2022-07-24 21:30:23
回答 1查看 191关注 0票数 1

我正在尝试创建一个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字符串。

它可以以下列方式复制:

代码语言:javascript
运行
复制
$ 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

结果:

代码语言:javascript
运行
复制
Unknown options: "2012-10-17",, "Statement":, [, {, "Effect":, "Allow",, "Principal":, {, "AWS":, "arn:aws:iam::111111111111:user/svc-tooling-user", },, "Action":, "sts:AssumeRole", }, ], }, "Version":

下面,使用file://选项工作得很好:

代码语言:javascript
运行
复制
$ 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的内容。他们是一样的。

代码语言:javascript
运行
复制
$ 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帐户。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-24 22:15:47

您必须这样做(添加引号):

代码语言:javascript
运行
复制
aws iam create-role \
    --role-name  myTestRole\
    --assume-role-policy-document "${IAM_ROLE_TRUST_POLICY}"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73102190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档