[英]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.