S3 サブリソース

  • Amazon S3 サブリソースは、バケット構成情報を保存および管理するためのサポートを提供します。
  • S3 サブリソースは、特定のバケットまたはオブジェクトのコンテキストにのみ存在します。
  • S3 は、バケットとオブジェクトに関連付けられたサブリソースのセットを定義します。
  • S3 サブリソースはオブジェクトの下位にあります。つまり、オブジェクトやバケットなどの他のエンティティと常に関連付けられています。
  • S3 はバケットを設定するための様々なオプションをサポートしています, バケットは、web サイトのホスティングのために構成することができます, バケット内のオブジェクトのライフサイクルを管理するために追加された構成, とバケットへのすべてのアクセスを記録する。

バケットサブリソース

ライフサイクル

ブログ投稿を参照 S3 オブジェクトライフサイクル管理

静的ウェブサイトホスティング

  • S3 は、クライアント側のスクリプトでホストされている静的 web サイトに使用できます。
  • S3 はサーバー側スクリプトをサポートしていません
  • S3 は、Route53と一緒に、S3 のウェブサイトのエンドポイントを指すことができるルートドメインでのウェブサイトのホスティングをサポートしています。
  • S3 の Web サイトエンドポイントは HTTPS をサポートしていません。
  • S3 のウェブサイトのコンテンツをホストするためには、オブジェクトのバケットポリシーまたは ACL を使用して提供することができます公開されて読めるようにする必要があります
  • ユーザーは、インデックス、エラードキュメントだけでなく、オブジェクト名の条件付きルーティングを構成することができます。
  • バケットポリシーは、バケット所有者が所有するオブジェクトにのみ適用されます。バケット所有者が所有していないオブジェクトがバケツに含まれている場合は、オブジェクト ACL を使用して、それらのオブジェクトに対するパブリック読み取り権限を付与する必要があります。
  • リクエスタはバケットまたは DevPay バケットを支払い、Web サイトエンドポイントからのアクセスを許可しません。このようなバケットへの要求は、403アクセス拒否応答を受信します。

バージョニング

ブログ投稿を参照 S3 オブジェクトのバージョン管理

ポリシーとアクセス制御リスト(ACL)

ブログ投稿を参照 S3 アクセス許可

CORS (クロスオリジンリソース共有)

  • すべてのブラウザは、ドメインの Web ページが同じドメインのリソースのみを要求できるセキュリティ上の理由から、同じオリジンポリシーを実装します。
  • CORS 1 つのドメインに読み込まれたクライアント Web アプリケーションが、別のドメインから要求される制限付きリソースへのアクセスを許可する。
  • S3 で CORS サポートを使用すると、S3 リソースへのクロスオリジンアクセスを選択的に許可することができます。
  • CORS 構成ルールは、バケットへのアクセスを許可されたオリジン、各オリジンでサポートする操作 (HTTP メソッド)、およびその他の操作固有の情報を識別します。

ロギング

  • 既定では無効になっているログは、S3 バケットへのアクセス要求の追跡を有効にします。
  • 各アクセスログレコードには、リクエスタ、バケット名、要求時間、要求アクション、応答ステータス、エラーコードなど、1つのアクセス要求に関する詳細が表示されます。
  • アクセスログ情報は、セキュリティおよびアクセス監査に役立ち、顧客ベースについて学び、S3 請求書を理解するのにも役立ちます。
  • S3 は定期的にアクセスログレコードを収集し、ログファイル内のレコードを統合し、ログファイルをログオブジェクトとしてターゲットバケットにアップロードします。
  • 同じターゲットバケットを持つ複数のソースバケットでログが有効になっている場合、ターゲットバケットにはすべてのソースバケットのアクセスログが記録されますが、各ログオブジェクトは特定のソースバケットのアクセスログレコードを報告します。

