2

在 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” ...“资源”:“arn:aws:s3:::BUCKET/STRING/*” ...

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

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

4

1 回答 1

3

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

conn = S3Connection( key, secret );
mBucket = Bucket( conn, bucket );
for key in mBucket.list( prefix = prefix ):
  print key.name
return
于 2012-09-18T15:44:34.820 回答