gpt4 book ai didi

amazon-web-services - boto3 s3 角色 arn

转载 作者:行者123 更新时间:2023-12-05 06:32:04 25 4
gpt4 key购买 nike

我无法使用 boto3 以 100% 编程方式提供的角色连接到 S3。

session = boto3.Session(role_arn="arn:aws:iam::****:role/*****",
RoleSessionName="****")

s3_client = boto3.client('s3',
aws_access_key_id="****",
aws_secret_access_key="****")

for b in s3_client.list_buckets()["Buckets"]:
print (b["Name"])

我无法向 Session 和客户端提供 arn 信息,并且基于 s3 的客户端上没有 assume_role()。

我找到了一种使用 sts 临时 token 的方法,但我不喜欢那样。

sess = boto3.Session(aws_access_key_id="*****",
aws_secret_access_key="*****")
sts_connection = sess.client('sts')
assume_role_object = sts_connection.assume_role(RoleArn="arn:aws:iam::***:role/******",
RoleSessionName="**",
DurationSeconds=3600)

session = boto3.Session(
aws_access_key_id=assume_role_object['Credentials']['AccessKeyId'],
aws_secret_access_key=assume_role_object['Credentials']['SecretAccessKey'],
aws_session_token=assume_role_object['Credentials']['SessionToken'])

s3_client = session.client('s3')

for b in s3_client.list_buckets()["Buckets"]:
print (b["Name"])

你有什么想法吗?

最佳答案

您需要了解如何创建临时凭据。

首先,您需要使用当前的访问 key 创建一个客户端。这些凭据然后用于验证您是否有权调用 assume_role 并有权从 IAM 角色颁发凭据。

如果有人可以按照您的方式进行操作,assume_role 就会存在巨大的安全漏洞。必须先验证您的权利,然后才能颁发临时凭证。

关于amazon-web-services - boto3 s3 角色 arn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51500519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com