【问题标题】:Connect to Amazon S3 with boto3 with IAM roles使用带有 IAM 角色的 boto3 连接到 Amazon S3
【发布时间】:2016-04-26 10:52:54
【问题描述】:

我正在尝试从 python boto 转移到更新的 boto3 模块,以在 Amazon S3 上操作文件。

我还需要使用 Amazon IAM 角色,就像我使用旧的 bo​​to 模块一样。我不确定如何在服务器上设置 IAM 角色,但我所要做的就是:

s3_conn = S3Connection()

我可以访问服务器有权访问的所有存储桶。

这在boto3中似乎有所不同:

s3 = boto3.resource('s3')
for bucket in s3.buckets.all():
     print(bucket.name)

我收到一个错误:

File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/boto3/resources/collection.py", line 83, in __iter__
  for page in self.pages():
File "/usr/local/lib/python2.7/dist-packages/boto3/resources/collection.py", line 161, in pages
  pages = [getattr(client, self._py_operation_name)(**params)]
File "/usr/local/lib/python2.7/dist-packages/botocore/client.py", line 310, in _api_call
  return self._make_api_call(operation_name, kwargs)
File "/usr/local/lib/python2.7/dist-packages/botocore/client.py", line 407, in _make_api_call
  raise ClientError(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (AccessDenied) when calling the ListBuckets operation: Access Denied

我正在浏览 boto3 文档,但我不确定设置 IAM 角色需要做什么:

http://boto3.readthedocs.org/en/latest/

【问题讨论】:

    标签: python amazon-s3 amazon-iam boto3


    【解决方案1】:

    对于所有相关存储桶,您的策略中都需要 s3:ListBucket 权限。您可以找到完整的 S3 策略条件列表here

    【讨论】:

    • 如何使用 Python Boto3 添加权限?
    猜你喜欢
    • 2018-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 2016-04-06
    • 2017-10-29
    • 2019-11-28
    • 2016-11-01
    相关资源
    最近更新 更多