Amazon web services AWS:botocore.exceptions.ClientError:发生错误(拒绝访问)

Amazon web services AWS:botocore.exceptions.ClientError:发生错误(拒绝访问),amazon-web-services,boto3,amazon-iam,botocore,Amazon Web Services,Boto3,Amazon Iam,Botocore,我正在AWS批处理中运行一些作业。我带来了每个容器的.aws凭据文件和配置文件 这是我试图运行的代码 s3 = boto3.resource('s3') session = boto3.Session() client = session.client('s3') dse_input_s3_objects = client.list_objects( Bucket='mybucket', Prefix='mypath/' ) 当我在本地运行代码时,我没有问题,但是当我尝试批量

我正在AWS批处理中运行一些作业。我带来了每个容器的.aws凭据文件和配置文件

这是我试图运行的代码

s3 = boto3.resource('s3')
session = boto3.Session()
client = session.client('s3')

dse_input_s3_objects = client.list_objects(
    Bucket='mybucket',
    Prefix='mypath/'
)
当我在本地运行代码时,我没有问题,但是当我尝试批量运行代码时,我得到以下错误:

botocore.exceptions.ClientError: An error occurred (AccessDenied) when calling the ListObjects operation: Access Denied
我正在使用以下批处理服务角色

需要注意的是,在批处理中,我使用的是conda环境,因此我不确定这是否会导致访问凭据时出现任何问题?但是,在读取错误时,它似乎已成功定位凭据

你知道为什么这样不行吗?是否需要向批处理服务角色添加内容

编辑:

这是我的政策

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "ListPermission",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::XXXXXXXXX:root"
            },
            "Action": [
                "s3:GetBucketLocation",
                "s3:ListBucket"
            ],
            "Resource": "arn:aws:s3:::mybucket"
        },
        {
            "Sid": "GetPermission",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::XXXXXXXXXX:root"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::mybucket/*"
        },
        {
            "Sid": "PutPermission",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::XXXXXXXXX:root"
            },
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": "arn:aws:s3:::mybucket/*"
        }
    ]
}

您链接的IAM角色不包括对S3的任何权限,您正试图访问S3。bucket策略是否允许该角色?我刚刚在编辑中将我的bucket策略添加到问题中。当您授予对帐户的访问权限时,该帐户中的IAM角色必须在其角色策略中具有S3权限。