用雅典娜和boto3切换IAMuser角色

2024-03-28 19:33:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用boto3编写一个python程序,它获取主帐户所做的所有查询,并将它们推送到主帐户的所有子帐户。在

从主实例获取查询id已经完成,但是我无法将它们推送到子帐户。根据我的身份验证信息,AWS默认情况下连接到主帐户,但是我不知道如何让它连接到子帐户。通常,AWS服务通过切换角色来实现这一点,但Athena没有内置的方法来实现这一点。我可以手动创建不同的配置文件,但我不确定如何在代码执行过程中手动切换它们

下面是Amazon在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

所以我有“dev”配置文件,但是我不确定如何区分这个概要文件,以向AWS表明我想访问其中一个子帐户。只是名字,还是我需要其他参数?我不认为我可以(或需要)为此生成单独的身份验证令牌


Tags: devtestclient身份验证awsid角色s3
1条回答
网友
1楼 · 发布于 2024-03-28 19:33:59

我通过用一个新的ARN为子帐户创建一个新的用户配置文件来解决这个问题

示例配置

[default]
region = us-east-1
[profile ecr-dev]
role_arn = arn:aws:iam::76532435:role/AccountRole
source_profile = default

示例代码

^{pr2}$

相关问题 更多 >