S3 インベントリを使用したデータのカタログ化と分析 - Amazon Simple Storage Service

S3 インベントリを使用したデータのカタログ化と分析

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 が最初のインベントリレポートを配信するまでに最大 48 時間かかることがあります。

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

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

ソースバケット

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

ソースバケット:

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

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

保存先バケット

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 ダイジェストである場合があります。どちらであるかは、オブジェクトの作成方法と暗号化方法によって決まります。詳細については、「Amazon Simple Storage Service API リファレンス」の「Object」を参照してください。

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

    注記

    S3 インベントリは S3 Express One Zone をサポートしていません。

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

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

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

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

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

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

  • 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 インベントリをクエリする」を参照してください。

  • オブジェクト所有者 – オブジェクトの所有者の正規ユーザー ID。詳細については、「AWS Account Management リファレンスガイド」の「AWS の正規ユーザー ID を検索する」を参照してください。

注記

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

以下は、4 つのレコードで構成される追加のメタデータフィールドを含むインベントリレポートの例です。

amzn-s3-demo-bucket1 example-object-1 EXAMPLEDC8l.XJCENlF7LePaNIIvs001 TRUE 1500 2024-08-15T15:28:26.0004 EXAMPLE21e1518b92f3d92773570f600 STANDARD FALSE COMPLETED SSE-KMS 2025-01-25T15:28:26.000Z COMPLIANCE Off ENABLED eyJ2ZXJzaW9uIjoiMjAyMi0xMS0xMCIsInN0YXR1cyI6IkFWQUlMQUJMRSIsImdyYW50cyI6W3sicGVybWlzc2lvbiI6IkZVTExfQ09OVFJPTCIsInR5cGUiOiJDYW5vbmljYWxVc2VyIiwiY2Fub25pY2FsSWQiOiJFWEFNUExFNzY2ZThmNmIxMTVkOTNkNDFkZjJlYWM0MjBhYTRhNDY1ZDE3N2MxMzk4YmM2YTA4OGM3NmI3MDAwIn1dfQ== EXAMPLE766e8f6b115d93d41df2eac420aa4a465d177c1398bc6a088c76b7000 amzn-s3-demo-bucket1 example-object-2 EXAMPLEDC8l.XJCENlF7LePaNIIvs002 TRUE 200 2024-08-21T15:28:26.000Z EXAMPLE21e1518b92f3d92773570f601 INTELLIGENT_TIERING FALSE COMPLETED SSE-KMS 2025-01-25T15:28:26.000Z COMPLIANCE Off INFREQUENT ENABLED SHA-256 eyJ2ZXJzaW9uIjoiMjAyMi0xMS0xMCIsInN0YXR1cyI6IkFWQUlMQUJMRSIsImdyYW50cyI6W3sicGVybWlzc2lvbiI6IkZVTExfQ09OVFJPTCIsInR5cGUiOiJDYW5vbmljYWxVc2VyIiwiY2Fub25pY2FsSWQiOiJFWEFNUExFNzY2ZThmNmIxMTVkOTNkNDFkZjJlYWM0MjBhYTRhNDY1ZDE3N2MxMzk4YmM2YTA4OGM3NmI3MDAwIn1dfQ== EXAMPLE766e8f6b115d93d41df2eac420aa4a465d177c1398bc6a088c76b7001 amzn-s3-demo-bucket1 example-object-3 EXAMPLEDC8l.XJCENlF7LePaNIIvs003 TRUE 12500 2023-01-15T15:28:30.000Z EXAMPLE21e1518b92f3d92773570f602 STANDARD FALSE REPLICA SSE-KMS 2025-01-25T15:28:26.000Z GOVERNANCE On ENABLED eyJ2ZXJzaW9uIjoiMjAyMi0xMS0xMCIsInN0YXR1cyI6IkFWQUlMQUJMRSIsImdyYW50cyI6W3sicGVybWlzc2lvbiI6IkZVTExfQ09OVFJPTCIsInR5cGUiOiJDYW5vbmljYWxVc2VyIiwiY2Fub25pY2FsSWQiOiJFWEFNUExFNzY2ZThmNmIxMTVkOTNkNDFkZjJlYWM0MjBhYTRhNDY1ZDE3N2MxMzk4YmM2YTA4OGM3NmI3MDAwIn1dfQ== EXAMPLE766e8f6b115d93d41df2eac420aa4a465d177c1398bc6a088c76b7002 amzn-s3-demo-bucket1 example-object-4 EXAMPLEDC8l.XJCENlF7LePaNIIvs004 TRUE 100 2021-02-15T15:28:27.000Z EXAMPLE21e1518b92f3d92773570f603 STANDARD FALSE COMPLETED SSE-KMS 2025-01-25T15:28:26.000Z COMPLIANCE Off ENABLED eyJ2ZXJzaW9uIjoiMjAyMi0xMS0xMCIsInN0YXR1cyI6IkFWQUlMQUJMRSIsImdyYW50cyI6W3sicGVybWlzc2lvbiI6IkZVTExfQ09OVFJPTCIsInR5cGUiOiJDYW5vbmljYWxVc2VyIiwiY2Fub25pY2FsSWQiOiJFWEFNUExFNzY2ZThmNmIxMTVkOTNkNDFkZjJlYWM0MjBhYTRhNDY1ZDE3N2MxMzk4YmM2YTA4OGM3NmI3MDAwIn1dfQ== EXAMPLE766e8f6b115d93d41df2eac420aa4a465d177c1398bc6a088c76b7003

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

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

インベントリ整合性

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

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

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