Python Boto3:具有有限权限的aws凭据
我得到了一些AWS密钥。这些键允许我访问s3存储桶中的某些目录。我想使用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
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策略的副本。