gpt4 book ai didi

amazon-web-services - 何时显式使用 boto3 session

转载 作者:行者123 更新时间:2023-12-04 10:49:25 29 4
gpt4 key购买 nike

根据文档,默认情况下 boto3 会在需要时创建 session

it is possible and recommended to maintain your own session(s) in some scenarios

我的理解是,如果我使用我创建的 session ,我可以在整个应用程序中重复使用相同的 session ,而不是 boto3 自动创建多个 session ,或者如果我想从代码传递凭据。

有人曾经自己维护过 session 吗?如果是,除了上述优势之外,它提供的优势是什么。

secrets_manager = boto3.client('secretsmanager')
session = boto3.session.Session()
secrets_manager = session.client('secretsmanager')

使用其中一种有什么优势吗?在这种情况下推荐使用哪种。

引用文献:https://boto3.amazonaws.com/v1/documentation/api/latest/guide/session.html

最佳答案

我已经看到当您希望在不使用标准凭证提供者链的情况下提供特定凭证时使用的第二种方法。

例如,当承担一个角色时,您可以使用新的临时创建一个 session ,然后从该 session 创建一个客户端。

来自 boto3 sessions and aws_session_token management :

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']
)

然后您可以使用:s3 = session.client('s3')

关于amazon-web-services - 何时显式使用 boto3 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59550677/

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