Amazon S3 インベントリ - Amazon Simple Storage Service

Amazon S3 インベントリ

重要

Amazon S3 では、Amazon S3 のすべてのバケットに対する基本レベルの暗号化として、Amazon S3 マネージドキーによるサーバー側の暗号化 (SSE-S3) が適用されるようになりました。2023 年 1 月 5 日以降、Amazon S3 にアップロードされるすべての新しいオブジェクトは、追加費用なしで、パフォーマンスに影響を与えずに自動的に暗号化されます。S3 バケットのデフォルト暗号化設定と新しいオブジェクトのアップロードのための自動暗号化ステータスは、AWS CloudTrail ログ、S3 インベントリ、S3 ストレージレンズ、Amazon S3 コンソール、および AWS Command Line Interface と AWS SDK の追加の Amazon S3 API レスポンスヘッダーとして利用できるようになりました。詳細については、「デフォルトの暗号化のよくある質問」を参照してください。

Amazon S3 インベントリを使用してストレージを管理できます。例えば、ビジネス、コンプライアンス、および規制上のニーズに対応して、オブジェクトのレプリケーションや暗号化のステータスを監査およびレポートするために使用できます。また、Amazon S3 同期 List API オペレーションのスケジュールされた代替手段として Amazon S3 インベントリを使用し、ビジネスワークフローやビッグデータジョブを簡素化、高速化できます。Amazon S3 インベントリは、List API オペレーションを使用してオブジェクトを監査しないため、バケットのリクエストレートには影響しません。

Amazon S3 インベントリは、カンマ区切り値 (CSV)、Apache Optimized Row Columnar (ORC)、または Apache Parquet 出力ファイルを通じて、S3 バケットや共有プレフィックス (オブジェクト名の先頭が共通文字列) を持つオブジェクトについて、オブジェクトおよび対応するメタデータを毎日または毎週一覧表示します。毎週のインベントリを設定すると、最初のレポートの後は毎週日曜日 (UTC タイムゾーン) にレポートが生成されます。Amazon S3 インベントリの料金に関する詳細については、Amazon S3 の料金 を参照してください。

1 つのバケットに対して複数のインベントリリストを設定できます。インベントリリストを設定する場合、以下を指定できます。

  • インベントリに含めるオブジェクトメタデータ

  • すべてのオブジェクトバージョンを一覧表示するか、現在のバージョンのみを一覧表示するか

  • インベントリリストファイル出力を保存する場所

  • インベントリを毎日生成するか、毎週生成するか

  • インベントリリストファイルを暗号化するかどうか

Amazon S3 インベントリを標準 SQL クエリを使用してクエリするには、Amazon AthenaAmazon Redshift Spectrum、その他のツール (PrestoApache HiveApache Spark など) を使用できます。Athena を使用してインベントリファイルをクエリする方法の詳細については、「Amazon Athena で Amazon S3 インベントリをクエリする」を参照してください。

ソースバケットと保存先バケット

インベントリでオブジェクトをリストする対象のバケットは、ソースバケットと呼ばれます。インベントリリストファイルを保存する先のバケットは、保存先バケットと呼ばれます。

ソースバケット

インベントリは、ソースバケットに格納されているオブジェクトをリストします。バケット全体のインベントリリストを取得することも、オブジェクトキー名のプレフィックスでリストをフィルタリングすることもできます。

ソースバケット:

  • インベントリにリストされているオブジェクトが含まれます。

  • インベントリの設定が含まれます。

保存先バケット

Amazon S3 インベントリリストのファイルは、保存先バケットに書き込まれます。すべてのインベントリリストファイルを保存先バケットの共通の場所にグループ化するには、インベントリ設定で保存先のプレフィックスを指定できます。

保存先バケット:

  • インベントリのファイルリストが含まれます。

  • 保存先バケットに保存されているすべてのインベントリリストファイルを一覧表示するマニフェストファイルが含まれます。詳細については、「インベントリマニフェスト」を参照してください。

  • バケットの所有権を検証するためのアクセス許可と、バケットにファイルを書き込むためのアクセス許可を Amazon S3 に付与する、バケットポリシーが必要です。

  • ソースバケットと同じ AWS リージョン に存在する必要があります。

  • ソースバケットと同じでもかまいません。

  • ソースバケットを所有するアカウントとは別の AWS アカウント によって所有されていてもかまいません。

Amazon S3 インベントリのリスト

