機密データの場所の JSON スキーマ - Amazon Macie

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

機密データの場所の JSON スキーマ

Amazon Macie は、標準化された JSON 構造を使用して、Amazon Simple Storage Service (Amazon S3) オブジェクト内の機密データを検出した場所に関する情報を保存します。その構造は、機密データの検出結果で使用されます。機密データの検出結果では、構造は検出結果の JSON スキーマの一部です。検出結果の完全な JSON スキーマを確認するには、Amazon Macie API リファレンスの検出結果を参照してください。機密データの検出結果の詳細については、機密データ検出結果の保存と保持を参照してください。

機密データの場所の JSON スキーマ概要

Amazon Macie が対象の S3 オブジェクト内で検出した機密データの場所を報告するために、機密データ検出結果の JSON スキーマには 1 つの customDataIdentifiers オブジェクトと 1 つの sensitiveData オブジェクトが含まれます。customDataIdentifiers オブジェクトは、Macie が カスタムデータ識別子を使用して検出したデータの詳細を提供します。sensitiveData オブジェクトは、Macie がマネージドデータ識別子を使用して検出した機密データの詳細を提供します。

それぞれの customDataIdentifierssensitiveData オブジェクトには、1 つ以上の detections 配列が含まれます。

  • customDataIdentifiers オブジェクトでは、detections 配列は、データを検出して結果を生成したカスタムデータ識別子を示します。各カスタムデータ識別子について、配列は識別子が検出したデータの出現の数も示します。また、識別子が検出したデータの場所を示すこともできます。

  • sensitiveData オブジェクトでは、detections 配列 は、Macie がマネージドデータ識別子を使用して検出した機密データのタイプを示します。機密データのタイプごとに、配列はデータの出現の数も示し、またデータの場所を示すことができます。

機密データの調査結果では、detections 配列には 1~15 個の occurrences オブジェクトを含めることができます。それぞれの occurrences オブジェクトは、Macie が特定のタイプの機密データの個別の出現を検出した場所を指定します。

例えば、次の detections 配列は、Macie が CSV ファイルで機密データ (米国社会保障番号) の 3 箇所の出現場所を示します。

