首页 > 解决方案 > AccessDenied 用于从 S3 存储桶获取对象

问题描述

我正在尝试从另一个区域的 SageMaker 容器访问 S3 存储桶。

我可以使用以下代码列出 S3 存储桶中的所有文件夹:

import boto3 
s3 = boto3.resource('s3', region_name='us-east-1') 
bucket = s3.Bucket('bucket-name') 
for my_bucket_object in bucket.objects.all():
    print(my_bucket_object)

但是,get_object 失败,消息访问被拒绝。所有权限均已提供给 S3 存储桶。

s3 = boto3.client('s3',region_name = 'us-east-1')
obj = s3.get_object(Bucket='bucket-name', Key = '2019/3/')

错误信息如下:

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

有人可以指导为什么会这样吗?谢谢你。

标签: amazon-web-servicesamazon-s3boto3amazon-sagemaker

解决方案


您可以复制您在存储桶上使用的粘贴策略文件吗?使用策略文件,您还可以控制文件夹级别的所有访问。


推荐阅读