【问题标题】:AWS S3 ListBuckets operation: Access DeniedAWS S3 ListBuckets 操作:拒绝访问
【发布时间】:2022-01-13 22:50:54
【问题描述】:

我正在尝试列出boto3 documentation 之后的存储桶。

import boto3

s3 = boto3.client(service_name = 's3',
                  region_name = 'us-east-2',
                  aws_access_key_id='xxxxxx',
                  aws_secret_access_key= 'xxxxx'
                 )

response = s3.list_buckets()

# Output the bucket names
print('Existing buckets:')
for bucket in response['Buckets']:
    print(f'  {bucket["Name"]}')

但结果是一个错误,上面写着

ClientError: An error occurred (AccessDenied) when calling the ListBuckets operation: Access Denied

我发现了一些关于这个错误的类似帖子,但我仍然不知道如何修复我的错误。任何帮助将不胜感激。

【问题讨论】:

  • 请编辑您的问题以显示与该访问密钥关联的权限。
  • 旁注:为了提高安全性,建议从不在您的实际代码中包含您的安全凭证(访问密钥、秘密密钥) .相反,使用 AWS CLI aws configure 命令将它们存储在配置文件中。
  • 您的访问密钥无权访问我们帐户中的 ListBuckets。请让您的管理员提供 ListBuckets 权限

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


【解决方案1】:

我尝试运行您的代码,一切正常。而且你不必指定 region_name 因为无论如何你都会得到所有的桶。然后我试图从我的用户那里删除对 s3 的权限并得到同样的错误。我猜你是因为你的用户政策而遇到这样的错误。您应该将您的政策内容附加到问题中。

【讨论】:

  • 我不是root用户。这就是我在 credentials.csv 文件中得到的全部内容。我应该要求 root 用户获取策略吗?
  • 是的。它可能会有所帮助
猜你喜欢
  • 2017-12-24
  • 2021-11-06
  • 2021-09-17
  • 2020-09-30
  • 1970-01-01
  • 2016-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多