タグ付け

  • S3 はタグ付けサブリソースを提供して、バケット上の名札を保存および管理します。
  • コスト配分タグをバケットに追加して、AWS コストを分類および追跡することができます。
  • AWS は、バケットに適用されるタグによって集計された使用率とコストを使用してコスト配分レポートを生成できます。

ロケーション

  • バケットを作成するときには、S3 バケットの作成場所を指定する必要があります。
  • S3 はこの情報をロケーションサブリソースに保存し、この情報を取得するための API を提供します。

通知

  • S3 通知機能により、バケット内で特定のイベントが発生したときに通知がトリガされる。
  • 通知はバケットレベルで有効になります。
  • 通知は、オブジェクトのキー名のプレフィックスとサフィックスによってフィルター処理されるように構成できます。ただし、重複するプレフィックス、重複するサフィックス、またはプレフィックスとサフィックスが重複しているため、フィルタルールを定義することはできません。
  • S3 は次のイベントを発行できます。
    • 新しいオブジェクトの作成イベント
      • PUT、POST、コピーの各操作に対して有効にできます。
      • 失敗した操作からのイベント通知は受信されません。
    • オブジェクト削除イベント
      • オブジェクト削除、バージョンオブジェクト削除、または削除マーカーの挿入のためのパブリック削除イベントを可能にする。
      • ライフサイクルポリシーまたは失敗した操作からの自動削除からイベント通知を受け取ることはありません。
    • 冗長ストレージ (RRS) オブジェクトの消失イベントの削減
      • オブジェクトを再現/再作成するために使用することができます。
  • S3 は、次の宛先にイベントを発行できます。
    • Amazon SNS のトピック
    • Amazon SQS キュー
    • AWS Lambda
  • S3 が送り先にイベントをパブリッシュできるようにするには、S3 プリンシパルに必要なパーミッションを付与する必要があります。

クロスリージョンレプリケーション

  • クロスリージョンレプリケーションはバケットレベルの機能であり、異なる AWS リージョンのバケット間でオブジェクトを自動的に非同期にコピーすることができます。
  • S3 は、特定のキー名プレフィックスを持つオブジェクトのすべてまたはサブセットを複製できます。
  • S3 は、SSL を使用して AWS リージョン間で転送中のすべてのデータを暗号化します
  • デスティネーションバケット内のオブジェクトレプリカは、ソースバケット内のオブジェクトの正確なレプリカであり、同じキー名と同じメタデータを持ちます。
  • クロスリージョンレプリケーションは、次のシナリオで役立ちます。
    • リージョン間でデータをバックアップするためのコンプライアンス要件。
    • 地域間のユーザーがオブジェクトにアクセスできるようにレイテンシを最小限にする。
    • 操作上の理由は、同じオブジェクトのセットを分析する2つの異なる領域のクラスタを計算します。
  • 要件
    • ソースとデスティネーションのバケットはバージョニングが有効である必要があります。
    • ソースとデスティネーションのバケットは、異なる AWS リージョンにある必要があります。
    • オブジェクトは、ソースバケットから1つのデスティネーションバケットにのみレプリケートできます。
    • S3 は、そのソースバケットから目的のバケットにオブジェクトを複製する権限を持っている必要があります。
    • ソースバケット所有者がオブジェクトを所有している場合、バケット所有者はオブジェクトをレプリケートするための完全な権限を持っています。そうでない場合、ソースバケットの所有者は、S3 アクション s3: GetObjectVersion と s3: GetObjectVersionACL オブジェクトとオブジェクトの ACL を読み取るためのアクセス許可を持っている必要があります。
    • クロスアカウントシナリオでクロスリージョンレプリケーションを設定している場合 (ソースバケットとデスティネーションバケツが別の AWS アカウントによって所有されている場合)、ソースバケット所有者は、コピー先バケット内のオブジェクトをレプリケートする権限を持っている必要があります。
  • レプリケートされる & レプリケートされない
    • レプリケーション構成を追加した後に作成された新しいオブジェクトがレプリケートされます。
    • S3 は、レプリケーション構成を追加する前に存在していたオブジェクトをさかのぼってレプリケートしません。
    • SSE-s3 で作成されたオブジェクトのみが、Amazon s3 で管理された暗号化キーを使用してサーバー側の暗号化を使用してレプリケートします。
    • 顧客提供の (sse-C) または AWS kms –管理された暗号化 (sse-kms) キーを使用してサーバー側の暗号化で作成されたオブジェクトは、レプリケートできません。
    • S3 は、バケット所有者がオブジェクトを読み取り、ACL を読み取るためのアクセス許可を持つソースバケット内のオブジェクトのみをレプリケートします。
    • S3 は、バケット所有者がアクセス許可を持たないソースバケット内のオブジェクトをレプリケートしません。
    • すべてのオブジェクト ACL の更新はレプリケートされますが、Amazon S3 が2つを同期させる前にいくつかの遅延が発生する可能性があります。これは、バケットにレプリケーション構成を追加した後に作成されたオブジェクトにのみ当てはまります。
    • バケットレベルの S3 サブへの更新はレプリケートされないため、ソースとデスティネーションのバケットで異なるバケット構成が可能。
    • レプリケートされるのは顧客アクションのみであり、ライフサイクル構成によって実行されるアクションはレプリケートしません。
    • 別のクロスリージョンレプリケーションによって作成されたレプリカであるソースバケット内のオブジェクトはレプリケートされません。