"sensitiveData": [ { "category": "PERSONAL_INFORMATION", "detections": [ { "count": 30, "occurrences": { "cells": [ { "cellReference": null, "column": 1, "columnName": "SSN", "row": 2 }, { "cellReference": null, "column": 1, "columnName": "SSN", "row": 3 }, { "cellReference": null, "column": 1, "columnName": "SSN", "row": 4 } ] }, "type": "USA_SOCIAL_SECURITY_NUMBER" }

detections 配列内の occurrences オブジェクトの場所と数は、機密データ自動検出の分析サイクルまたは機密データ検出ジョブの実行中に Macie が検出する機密データのカテゴリ、タイプ、および発生数によって異なります。分析サイクルまたはジョブ実行のたびに、Macie は深さ優先検索アルゴリズムを使用して、S3 オブジェクト内で検出した出現 1 ~ 15 件の機密データの位置データを検出結果に取り込みます。これらの出現は、影響を受ける S3 バケットおよびオブジェクトに含まれる機密データのカテゴリとタイプを示すものです。

occurrences オブジェクトには、影響を受ける S3 オブジェクトのファイルタイプまたはストレージ形式に応じて、次の構造を含めることができます。

  • cells 配列 — この配列は Microsoft Excel ワークブック、CSV ファイル、および TSV ファイルに適用されます。この配列内のオブジェクトは、Macie が機密データの出現を検出したセルまたはフィールドを指定します。

  • lineRanges 配列 — この配列は、Eメールメッセージ (EML) ファイル、非バイナリテキストファイル (CSV、JSON、JSON Lines、TSV ファイル以外 — 例えば HTML、TXT、XML ファイルなど) に適用されます。この配列内のオブジェクトは、Macie が機密データの出現を検出した 1 つの行または包括的な範囲、および指定された行 (1 つまたは複数) のデータの位置を指定します。

    場合によっては、lineRanges 配列内のオブジェクトは、別のタイプの配列でサポートされているファイルタイプまたはストレージ形式で、機密データ検出の場所を指定します。そのような場合とは、ファイル内のコメントなど、構造化されたファイルの非構造化セクションでの検出、Macie がプレーンテキストとして分析する不正な形式のファイルの検出、Macie が機密データを検出した 1 つ以上の列名を持つ CSV または TSV ファイルなどです。

  • offsetRanges 配列 – この配列は、将来の利用のために予約されています。この配列が存在する場合、その配列の値は null です。

  • pages 配列 — この配列は Adobe Portable Document Format (PDF) ファイルに適用されます。この配列内のオブジェクトは、Macie が機密データの出現を検出したページを指定します。

  • records 配列 — この配列は Apache Avro オブジェクトコンテナ、Apache Parquet ファイル、JSON ファイル、および JSON Lines ファイルに適用されます。Avro オブジェクトコンテナおよび Parquet ファイルでは、この配列内のオブジェクトは、Macie が機密データの出現を検出したレコードインデックスおよびレコード内のフィールドへのパスを指定します。JSON および JSON Lines ファイルでは、この配列内のオブジェクトは、Macie が機密データの出現を検出したフィールドまたは配列へのパスを指定します。JSON Lines ファイルでは、データを含む行のインデックスも指定します。

これらの配列の内容は、影響を受けた S3 オブジェクトのファイルタイプまたはストレージ形式、およびその内容によって異なります。

機密データの場所に関する JSON スキーマの詳細と例

Amazon Macie は、特定のタイプのファイルやコンテンツ内の機密データを検出した場所を示すために使用する JSON 構造のコンテンツをカスタマイズします。次のトピックでは、これらの構造について説明し、例を示します。

機密データの検出結果に含めることができる JSON 構造の完全なリストについては、Amazon Macie API リファレンスの検出結果を参照してください。

セルの配列

Microsoft Excel ワークブック、CSV ファイル、および TSV ファイルに適用先

cells 配列内で、Cell オブジェクトは、Macie が機密データの出現を検出したセルまたはフィールドを指定します。以下のテーブルでは、Cell オブジェクト内の各フィールドの目的について説明しています。

フィールド タイプ 説明
cellReference 文字列 出現を含む絶対セル参照としてのセルの場所 このフィールドは、Excel ワークブックにのみ適用されます。CSV ファイルおよび TSV ファイルでは、この値は null です。
column 整数 出現を含む列の列番号 Excel ワークブックでは、この値は列識別子のアルファベット文字に関連します。たとえば、列 A では、1、列 B では、2 など。
columnName 文字列 出現を含む列の名前 (可能な場合)
row 整数 出現を含む行の行番号

次の例では、Macie が CSV ファイル内で検出した機密データの出現場所を指定する Cell オブジェクトの構造を示します。

"cells": [ { "cellReference": null, "column": 3, "columnName": "SSN", "row": 5 } ]

前の例では、検出結果は Macie がファイルの 3 番目の列の 5 行目のフィールド (SSN) に機密データを検出したことを示しています。

次の例では、Macie が Excel ワークブック内で検出した機密データの出現場所を指定する Cell オブジェクトの構造を示します。

"cells": [ { "cellReference": "Sheet2!C5", "column": 3, "columnName": "SSN", "row": 5 } ]

前の例では、検出結果は Macie がワークブックの Sheet2 という名前のワークシートで機密データを検出したことを示しています。そのワークシートで Macie は 3 列目の 5 行目 (列 C、SSN) のセルに機密データを検出しました。

LineRanges 配列

適用先: Eメールメッセージ (EML) ファイル、非バイナリテキストファイル (CSV、JSON、JSON Lines、TSV ファイル以外 — 例えば HTML、TXT、XML ファイルなど

lineRanges 配列内で、Range オブジェクトは、Macie が機密データの出現を検出した 1 つの行または複数の行の包括的な範囲、および指定された行 (1 つまたは複数) のデータの位置を指定します。

このオブジェクトは、occurrences オブジェクトの他のタイプの配列でサポートされているファイルタイプでは空であることがしばしばあります。例外は次のとおりです。

  • 構造化されたファイルの構造化されていないセクション内のデータ。

  • Macie がプレーンテキストとして分析する不正な形式のファイル内のデータ。

  • Macie が機密データを検出した 1 つ以上の列名を持つ CSV ファイルまたは TSV ファイル

以下のテーブルでは、lineRanges 配列の Range オブジェクト内の各フィールドの目的について説明しています。

フィールド タイプ 説明
end 整数 ファイルの先頭から出現の末尾までの行数
start 整数 ファイルの先頭から出現の先頭までの行数
startColumn 整数 出現startを含む最初の行の先頭から出現の先頭までの、1 から始まるスペースを含めた文字数

次の例では、Macie が TXTファイル内の 1 行に検出した機密データの出現場所を指定する Range オブジェクトの構造を示します。

"lineRanges": [ { "end": 1, "start": 1, "startColumn": 119 } ]

前の例では、検出結果は Macie がファイルの最初の行に機密データ (郵送先住所) の完全な出現を検出したことを示しています。出現での最初の文字は、その行の先頭から 119 番目の文字 (スペースを含む) です。

次の例では、TXT ファイル内の複数行にまたがる機密データの出現場所を指定する Range オブジェクトの構造を示します。

"lineRanges": [ { "end": 54, "start": 51, "startColumn": 1 } ]

前の例では、検出結果は Macie がファイルの 51 行目から 54 行目に機密データ (郵送先住所) の出現を検出したことを示しています。出現での最初の文字は、ファイルの 51 行目の最初の文字です。

ページ配列

Adobe Portable Document Format (PDF) ファイルに適用先

pages 配列内で、Page オブジェクトは、Macie が機密データの出現を検出したページを指定します。オブジェクトには pageNumber フィールドが含まれます。pageNumber フィールドは、出現を含むページ番号を指定する整数を格納します。

次の例では、Macie が PDF ファイル内で検出した機密データの出現場所を指定する Page オブジェクトの構造を示します。

"pages": [ { "pageNumber": 10 } ]

前の例では、検出結果はファイルの 10 ページに出現が含まれていることを示しています。

レコード配列

Apache Avro オブジェクトコンテナ、Apache Parquet ファイル、JSON ファイル、および JSON Lines ファイルに適用先

Avro オブジェクトコンテナまたは Parquet ファイルでは、records 配列内の Record オブジェクトは、Macie が機密データの出現を検出したレコードインデックスおよびレコード内のフィールドへのパスを指定します。JSON および JSON Lines ファイルでは、Record オブジェクトは、Macie が機密データの出現を検出したフィールドまたは配列へのパスを指定します。JSON Lines ファイルでは、出現を含む行のインデックスも指定します。

以下のテーブルでは、Record オブジェクト内の各フィールドの目的について説明しています。

フィールド タイプ 説明
jsonPath 文字列

JSONPath 式としての出現へのパス

Avro オブジェクトコンテナまたは Parquet ファイルでは、これは出現を含むレコードrecordIndex内のフィールドへのパスです。JSON または JSON Lines ファイルでは、これは出現を含むフィールドまたは配列へのパスです。データが配列内の値である場合、パスは出現を含む値も示します。

Macie がパス内の任意の要素の名前で機密データを検出した場合、Macie は Record オブジェクトから jsonPath フィールドを省略します。パス要素の名前が 240 文字を超える場合、Macie は名前の先頭から文字を削除して名前を切り捨てます。結果としてフルパスが 250 文字を超える場合、Macie はパスに含まれる文字が 250 文字以下になるまで、パスの最初の要素から開始してパスを切り捨てます。

recordIndex 整数 Avro オブジェクトコンテナまたは Parquet ファイルでは、出現を含むレコードの 0 から始まるレコードインデックス JSON Lines ファイルでは、出現を含む行の 0 から始まる行インデックス この値は、JSON ファイルでは常に 0 です。

次の例では、Macie が Parquet ファイル内で検出した機密データの出現場所を指定する Record オブジェクトの構造を示します。

"records": [ { "jsonPath": "$['abcdefghijklmnopqrstuvwxyz']", "recordIndex": 7663 } ]

前の例では、検出結果は、インデックス 7663 (レコード番号 7664) のレコードで Macie が機密データを検出したことを示しています。そのレコードで、Macie は abcdefghijklmnopqrstuvwxyz という名前のフィールドで機密データを検出しました。レコード内のフィールドへの完全な JSON パスは $.abcdefghijklmnopqrstuvwxyz です。このフィールドはルート (外部レベル) オブジェクトの直系の子孫です。

次の例では、Macie が Parquet ファイル内で検出した機密データの出現の Record オブジェクトの構造も示します。この例では、名前が文字数の制限を超えているため、Macie は出現を含むフィールドの名前を切り捨てました。

"records": [ { "jsonPath": "$['...uvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz']", "recordIndex": 7663 } ]

前の例では、フィールドはルート (外部レベル) オブジェクトの直系の子孫です。

次の例でも、Macie が Parquet ファイル内で検出した機密データの出現に対し、Macie はその出現を含むフィールドへのフルパスを切り捨てました。フルパスが文字制限を超えています。

"records": [ { "jsonPath": "$..usssn2.usssn3.usssn4.usssn5.usssn6.usssn7.usssn8.usssn9.usssn10.usssn11.usssn12.usssn13.usssn14.usssn15.usssn16.usssn17.usssn18.usssn19.usssn20.usssn21.usssn22.usssn23.usssn24.usssn25.usssn26.usssn27.usssn28.usssn29['abcdefghijklmnopqrstuvwxyz']", "recordIndex": 2335 } ]

前の例では、検出結果は、インデックス 2335 (レコード番号 2336) のレコードで Macie が機密データを検出したことを示しています。そのレコードで、Macie は abcdefghijklmnopqrstuvwxyz という名前のフィールドで機密データを検出しました。レコード内のフィールドへの完全な JSON パスは以下です。

$['1234567890']usssn1.usssn2.usssn3.usssn4.usssn5.usssn6.usssn7.usssn8.usssn9.usssn10.usssn11.usssn12.usssn13.usssn14.usssn15.usssn16.usssn17.usssn18.usssn19.usssn20.usssn21.usssn22.usssn23.usssn24.usssn25.usssn26.usssn27.usssn28.usssn29['abcdefghijklmnopqrstuvwxyz']

次の例では、Macie が JSON ファイル内で検出した機密データの出現場所を指定する Record オブジェクトの構造を示します。この例では、出現は配列内の特定の値です。

"records": [ { "jsonPath": "$.access.key[2]", "recordIndex": 0 } ]

前の例では、検出結果は、key という名前の配列の 2 番目の値に Macie が機密データを検出したことを示しています。配列は、access という名前のオブジェクトの子です。

次の例では、Macie が JSON Lines ファイル内で検出した機密データの出現場所を指定する Record オブジェクトの構造を示します。

"records": [ { "jsonPath": "$.access.key", "recordIndex": 3 } ]

前の例では、検出結果は、ファイル内の 3 番目の値 (行) で Macie が機密データを検出したことを示しています。その行では、出現は key という名前のフィールドにあり、それは access という名前のオブジェクトの子です。