如何使用会话令牌创建s3客户端对象?

问题描述

我想使用证书凭证将文件上传到s3。是否可以使用证书获取s3存储桶的客户端对象?

最初,我尝试使用以下文件上传文件

s3 = boto3.client("s3",region_name=region,aws_access_key_id=ACCESS_KEY,aws_secret_access_key=SECRET_KEY)
s3.upload_file(file_path,bucket_name,file_name)

现在,我不想使用ACCESS_KEY | SECRET_KEY创建客户端对象,因为它正在边缘设备上运行。取而代之的是,我生成了证书(IOT)。我想使用此证书创建客户端对象。因此,最后我有了临时ACCESS_KEY | SECRET_KEY | SESSION_TOKEN。我想通过这些临时凭证来创建客户端对象。如何在boto3中做到这一点?

解决方法

我找到了解决方案, 很简单,我们只需要传递aws_session_token

client = boto3.client('s3',aws_access_key_id=AWS_ACCESS_KEY_ID,aws_secret_access_key=AWS_SECRET_ACCESS_KEY,aws_session_token=AWS_SESSION_TOKEN)