【问题标题】:How to create AWS IAM role attaching managed policy only using Boto3如何仅使用 Boto3 创建附加托管策略的 AWS IAM 角色
【发布时间】:2017-10-22 14:57:01
【问题描述】:

我正在尝试使用 Boto3 创建一个仅附加托管策略的新实例角色。

我有以下几点:

策略名称: my_instance_policy

政策 ARN: arn:aws:iam::123456789012:policy/my_test_policy

我想创建名为“my_instance_role”的角色,仅附加上述策略。

Boto3 客户端具有如下create_role() 函数:

import boto3
client = boto3.client('iam')
response = client.create_role(
    Path='string',
    RoleName='string',
    AssumeRolePolicyDocument='string',
    Description='string'
)

在这里,我没有看到使用策略 ARN 或名称的选项。我的理解是AssumeRolePolicyDocument变量需要将JSON格式的策略文档转换成文本。

这可能是我正在寻找的方式吗?

【问题讨论】:

    标签: amazon-web-services boto3 amazon-iam roles policy


    【解决方案1】:

    您必须创建角色(如上所述),然后将托管策略单独附加到角色,如下所示:

    response = client.attach_role_policy(
        RoleName='MyRole', PolicyArn='<arn of managed policy>')
    

    【讨论】:

    • 感谢您的回复。我的理解是AssumeRolePolicyDocument='string' 将添加一个我不想要的内联策略。我只想要具有一个或多个托管策略的角色。我们可以在 IAM 控制台上以这种方式创建。是否可以使用 Boto3 创建这种方式?
    • AssumeRolePolicyDocument 用于为新创建的角色(即谁可以担任该角色)建立信任关系。它与角色授予的权限无关。要将托管策略附加到角色,请使用attach_role_policy,如上所示。
    • 感谢您的回复。我实际上想通了,它现在正在工作。在这种情况下,AssumeRolePolicyDocument{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }。非常感谢。
    【解决方案2】:

    在使用 Boto3 创建 IAM 角色时,关于如何提供 AssumeRolePolicyDocument,我有一个类似的问题。

    我使用了以下代码...

    assume_role_policy_document = json.dumps({
        "Version": "2012-10-17",
        "Statement": [
            {
            "Effect": "Allow",
            "Principal": {
                "Service": "greengrass.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
            }
        ]
    })
    
    create_role_response = self._iam.create_role(
        RoleName = "my-role-name,
        AssumeRolePolicyDocument = assume_role_policy_document
    )
    

    请注意,AssumeRolePolicyDocument 是关于定义信任关系,而不是您正在创建的角色的实际权限。

    【讨论】:

      猜你喜欢
      • 2017-01-31
      • 2020-09-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-02
      • 2017-12-24
      • 2022-01-19
      • 2020-04-25
      • 2022-01-01
      相关资源
      最近更新 更多