2011-09-14 14 views
68

Amazon AWS mangementからいくつかのファイルをアップロードしました。Amazon S3許可の問題 - 一度にすべてのファイルのアクセス許可を設定するにはどうすればよいですか?

403エラーが発生しました。 Acessが拒否されました。私は見るためにpermissonを設定する必要があることを知りました。

どのようにバケット上のすべてのファイルに対して行うのですか? 私はそれが各ファイルのための設定可能な許可であることを知っています。すべての人に見えるようにする必要があるファイルが本当にたくさんあるときは、非常に時間がかかります。

答えて

105

パブリックコンテンツを格納するバケットにバケットポリシー[1]を適用することをお勧めします。この方法では、すべてのオブジェクトに対してACLを設定する必要はありません。バケット内のすべてのファイルを公開するポリシーの例を次に示します。mybucket公開します。 "Resource": "arn:aws:s3:::mybucket/sub/dirs/are/supported/*"*は、再帰を許可することを

{ 
    "Version": "2008-10-17", 
    "Id": "http better policy", 
    "Statement": [ 
     { 
      "Sid": "readonly policy", 
      "Effect": "Allow", 
      "Principal": "*", 
      "Action": "s3:GetObject", 
      "Resource": "arn:aws:s3:::mybucket/sub/dirs/are/supported/*" 
     } 
    ] 
} 

[1]バケットポリシーはIAMポリシーとは異なります。 (PrincipalをIAMポリシーに含めるとエラーが発生する場合があります)バケットポリシーは、AWS Webコンソールでバケットのルートに移動し、[プロパティ]> [権限]を展開することで編集できます。バケツのサブディレクトリもプロパティ]> [権限を持っていますが、編集バケットポリシーするオプションはありません

+4

他の誰かがこれによってキャッチされた場合、ちょうどバージョンが正確に指定されている必要があります。 – opsb

+9

バケツポリシーの設定方法が不明な人のために、公式のAWSドキュメントhttp://adocs.amazonwebservices.com/AmazonS3/latest/dev/setpolicyonbucket.html –

+6

があります。 :http://awspolicygen.s3.amazonaws.com/policygen.html –

4

あなただけのユニークなアイテム(バケツまたはアイテム)のACLを変更することができ、大豆をあなたがそれらを一つずつ変更する必要があります。

一部のS3管理アプリケーションでは、同じACLをバケット内のすべてのアイテムに適用できますが、内部的にはそれぞれを1つずつ適用します。

プログラムでファイルをアップロードする場合は、ファイルをアップロードするときにACLを指定することが重要です。そのため、あとで変更する必要はありません。 S3管理アプリケーション(Cloudberry、Transmitなど)を使用する際の問題は、ほとんどのユーザーが各ファイルをアップロードするときにデフォルトACL(プライベート読み取り専用)を使用することです。

2

.. S3バケットへのプログラム(javaの)を介してファイルをアップロードしながら、私は同じ問題を抱えていた

エラー:要求されたリソースに「Access-Control-Allow-Origin」ヘッダーが存在しません。 発信元 'http://localhost:9000'はアクセスできません。応答は、HTTPステータスコード403

を持っていた私は、原点アイデンティティを加え、次いで、すべてがうまく働いバケットポリシーCORS設定を変更しました。

3

パブリックにするディレクトリを選択できます。

「more」を押して公開としてマークします。ディレクトリとすべてのファイルを公開可能にします。

1

S3 Browserを使用すると、guiを使用して再帰的にアクセス権を更新できます。これは便利なツールであり、非商用の使用には無料です。