使用BOTO和IAM浏览/下载S3

时间:2012-09-06 12:00:27

标签: amazon-s3 boto amazon-iam

按照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

另外,为了从桶“子文件夹”中获取对象,

...    “行动”: “S3:GetObject的”    ...    “资源”: “阿尔恩:AWS:S3 :::桶/ STRING / *”    ...

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

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

1 个答案:

答案 0 :(得分:2)

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

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