バケットの概要 - Amazon Simple Storage Service

バケットの概要

Amazon S3 にデータ (写真、動画、ドキュメントなど) をアップロードするには、いずれかの AWS リージョン に S3 バケットを作成する必要があります。その後、バケットにオブジェクトをいくつでもアップロードできます。

実装の面では、バケットとオブジェクトは AWS リソースであり、Amazon S3 はバケットやオブジェクトを管理するための API を提供します。たとえば、Amazon S3 API を使用してバケットの作成やオブジェクトのアップロードを行うことができます。これらの操作は Amazon S3 コンソールを使用して実行することもできます。コンソールは、Amazon S3 API を使用して Amazon S3 にリクエストを送信します。

このセクションでは、バケットを操作する方法について説明します。オブジェクトの操作方法の詳細については、「Amazon S3 オブジェクトの概要」を参照してください。

Amazon S3 バケット名はグローバルに一意であり、名前空間はすべての AWS アカウント によって共有されています。つまり、バケットが作成された後は、バケットが削除されるまで、どの AWS リージョン 内の他 AWS アカウント もそのバケットの名前を使用できません。可用性やセキュリティ検証の目的で、特定のバケット命名規則に依存しないでください。バケットの命名のガイドラインについては、バケットの名前付け を参照してください。

Amazon S3 は、指定したリージョンでバケットを作成します。レイテンシーを最適化してコストを最小化し、規制要件に対応するには、地理的に近い AWS リージョン を選択します。たとえば、ヨーロッパにお住まいの場合は、欧州 (アイルランド) または欧州 (フランクフルト) リージョンにバケットを作成するとよいでしょう。Amazon S3 のリージョンの一覧については、AWS 全般のリファレンスリージョンとエンドポイントを参照してください。

注記

特定の AWS リージョン に作成したバケットに属するオブジェクトは、お客様が明示的に他のリージョンに転送しない限り、そのリージョンから移動しません。たとえば、欧州 (アイルランド) リージョンに保存されているオブジェクトは、ずっとそのリージョンに置かれたままです。

アクセス許可について

AWS アカウント のルートユーザーの認証情報を使用して、バケットを作成したり、その他の Amazon S3 オペレーションを実行したりすることができます。ただし、バケット作成などのリクエストを行う目的で AWS アカウント のルートユーザーの認証情報を使用しないことをお勧めします。代わりに、AWS Identity and Access Management (IAM) ユーザーを作成し、そのユーザーにフルアクセスを許可します (デフォルトではユーザーにアクセス許可はありません)。

これらのユーザーは、管理者と呼ばれます。アカウントのルートユーザーの認証情報ではなく、管理者ユーザーの認証情報を使用して、AWS を操作し、バケットの作成、ユーザーの作成、および許可の付与などのタスクを実行できます。

詳細については、AWS 全般のリファレンス AWS アカウント のルートユーザー認証情報と IAM ユーザー認証情報 IAM ユーザーガイド IAM でのセキュリティのベストプラクティスを参照してください。

リソースを作成する AWS アカウント は、そのリソースを所有しています。例えば、 AWS アカウント に IAM ユーザーを作成し、そのユーザーにバケットを作成する許可を付与すると、ユーザーはバケットを作成できます。しかし、ユーザーはバケットを所有していません。ユーザーが属する AWS アカウント がバケットを所有しています。ユーザーがその他のバケットオペレーションを実行するには、リソース所有者から追加のアクセス許可を取得する必要があります。Amazon S3 リソースのアクセス許可を管理する方法の詳細については、「Amazon S3 での Identity and Access Management」を参照してください。

バケットへのパブリックアクセスを管理する

パブリックアクセスは、アクセスコントロールリスト (ACL)、バケットポリシー、またはその両方からバケットおよびオブジェクトに付与されます。Amazon S3 には、パブリックアクセスをブロックする設定があり、Amazon S3 リソースへのパブリックアクセスを管理するのに役立ちます。Amazon S3 Block Public Access 設定では ACL およびバケットポリシーを上書きできるため、これらのリソースへのパブリックアクセスに均一な制限を適用できます。Block Public Access 設定は、個々のバケットまたはアカウント内のすべてのバケットに適用できます。

すべての Amazon S3 バケットとオブジェクトのパブリックアクセスを確実にブロックできるように、アカウントの Block Public Access の 4 つの設定をすべてオンにすることをお勧めします。これらの設定によって、現在および将来のバケットのパブリックアクセスはすべてブロックされます。

これらの設定を適用する前に、アプリケーションがパブリックアクセスなしで正しく動作することを確認してください。「Amazon S3 を使用して静的ウェブサイトをホスティングする」に示す静的なウェブサイトをホストする場合など、バケットやオブジェクトにある程度のパブリックアクセスが必要な場合は、ストレージのユースケースに合わせて個別に設定をカスタマイズできます。詳細については、「Amazon S3 ストレージへのパブリックアクセスのブロック」を参照してください。

バケット設定オプション