リクエスターペイ

  • デフォルトでは、バケットはそれを作成した AWS アカウント (バケット所有者) によって所有され、AWS アカウントはバケットに関連付けられたストレージコスト、ダウンロード、およびデータ転送料金を支払います。
  • リクエスタを使用して支払うサブリソース:
    • バケット所有者は、ダウンロードを要求するリクエスタがダウンロードに課金されることを指定します。
    • しかし、バケットの所有者は、まだストレージコストを支払う。
  • リクエスタによるバケットの支払いの有効化
    • そのバケットへの匿名アクセスを無効にします。
    • BitTorrent をサポートしていません。
    • SOAP 要求をサポートしていません。
    • エンドユーザーログバケットに対して有効にできません

オブジェクトのサブリソース

トレント

  • S3 データのデフォルトの配布メカニズムは、クライアント/サーバのダウンロードを介して行われます。
  • バケツの所有者は、ストレージのコストと、一般的なオブジェクトに対して直線的に増加するリクエストおよび転送料金を負担します。
  • S3 はまた、BitTorrent プロトコルをサポートしています。
    • BitTorrent は、オープンソースのインターネット配信プロトコルです。
    • BitTorrent は、この問題を、ディストリビューター自身としてダウンロードしているクライアントを募集することによって解決します。
    • S3 の帯域幅は安価ですが、開発者は BitTorrent を使用して、ユーザーが Amazon や他のユーザーから同時にダウンロードできるようにすることで、一般的なデータの帯域幅コストをさらに節約できます。
  • publisher の利点は、大規模で人気のあるファイルが実際に S3 によって提供されるデータの量は、クライアント/サーバーのダウンロードを介して同じクライアントを提供していたものよりも大幅に低くなることができるということです。
  • S3 に公開されており、匿名で読むことができるオブジェクトは BitTorrent 経由でダウンロードできます。
  • Torrentファイルは、オブジェクトのREST GET要求の最後に “?torrent”クエリ文字列パラメータを追加するだけで、公開されているオブジェクトを検索することができます。
  • オブジェクトのトレントを生成すると、そのオブジェクトのサイズに比例して時間がかかるので、その後の要求が速くなるようにファイルを生成するために自分で最初のトレント要求を行うことをお勧めします。
  • トレントは、サイズが 5 GB 未満のオブジェクトに対してのみ有効になります。
  • トレントサブリソースは、取得することができ、作成、更新、または削除することはできません。

オブジェクト ACL


