メニュー
Amazon Simple Storage Service
開発者ガイド (API Version 2006-03-01)

ウェブサイトアクセスに必要なアクセス許可

バケットをウェブサイトとして設定するときは、そのサイトで配信するオブジェクトを、パブリックに読み取り可能となるように設定する必要があります。このようにするには、全員に s3:GetObject を許可するバケットポリシーを作成します。ウェブサイトエンドポイント上に、ユーザーがリクエストしたオブジェクトが存在しない場合は、Amazon S3 から HTTP レスポンスコード 404 (Not Found) が返されます。オブジェクトが存在するが、そのオブジェクトの読み取りアクセス許可が付与されていない場合は、ウェブサイトエンドポイントから HTTP レスポンスコード 403 (Access Denied) が返されます。ユーザーはこのレスポンスコードを見て、特定のオブジェクトが存在するかどうかを推測できます。この動作を希望しない場合は、バケットのウェブサイトのサポートを有効にしないでください。

次のサンプルバケットポリシーは、指定したフォルダ内のオブジェクトへのすべてのユーザーのアクセスを付与します。バケットポリシーについては、バケットポリシーとユーザーポリシーの使用 を参照してください。

Copy
{ "Version":"2012-10-17", "Statement":[{ "Sid":"PublicReadGetObject", "Effect":"Allow", "Principal": "*", "Action":["s3:GetObject"], "Resource":["arn:aws:s3:::example-bucket/*" ] } ] }

注記

バケットポリシーは、バケット所有者が所有するオブジェクトにのみ適用されます。バケットに、バケット所有者として所有していないオブジェクトが含まれる場合は、オブジェクトの ACL を使用して、それらのオブジェクトへのパブリック読み取りアクセス許可を付与する必要があります。

オブジェクトにパブリック読み取りアクセス許可を付与するには、バケットポリシーまたはオブジェクト ACL を使用します。ACL を使用してオブジェクトを公開で読み取り可能にするには、次の許可要素に示すように、AllUsers グループに READ アクセス許可を付与します。この許可要素をオブジェクト ACL に追加します。ACL の管理については、「ACL によるアクセス管理 」を参照してください。

Copy
<Grant> <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Group"> <URI>http://acs.amazonaws.com/groups/global/AllUsers</URI> </Grantee> <Permission>READ</Permission> </Grant>