インベントリリストファイルには、ソースバケット内のオブジェクトのリストと、各オブジェクトのメタデータが含まれます。インベントリリストファイルは、次のいずれかの形式で保存先バケットに保存されます。

  • GZIP で圧縮された CSV ファイル

  • ZLIB で圧縮された Apache Optimized Row Columnar (ORC)

  • Snappy で圧縮された Apache Parquet ファイル

注記

Amazon S3 インベントリレポートのオブジェクトのソート結果は一切保証されません。

インベントリリストファイルには、ソースバケット内のオブジェクトのリストと、リストされた各オブジェクトのメタデータが含まれます。

  • バケット名 – インベントリ対象のバケットの名前。

  • キー名 – バケット内のオブジェクトを一意に識別するオブジェクトのキー名 (またはキー)。CSV ファイル形式を使用すると、キー名は URL エンコードされるため、これをデコードしてから使用する必要があります。

  • バージョン ID – オブジェクトのバージョン ID。バケットのバージョニングを有効にすると、Amazon S3 はバケットに追加されたオブジェクトにバージョン番号を割り当てます。詳細については、「S3 バケットでのバージョニングの使用」を参照してください。リストを現在のバージョンのオブジェクトのみに設定した場合、このフィールドは含まれません。

  • IsLatest – オブジェクトが現在のバージョンのオブジェクトである場合は、True に設定されます リストを現在のバージョンのオブジェクトのみに設定した場合、このフィールドは含まれません。

  • 削除マーカー – オブジェクトが削除マーカーである場合は、True に設定されます。詳細については、「S3 バケットでのバージョニングの使用」を参照してください。(オブジェクトのすべてのバージョンを含めるようにレポートを設定している場合、このフィールドはレポートに自動的に追加されます)。

  • サイズ - バイト単位のオブジェクトサイズ。不完全なマルチパートアップロード、オブジェクトメタデータ、削除マーカーのサイズは含まれません。

  • 最終更新日 – オブジェクトの作成日または最終更新日のどちらか新しい方。

  • ETag – エンティティタグ (ETag) は、オブジェクトのハッシュです。ETag は、変更をオブジェクトのコンテンツにのみ反映し、メタデータには反映しません。ETag は、オブジェクトデータの MD5 ダイジェストである場合があります。どちらであるかは、オブジェクトの作成方法と暗号化方法によって決まります。

  • ストレージクラス – オブジェクトの保存に使用するストレージクラス。STANDARDREDUCED_REDUNDANCYSTANDARD_IAONEZONE_IAINTELLIGENT_TIERINGGLACIERDEEP_ARCHIVEOUTPOSTSGLACIER_IR、または SNOW に設定します。詳細については、「Amazon S3 ストレージクラスを使用する」を参照してください。

  • マルチパートアップロードフラグ – オブジェクトがマルチパートアップロードとしてアップロードされた場合は、True に設定されます。詳細については、「マルチパートアップロードを使用したオブジェクトのアップロードとコピー」を参照してください。

  • レプリケーションステータスPENDINGCOMPLETEDFAILED または REPLICA に設定します。詳細については、「レプリケーションステータス情報の取得」を参照してください。

  • 暗号化ステータス — サーバー側の暗号化のステータス。使用する暗号化キーの種類が Amazon S3 マネージド (SSE-S3) キー、AWS Key Management Service (AWS KMS) キー (SSE-KMS)、カスタマー提供キー (SSE-C) のいずれであるかに応じて異なります。SSE-S3SSE-CSSE-KMS、または NOT-SSE に設定します。ステータスが NOT-SSE の場合、オブジェクトはサーバー側の暗号化を使用して暗号化されません。詳細については、「暗号化によるデータの保護」を参照してください。

  • S3 オブジェクトロック: 日付までの保持期限 – ロックされたオブジェクトを削除できなくなる日付。詳細については、「S3 オブジェクトロックの使用」を参照してください。

  • S3 オブジェクトロック: 保持モード – ロックされたオブジェクトの Governance または Compliance に設定します。詳細については、「S3 オブジェクトロックの使用」を参照してください。

  • S3 オブジェクトロック: リーガルホールドステータス – リーガルホールドがオブジェクトに適用されている場合は On に設定します。それ以外の場合は、Off に設定されます。詳細については、「S3 オブジェクトロックの使用」を参照してください。

  • S3 Intelligent-Tiering: アクセス階層 – S3 Intelligent-Tiering ストレージクラスがオブジェクトの保存先である場合、オブジェクトのアクセス階層 (高頻度または低頻度)。FREQUENTINFREQUENTARCHIVE_INSTANT_ACCESSARCHIVE、または DEEP_ARCHIVE に設定します。詳細については、「アクセスパターンが変化する、またはアクセスパターンが不明なデータを、自動的に最適化するためのストレージクラス」を参照してください。

  • S3 バケットキーステータスENABLED または DISABLED に設定します。オブジェクトが SSE-KMS に S3 バケットキーを使用するかどうかを示します。詳細については、「Amazon S3 バケットキーの使用」を参照してください。

  • チェックサムアルゴリズム - オブジェクトのチェックサムを作成するために使用されるアルゴリズムを示します。

  • オブジェクトアクセスコントロールリスト — このオブジェクトへのアクセスを許可する AWS アカウントまたはグループと、許可するアクセスの種類を定義するアクセスコントロールリスト (ACL)。オブジェクト ACL フィールドは JSON 形式で定義します。S3 インベントリレポートには、ACL がバケットで無効になっている場合でも、ソースバケット内のオブジェクトに関連付けられた ACL が含まれます。詳細については、オブジェクト ACL フィールドの使用 および アクセスコントロールリスト (ACL) の概要 を参照してください。

    注記

    オブジェクト ACL フィールドは JSON 形式で定義します。インベントリレポートには、オブジェクト ACL フィールドの値が base64 エンコードされた文字列として表示されます。

    例えば、次のオブジェクト ACL フィールドが JSON 形式で存在するとします。

    { "version": "2022-11-10", "status": "AVAILABLE", "grants": [{ "canonicalId": "example-canonical-user-ID", "type": "CanonicalUser", "permission": "READ" }] }

    オブジェクト ACL フィールドはエンコードされ、次の base64 エンコードされた文字列として表示されます。

    eyJ2ZXJzaW9uIjoiMjAyMi0xMS0xMCIsInN0YXR1cyI6IkFWQUlMQUJMRSIsImdyYW50cyI6W3siY2Fub25pY2FsSWQiOiJleGFtcGxlLWNhbm9uaWNhbC11c2VyLUlEIiwidHlwZSI6IkNhbm9uaWNhbFVzZXIiLCJwZXJtaXNzaW9uIjoiUkVBRCJ9XX0=

    オブジェクト ACL フィールドのデコードされた値を JSON で取得するには、Amazon Athena でこのフィールドをクエリできます。クエリの例については、「Amazon Athena で Amazon S3 インベントリをクエリする」を参照してください。

  • オブジェクト所有者 — オブジェクトの所有者。

