4

S3 ポリシー バケットを設定しようとしていますが、まったく機能しません。匿名ユーザーにファイルをアップロードすることを許可する必要がありますが、認証されたユーザーのみがファイルをダウンロードできます。私は2つの考えを試しました:

{
  "Id": "Policy1378380575437",
  "Statement": [
{
  "Sid": "Stmt1378380436712",
  "Action": [
    "s3:PutObject"
  ],
  "Effect": "Allow",
  "Resource": "arn:aws:s3:::my_bucket/*",
  "Principal": {
    "AWS": [
      "*"
    ]
  }
},
{
  "Sid": "Stmt1378380568645",
  "Action": [
    "s3:GetObject"
  ],
  "Effect": "Allow",
  "Resource": "arn:aws:s3:::my_bucket/*",
  "Principal": {
    "AWS": [
      "arn:aws:iam::1111111111:root"
    ]
  }
 }
 ]
}

しかし、問題は GetObject がデフォルトで許可されていることです。これは、匿名ユーザーがファイルをダウンロードできることを意味します。* GetObject を拒否する新しい Sid を追加しようとしましたが、拒否は常に許可をオーバーライドします。

提案をいただければ幸いです。

ありがとう。

4

1 に答える 1

1

ACLでこれを行うことができると思います。バケットのアクセス許可を変更して、ACL 'authenticated-read' を要求するようにします。ユーザーはアップロード時にその ACL フラグを設定する必要があります。そうしないと、アクセス拒否エラーが発生しますが、ユーザーにそのフラグを設定させることができれば、これでうまくいくと思います。 バケットの権限を編集する

于 2015-11-30T22:05:49.773 に答える