公共存储桶的S3凭据?

时间:2016-10-19 06:07:49

标签: amazon-web-services amazon-s3 boto3

我有这个片段在S3

上传文件
s3 = boto3.resource('s3')
s3.Object('bucketname', timestamped_filename).put(Body=open(FILE_SAVE_PATH, 'rb'))

我的存储桶拥有每个人的删除/上传权限,因此它可以在我的Windows计算机上运行。 但是,当我尝试在我的Mac上运行相同的代码时,它会抛出

botocore.exeptions.NoCredentialsError: Unable to locate credentials

这种行为是正常的吗? 如果我正在访问公共存储桶,我可以提供什么样的凭据?

谢谢。

1 个答案:

答案 0 :(得分:0)

在对AWS进行API调用时,必须提供有效凭据。这些凭证与IAM用户关联,并授予对AWS服务的访问权限。

在从Amazon EC2实例进行API调用(或使用AWS Command-Line Interface (CLI)时,可以通过在启动时为实例分配IAM角色,将这些凭据授予EC2实例

从非EC2计算机拨打电话时,必须通过配置文件或环境变量提供凭证。

您的Windows计算机似乎是具有角色的EC2实例,或者它具有带有效凭据的本地配置文件;看起来你的Mac没有这些。

请参阅:boto3 Credentials documentation