[英]List resource for child account from master account using boto3?
我正在使用 python 和 boto3 來列出我的組織擁有的資源。 我列出了我的主帳戶中的資源沒有問題,但我還需要列出子帳戶中的資源。 我可以獲得兒童帳戶 ID,但僅此而已。
有什么幫助嗎?
您將需要訪問屬於子帳戶的一組憑據。
從訪問和管理組織中的成員賬戶 - AWS Organizations :
當您使用 AWS Organizations 控制台創建成員賬戶時,AWS Organizations 會自動在該賬戶中創建 IAM 角色。 此角色在成員賬戶中具有完全管理權限。 該角色還配置為授予對組織主賬戶的訪問權限。
要使用此角色訪問成員賬戶,您必須以主賬戶中有權代入該角色的用戶身份登錄。
因此,您可以在子賬戶中擔任 IAM 角色,然后提供一組臨時憑證,可與boto3
一起使用以boto3
賬戶進行 API 調用。
import boto3
role_info = {
'RoleArn': 'arn:aws:iam::<AWS_ACCOUNT_NUMBER>:role/<AWS_ROLE_NAME>',
'RoleSessionName': '<SOME_SESSION_NAME>'
}
client = boto3.client('sts')
credentials = client.assume_role(**role_info)
session = boto3.session.Session(
aws_access_key_id=credentials['Credentials']['AccessKeyId'],
aws_secret_access_key=credentials['Credentials']['SecretAccessKey'],
aws_session_token=credentials['Credentials']['SessionToken']
)
一種更簡單的方法是將該角色作為新.aws/config
文件放入您的.aws/config
文件中。 然后,您可以在進行函數調用時指定配置文件:
# In ~/.aws/credentials:
[master]
aws_access_key_id=foo
aws_secret_access_key=bar
# In ~/.aws/config
[profile child1]
role_arn=arn:aws:iam:...
source_profile=master
像這樣使用它:
session = boto3.session.Session(profile_name='dev')
s3 = session.client('s3')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.