機密データの場所を報告するためのスキーマ - Amazon Macie

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

機密データの場所を報告するためのスキーマ

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

スキーマの概要

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 array – この配列は Microsoft Excel ワークブック、CSVファイル、TSVファイルに適用されます。この配列内のオブジェクトは、Macie が機密データの出現を検出したセルまたはフィールドを指定します。

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

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

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

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

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

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

スキーマの詳細と例

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 列目 ( という名前SSN) の 5 行目の フィールドで機密データを検出したことを示しています。

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

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

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

LineRanges 配列

適用先: E メールメッセージ (EML) ファイル、および CSV、、 JSON JSON 行、 TSV ファイル以外の非バイナリテキストXMLファイル。例: 、HTMLTXT、 ファイル

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 という名前のオブジェクトの子です。