2017-03-06 609 views
1

当我尝试使用boto3列出所有存储桶时,终端出现此错误:An error occurred (AccessDenied) when calling the ListBuckets operation: Access Deniedboto3:调用ListBuckets操作时发生错误(AccessDenied):访问被拒绝?

下面的代码:

for bucket in s3.buckets.all(): 
    print(bucket.name) 

我发现一个堆栈溢出问题(Why is my terminal returning this s3 error?)以下是建议的解决方案。我对AWS非常陌生,所以需要一些指导。

我在哪里可以找到像AWS控制台内的字典里面的字典?

{ 
"Sid": "AllowListingOfAllBuckets", 
"Effect": "Allow", 
"Action": [ 
    "s3:ListAllMyBuckets" 
], 
"Resource": [ 
    "arn:aws:s3:::*" 
] 
} 
+1

S3控制台,选择水桶和视图属性。添加存储桶策略。或者,在IAM用户或您的Boto3代码正在使用的角色上设置这些权限。 –

回答

0

您可以添加以下动作阵列的政策: s3:ListBucket

{ 
    "Sid": "AllowListingOfAllBuckets", 
    "Effect": "Allow", 
    "Action": [ 
     "s3:ListAllMyBuckets", 
     "s3:ListBuckets", 
    ], 
    "Resource": [ 
     "arn:aws:s3:::*" 
    ] 
} 

您可能需要更新的资源: "Resource": "arn:aws:s3:::mywebsite.media/*"