我正在嘗試使用 assume role thing 從不同的 AWS 賬戶 B 訪問 AWS 賬戶 A 的 IAM 資源。我在兩個 AWS 賬戶(受托人賬戶和受信任賬戶)中都承擔了角色權限策略設置。假設角色名稱是 dummyRole 存在于 AWS A 中,它具有創建用戶權限和創建訪問密鑰權限,我被允許從 AWS B 承擔 dummyRole。我正在嘗試通過假設來自 AWS 賬戶 A 的 dummyRole 在 AWS 賬戶 A 中創建一個 IAM 用戶。我被困在一個地方,一旦我們使用臨時憑證進入 AWS A,需要做什么才能獲得 IAM 的可見性功能。這是我嘗試但觀察到的代碼片段AttributeError: 'IAM' object has no attribute 'User'import boto3import os, sysrole_arn = 'arn:aws:iam::A:role/dummyRole'client = boto3.client('sts')response = client.assume_role(RoleArn=role_arn, RoleSessionName='createCrossAccountUser')local_creds = response.get('Credentials')print (local_creds)access_key = local_creds.get('AccessKeyId', '')secret_key = local_creds.get('SecretAccessKey', '')session_token = local_creds.get('SessionToken', '')iam_resource = boto3.client('iam', aws_access_key_id=access_key, aws_secret_access_key=secret_key, aws_session_token=session_token)print (iam_resource)iam_resource.User('dummyUserForSubaccount')
1 回答

忽然笑
TA貢獻1806條經驗 獲得超5個贊
只需使用boto3.resource更新以下行
iam_resource = boto3.resource('iam', aws_access_key_id=access_key, aws_secret_access_key=secret_key,
aws_session_token=session_token)
每當你遇到這樣的錯誤
AttributeError:“<AWS-Service> ”對象沒有屬性“ <attribute-name> ”
始終檢查該服務的 boto3 文檔。根據你的情況
根據文檔,User() 方法可用于資源而不是客戶端。所有 AWS 服務都必須遵循相同的邏輯。
您也可以像這樣創建用戶。只需用這個替換你代碼的最后一行。
iam_resource.create_user(UserName='dummyUserForSubaccount')
添加回答
舉報
0/150
提交
取消