簡體   English   中英

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

[英]How to create AWS IAM role attaching managed policy only using Boto3

我正在嘗試使用 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是關於定義信任關系,而不是您正在創建的角色的實際權限。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM