Amazon S3でバケットを公開する[終了]


286

Amazon S3でバケットを設定して、デフォルトですべてのファイルをパブリックに読み取り専用にするにはどうすればよいですか?


10
この質問にトピック外のフラグが付けられて困っています。AWSは真面目なプログラマーにとって重要です。:私はuは次のようにACL引数を指定してCLI syncコマンドを使用することができます追加しますaws s3 sync ./local-folder-name s3://remote-bucket-name --acl=public-read
ジョンVandivier

同様の投稿に対するこの回答が役立つ場合があります:stackoverflow.com/a/23102551/475882
jaxxbo

回答:


462

このブログ投稿で詳しく説明されているように、バケットポリシーを設定できます。

http://ariejan.net/2010/12/24/public-readable-amazon-s3-bucket-policy/


@robbytの提案に従って、次のJSONでバケットポリシーを作成します。

{
  "Version": "2008-10-17",
  "Statement": [{
    "Sid": "AllowPublicRead",
    "Effect": "Allow",
    "Principal": { "AWS": "*" },
    "Action": ["s3:GetObject"],
    "Resource": ["arn:aws:s3:::bucket/*" ]
  }]
}

重要:交換するbucketにはResource、あなたのバケツの名前を持つ行。


公式のAWS CLIを使用する場合arn:aws:s3:::bucketは、Resourceアレイに追加する必要もあります。(したがって、/*。なし)これが私のようにこれに苦労していた他の人を助けることを願っています。
シルベノン2015

私の悪い。これはsync、バケットを表示するだけでなく、を計画している場合にのみ必要です。
シルベノン2015

6
Pythonののbotoを通じて匿名アクセスをサポートするために、このポリシーの設定に加えて、私はまた、付与しなければならなかったListの権限をEveryoneバケットのプロパティ]> [権限]セクションで。
Chris Betti

バージョンを書くルールは何ですか?私は現在の日付2017-11-16を使用しています、それは報告します:エラー:ポリシーには有効なバージョン文字列が含まれている必要があります
Timothy.Li

1
@ Timothy.Liあなたはそれを引用符で囲むことを覚えていましたか?"2017-11-16",
froggomad

57

Amazonはポリシー生成ツールを提供しています。

https://awspolicygen.s3.amazonaws.com/policygen.html

その後、AWSコンソールでバケットのポリシー要件を入力できます。

https://console.aws.amazon.com/s3/home


これは、<<バケットポリシーとユーザーポリシーの使用>> docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.htmlの
Timothy.Li

1
素晴らしいリンク。構文は非常に複雑で、そのためのジェネレータを作成する必要がありました。
ティムボ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.