Python Boto3:具有有限权限的aws凭据

Python Boto3:具有有限权限的aws凭据,python,amazon-web-services,amazon-s3,boto,boto3,Python,Amazon Web Services,Amazon S3,Boto,Boto3,我得到了一些AWS密钥。这些键允许我访问s3存储桶中的某些目录。我想使用boto3与公开给我的目录进行交互,但是我似乎根本无法对bucket执行任何操作,因为我无法访问整个bucket 这在我的终端上对我有效: aws s3 ls s3://the_bucket/and/this/specific/path/ 但如果我这样做: aws s3 ls s3://the_bucket/ 我得到: 调用ListObjects时发生错误(AccessDenied) 操作:访问被拒绝 当我试图通过bot

我得到了一些AWS密钥。这些键允许我访问s3存储桶中的某些目录。我想使用
boto3
与公开给我的目录进行交互,但是我似乎根本无法对bucket执行任何操作,因为我无法访问整个bucket

这在我的终端上对我有效:

aws s3 ls s3://the_bucket/and/this/specific/path/
但如果我这样做:

aws s3 ls s3://the_bucket/
我得到:

调用ListObjects时发生错误(AccessDenied) 操作:访问被拒绝

当我试图通过
boto3
访问目录时也会发生这种情况

session = boto3.Session(profile_name=my_creds)
client=session.client('s3')
list_of_objects = client.list_objects(Bucket='the_bucket', Prefix='and/this/specific/path', Delimiter='/')

我是否需要请求访问整个bucket才能使用
bot3

您需要设置此bucket策略:

{
  "Sid": "<SID>",
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::<account>:user/<user_name>"
  },
  "Action": [
    "s3:GetBucketLocation",
    "s3:ListBucket"
  ],
  "Resource": "arn:aws:s3:::<bucket_name>"
}
{
“Sid”:“,
“效果”:“允许”,
“委托人”:{

“AWS”:“arn:AWS:iam::

您有权访问iam策略吗?您没有权限列出存储桶中的对象,但您可能有权通过密钥获取某些对象(列出和获取是不同的权限)。我不能在没有看到策略的情况下确定。此外,您不能在ARN上提供ListObjects,其中包含的不仅仅是bucket。它还可以通过一个条件进一步限制,但您允许在bucket上列出,并在ARN上获取带有前缀或键的对象。请在您的问题中包含IAM策略的副本。