注記

ライフサイクル設定に基づいて、オブジェクトの存続期間が終了すると、Amazon S3 が削除キューに追加し、非同期的に削除します。そのため、有効期限が切れる日と Amazon S3 がオブジェクトを削除する日との間に遅延が生じることがあります。インベントリレポートには、有効期限が切れていてもまだ削除されていないオブジェクトが含まれます。S3 ライフサイクルの有効期限アクションの詳細については、「オブジェクトの有効期限」を参照してください。

古いインベントリリストを削除するライフサイクルポリシーを作成することをお勧めします。詳細については、「ストレージのライフサイクルの管理」を参照してください。

s3:PutInventoryConfiguration アクセス許可により、ユーザーは、インベントリリストを設定するとき、各オブジェクトについて以前にリストされたすべてのメタデータフィールドを選択することと、インベントリを保存する保存先バケットを指定することの両方ができるようになります。保存先バケット内のオブジェクトへの読み取りアクセス権を持つユーザーは、インベントリリストで利用可能なすべてのオブジェクトメタデータフィールドにアクセスできます。インベントリレポートへのアクセスを制限するには、「S3 インベントリおよび S3 分析に対するアクセス許可の付与」を参照してください。

インベントリ整合性

すべてのオブジェクトが各インベントリリストに表示されない場合があります。インベントリリストは、PUT リクエスト (新しいオブジェクトと上書きの両方) および DELETE リクエストの結果整合性を提供します。バケットの各インベントリリストは、バケット項目のスナップショットです。これらのリストは結果的に整合します (つまり、リストには最近追加または削除されたオブジェクトが含まれない場合があります)。

オブジェクトに対してアクションを実行する前に、オブジェクトの状態を検証するには、HeadObject REST API リクエストを実行してオブジェクトのメタデータを取得するか、Amazon S3 コンソールでオブジェクトのプロパティを確認することをお勧めします。AWS CLI または AWS SDK でオブジェクトのメタデータを確認することもできます。詳細については、「Amazon Simple Storage Service API リファレンス」の「HeadObject」を参照してください。

Amazon S3インベントリの使用のさらなる詳細については、以下のトピックを参照してください。