【问题标题】:How do I create a role with AWS managed policy using aws-cli?如何使用 aws-cli 创建具有 AWS 托管策略的角色?
【发布时间】:2020-03-02 15:27:01
【问题描述】:

我正在尝试使用 AWS 托管策略创建 IAM 角色,但它要求我提供策略文档。

aws iam create-role --role-name test-role 
usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
To see help text, you can run:

  aws help
  aws <command> help
  aws <command> <subcommand> help
aws: error: argument --assume-role-policy-document is required

我正在尝试附加一个 AWS 托管策略,例如 AWSLambdaFullAccess

【问题讨论】:

    标签: amazon-web-services amazon-iam


    【解决方案1】:

    信任策略定义了哪些委托人实体(账户、用户、角色和联合身份用户)可以担任该角色。每个 IAM 角色都需要一个信任策略。

    通过 CLI 创建角色时,您必须指定信任策略。之后可以使用attach-role-policyput-role-policy 命令将基于身份的策略(托管/内联)附加到角色。

    以下信任策略允许 Lambda 服务代入此角色。您必须使用 assume-role-policy-document 选项将此文件作为命令的输入提供。

    trust-policy.json

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "",
          "Effect": "Allow",
          "Principal": {
            "Service": "lambda.amazonaws.com"
          },
          "Action": "sts:AssumeRole"
        }
      ]
    }
    
    aws iam create-role --role-name Test-Role --assume-role-policy-document file://trust-policy.json
    
    aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/AWSLambdaFullAccess --role-name Test-Role
    

    【讨论】:

    • 嗯,这很奇怪!因为 aws 已经在控制台管理中为我们提供了这个选项!您可以在没有任何策略的情况下创建角色,然后可以将策略附加到该角色。为什么我们不能对 cli 做同样的事情?!
    • 这是不对的。您还必须在控制台中指定信任策略,在控制台中创建角色的第一步是选择受信任实体的类型,它映射到上例中的信任策略。
    猜你喜欢
    • 2021-03-02
    • 2017-10-22
    • 1970-01-01
    • 2020-09-17
    • 2020-04-25
    • 2016-11-26
    • 1970-01-01
    • 2018-11-20
    • 1970-01-01
    相关资源
    最近更新 更多