如何仅使用 Boto3 创建附加托管策略的 AWS IAM 角色



我正在尝试使用 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 格式的策略文档转换为文本。

有可能是

我想要的方式吗?

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

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

在使用 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是关于定义信任关系,而不是您正在创建的角色的实际权限。

相关内容

  • 没有找到相关文章

最新更新