boto3 s3 已初始化会话 return 凭据

boto3 s3 initialized session return credentials

我面临着类似于

的问题

但是,我已经有一个初始化的 s3 会话(来自 boto3)。 我怎样才能获得从它返回的凭据以将这些直接提供给 pandas? IE。如何从初始化的 boto3 s3 客户端中提取 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY?

您可以使用session.get_credentials

import boto3

session = boto3.Session()
credentials = session.get_credentials()

AWS_ACCESS_KEY_ID = credentials.access_key
AWS_SECRET_ACCESS_KEY = credentials.secret_key
AWS_SESSION_TOKEN = credentials.token

如果您只能访问 boto 客户端(如 S3 客户端),您可以在此处找到隐藏的凭据:

client = boto3.client("s3")

client._request_signer._credentials.access_key
client._request_signer._credentials.secret_key
client._request_signer._credentials.token

如果您不想处理凭据(我假设您在这里使用 SSO),您可以直接使用 pandas 加载 S3 对象:pd.read_csv(s3_client.get_object(Bucket='Bucket', Key ='FileName').get('Body'))