33

次の権限を持つユーザー foo がいます (グループのメンバーではありません)。

{
  "Statement": [
    {
      "Sid": "Stmt1308813201865",
      "Action": "s3:*",
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::bar"
    }
  ]
}

ただし、そのユーザーは、認証されたユーザーにフルアクセスを許可するまで、アップロードしたり、ほとんどのことを実行したりできないようです (これは誰にでも適用される可能性があります)。do を実行しようとすると、アップロード後にがエラーをスローするため、これでもユーザーは許可を変更できませんkey.set_acl('public-read')

理想的には、このユーザーはbarバケットへのフル アクセス権を持ち、それ以外には何もアクセスできません。何が間違っているのでしょうか?

4

9 に答える 9

44

バケット自体にs3:ListBucket権限を付与する必要があります。以下のポリシーを試してください。

{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "S3:*",
      "Resource": "arn:aws:s3:::bar/*",
      "Condition": {}
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket"
      ],
      "Resource": "arn:aws:s3:::bar",
      "Condition": {}
    }
  ]
}
于 2011-11-21T14:55:41.307 に答える
21

選択した答えはうまくいきませんでしたが、これはうまくいきました:

{
  "Statement": [
    {
      "Action": "s3:*",
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::my-bucket",
        "arn:aws:s3:::my-bucket/*"
      ]
    }
  ],
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:ListAllMyBuckets",
      "Resource": "arn:aws:s3:::*"
    }
  ]
}

クレジット: http://mikeferrier.com/2011/10/27/granting-access-to-a-single-s3-bucket-using-amazon-iam/

于 2012-11-21T16:25:56.043 に答える
8

AWS Policy Generatorをご存知ですか?

于 2012-10-05T09:23:55.863 に答える
0

Cyber​​duck がオブジェクト ACL を設定できない理由がわからないために頭を悩ませているが、別のクライアント (Panic Transmit など) で動作する場合は、次の解決策があります。

s3:GetBucketAclアクション リストに追加する必要があります。

{
    "Statement": [
        {
            "Sid": "Stmt1",
            "Action": [
                "s3:GetBucketAcl",
                "s3:ListBucket",
                "s3:DeleteObject",
                "s3:GetObject",
                "s3:GetObjectAcl",
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::your-bucket-name"
        }
    ]
}

もちろん、制限が緩い場合はこれを行う必要はありませんがs3:*、知っておくとよいと思います。

于 2015-11-23T11:31:05.640 に答える
0
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                        "s3:GetBucketLocation",
                        "s3:ListAllMyBuckets"
                      ],
            "Resource": "arn:aws:s3:::*"
        },
        {
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::YOUR-BUCKET",
                "arn:aws:s3:::YOUR-BUCKET/*"
            ]
        }
    ]
}
于 2019-06-21T07:20:20.790 に答える