Amazon S3 では、バケットを設定するためのさまざまなオプションをサポートしています。たとえば、バケットをウェブサイトのホスティング用に設定する、バケット内のオブジェクトのライフサイクルを管理するための設定を追加する、およびバケットへのアクセスをすべて記録するようにバケットを設定することができます。Amazon S3 では、バケットの設定情報を保存および管理するためのサブリソースをサポートしています。Amazon S3 API を使用して、これらのサブリソースを作成および管理できます。ただし、コンソールや AWS SDK を使用することもできます。

注記

また、オブジェクトレベルの設定もあります。たとえば、オブジェクトに固有のアクセスコントロールリスト (ACL) を設定することによって、オブジェクトレベルのアクセス許可を設定できます。

これらは、特定のバケットやオブジェクトのコンテキストに存在するため、サブリソースと呼ばれます。次の表に、バケット固有の設定を管理するためのサブリソースのリストを示します。

サブリソース 説明

cors (Cross-Origin Resource Sharing)

クロスオリジンリクエストを許可するようにバケットを設定できます。

詳細については、「Cross-Origin Resource Sharing (CORS) の使用」を参照してください。

イベントの通知

指定したバケットイベントの通知を送信するようにバケットを設定できます。

詳細については、「Amazon S3 イベント通知」を参照してください。

ライフサイクル

バケットのライフサイクルが明確に定義されていれば、バケット内のオブジェクトのライフサイクルルールを定義できます。たとえば、作成されてから 1 年後にオブジェクトアーカイブする、作成されてから 10 年後にオブジェクトを削除するなどのルールを定義できます。

詳細については、「ストレージのライフサイクルの管理」を参照してください。

location

バケットを作成するときには、Amazon S3 でバケットを作成する AWS リージョン を指定します。Amazon S3 では、この情報を location サブリソースに格納し、この情報を取得するための API をお客様に提供します。

logging

ログ記録によって、バケットへのアクセスのリクエストを追跡できます。各アクセスログレコードには、1 つのアクセスリクエストに関する詳細が含まれます。内容は、リクエスタ、バケット名、リクエスト時刻、リクエストアクション、応答ステータス、およびエラーコード (存在する場合) です。アクセスログ情報は、セキュリティとアクセス監査に役立ちます。また、顧客基盤について知り、Amazon S3 の請求を理解することにも役立ちます。 

詳細については、「サーバーアクセスログを使用したリクエストのログ記録」を参照してください。

オブジェクトのロック

S3 のオブジェクトのロックを使用するには、バケットに対して有効にする必要があります。オプションで、バケットに配置された新しいオブジェクトに適用されるデフォルトのリテンションモードと期間を設定することもできます。

詳細については、「バケット設定」を参照してください。

policy および ACL (アクセスコントロールリスト)

すべてのリソース (バケットやオブジェクトなど) はデフォルトではプライベートです。Amazon S3 では、バケットレベルのアクセス許可を付与および管理するために、バケットポリシーおよびアクセスコントロールリスト (ACL)の両方のオプションをサポートしています。Amazon S3 では、policy および acl サブリソースにアクセス許可情報を格納します。

詳細については、「Amazon S3 での Identity and Access Management」を参照してください。

レプリケーション

レプリケーションは、同一または異なる AWS リージョン にあるバケット間でオブジェクトを自動的に非同期コピーする機能です。詳細については、「オブジェクトのレプリケーション」を参照してください。

requestPayment

デフォルトでは、バケットを作成した AWS アカウント (バケット所有者) に、バケットからのダウンロードの料金をお支払いいただきます。バケット所有者は、このサブリソースを使用して、ダウンロードをリクエストするユーザーにダウンロードの料金が課金されるように指定できます。Amazon S3 では、このサブリソースを管理するための API も利用できます。

詳細については、「ストレージ転送と使用量のリクエスタ支払いバケットの使用」を参照してください。

タグ付け

バケットにコスト配分タグを追加して、AWS コストを分類して追跡できます。Amazon S3 では、バケットのタグを保存、管理するために、tagging サブリソースを提供しています。タグを使用してバケットに適用すると、AWS によって、使用量とコストがタグごとに集計されたコスト配分レポートが生成されます。

詳細については、「S3 バケットの請求および使用状況レポート」を参照してください。

Transfer Acceleration

Transfer Acceleration を使用すると、クライアントと S3 バケットの間で、長距離にわたるファイル転送を高速、簡単、安全に行えるようになります。Transfer Acceleration は、Amazon CloudFront の世界中に点在するエッジロケーションを利用します。

詳細については、「Amazon S3 Transfer Acceleration を使用した高速かつ安全なファイル転送の設定」を参照してください。

バージョニング

バージョニングは、誤って上書き、削除した場合の回復に役立ちます。

誤って削除または上書きされたオブジェクトを回復するためのベストプラクティスとしてバージョニングをお勧めします。

詳細については、「S3 バケットでのバージョニングの使用」を参照してください。

website

静的ウェブサイトホスティング用にバケットを設定できます。Amazon S3 では、website サブリソースを作成することによって、この設定を格納します。

詳細については、「Amazon S3 を使用して静的ウェブサイトをホスティングする」を参照してください。