AWS認定試験の練習問題

  • 質問はインターネットから収集され、答えは自分の知識と理解に基づいてマークされます(これはあなたと異なる場合があります)。
  • AWSサービスは毎日更新され、回答と質問はすぐに時代遅れになる可能性がありますので、それに応じて調査してください。
  • AWSのアップデートのペースを追うためにAWS試験の質問は更新されないため、基礎となる機能が変更されても質問が更新されないことがあります。
  • さらなるフィードバック、ディスカッション、修正を可能にします。
  1. 組織のセキュリティポリシーでは、少なくともプライマリおよびバックアップデータセンター全体にレプリケートされる重要なデータを複数コピーする必要があります。組織は、Amazon S3 にいくつかの重要なデータを格納することを決定しました。この要件を満たすために、どのオプションを実装する必要がありますか。
    1. S3 コピー API を使用して、異なるリージョンの2つの S3 バケット間でデータをレプリケートする。
    2. S3 データはリージョン間で自動的にレプリケートされるため、何も実装する必要はありません。
    3. S3 コピー API を使用して、AWS リージョン内の異なる施設内の2つの S3 バケット間でデータをレプリケートする。
    4. S3 データは AWS リージョン内の複数の施設間で自動的にレプリケートされるため、何も実装する必要はありません。
  2. お客様は、Amazon シンプルストレージサービス (S3) バケットへのアクセスを追跡し、この情報を内部セキュリティおよびアクセス監査にも使用したいと考えています。顧客の要件を満たすのは、次のうちどれですか。
    1. AWS CloudTrail を有効にして、すべての Amazon S3 バケットアクセスを監査します。
    2. 必要なすべての Amazon S3 バケットに対してサーバーアクセスログを有効にする。
    3. 依頼者の支払いオプションを有効にして AWS 請求によるアクセスを追跡。
    4. Put および Post の Amazon S3 イベント通知を有効にします。
  3. ユーザーは、S3 バケットでホスティングする静的な Web サイトを有効にしています。次のパラメータのうち、ユーザーが設定できないものはどれですか?
    1. エラードキュメント
    2. オブジェクト名の条件付きエラー
    3. 索引ドキュメント
    4. オブジェクト名の条件付きリダイレクト
  4. ABCD 会社は http://www.companyabcd.com からアクセスする Amazon S3 で企業の Web サイトを実行しています。 彼らのマーケティングチームは、S3 エンドポイントによってアクセスされる別のS3バケット(https://s3-us-west1.amazonaws.com/abcdfonts)に新しいWebフォントを公開しました。 新しいWebフォントをテストしている間、ABCD は Web フォントがブラウザによってブロックされていることを認識しました。 ウェブフォントがブラウザによってブロックされないように、ABCD社は何をすべきですか?
    1. 各 Web フォントの abcdfonts バケットのバージョン管理を有効にする。
    2. abcdfonts バケットにポリシーを作成して、すべてのユーザーにアクセスできるようにする。
    3. web サイトから abcdfonts バケット内の webfonts の要求にコンテンツ MD5 ヘッダーを追加します。
    4. CORS 構成を作成してクロスオリジン要求を許可するように abcdfonts バケットを構成する。
  5. ABCD 会社は現在、Static Website Hosting が有効になっている Amazon S3 バケットに企業サイトをホスティングしています。 現在、訪問者が http://www.companyabcd.com に行くと、index.htmlページが返されます。 訪問者がブラウザに http://www.companyabcd.com を入力すると、C社は新しいページ welcome.html を返すようになりました。 次のどのステップで ABCD がこの要件を満たすことができますか? 2つの答えを選択してください。
    1. welcome.html という html ページをS3バケットにアップロードする
    2. S3バケットにウェルカムサブフォルダを作成する
    3. index.html プロパティを welcome.html に設定します。
    4. index.html ページをウェルカムサブフォルダに移動する
    5. エラードキュメントプロパティをwelcome.htmlに設定します。

Jayendra’s Blog

この記事は自己学習用に「AWS S3 Subresources – Certification(Jayendra’s Blogより)」を日本語に訳した記事です。