【发布时间】:2019-05-06 23:02:05
【问题描述】:
我正在使用 boto3 编写一个 python 程序,它可以抓取主账户的所有查询并将它们推送到主账户的所有子账户。
从主实例获取查询 ID 已完成,但我无法将它们推送到子帐户。使用我的身份验证信息,AWS 默认连接到主账户,但我不知道如何让它连接到子账户。通常,AWS 服务通过切换角色来做到这一点,但 Athena 并没有为此提供内置方法。我可以手动创建不同的配置文件,但我不确定如何在代码执行过程中手动切换它们
这里是亚马逊的 STS 切换代码示例,它确实支持假设不同的角色https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-api.html
这是我的程序到目前为止的样子
#!/usr/bin/env python3
import boto3
dev = boto3.session.Session(profile_name='dev')
#Function for executing athena queries
client = dev.client('athena')
s3_input = 's3://dev/test/'
s3_output = 's3://dev/testOutput'
database = 'ex_athena_db'
table = 'test_data'
response = client.list_named_queries(
MaxResults=50,
WorkGroup='primary'
)
print response
所以我有“开发”配置文件,但我不确定如何区分此配置文件以向 AWS 表明我想访问其中一个子账户。它只是名称,还是我需要其他参数?我认为我不能(或不需要)为此生成单独的身份验证令牌
【问题讨论】:
标签: python amazon-web-services api boto3 amazon-iam