使用BOTO和IAM浏览/下载S3



根据AWS IAM示例,我得到了如下的conf。但当我将用户的凭据与此一起使用时,这会导致"访问被拒绝"附加IAM政策。

删除Stringlike条件效果良好。

{
  "Statement": [
    {
  "Action": [
    "s3:ListBucket"
  ],
  "Effect": "Allow",
  "Resource": [
    "arn:aws:s3:::BUCKET"
  ],
  "Condition": {
    "StringLike": {
      "s3:prefix": "STRING/*"
    }
  }
}
]}

conn = S3Connection( key, secret );
buck = conn.get_bucket( BUCKET ); 
for key in buck.list( prefix = STRING ):
  print key.name

此外,为了从bucket"子文件夹"中获取对象,

"操作":"s3:GetObject"。。。"资源":"arn:aws:s3:::BUCKET/STRING/*"…

只有这个受限制的getObject权限是不够的(再次被拒绝),而如果我将ListBucket策略添加到整个bucket中,它就会起作用。当您需要在目录上设置READ(列表)位来访问(读取)同一目录中包含的777文件时,AWS是否与*nix中一样工作?

你能帮忙吗?我不确定我对IAM政策的理解。感谢

修复了删除get_bucket()的问题,这可能需要更多权限(ListAllMyBuckets?)

conn = S3Connection( key, secret );
mBucket = Bucket( conn, bucket );
for key in mBucket.list( prefix = prefix ):
  print key.name
return

相关内容

  • 没有找到相关文章