

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

# 機密データの場所を報告するためのスキーマ
<a name="findings-locate-sd-schema"></a>

Amazon Macie は、標準化された JSON 構造を使用して、Amazon Simple Storage Service (Amazon S3) オブジェクト内の機密データを検出した場所に関する情報を保存します。その構造は、機密データの検出結果で使用されます。機密データの検出結果では、構造は検出結果の JSON スキーマの一部です。検出結果の完全な JSON スキーマを確認するには、Amazon Macie API リファレンスの[検出結果](https://docs.aws.amazon.com/macie/latest/APIReference/findings-describe.html)を参照してください。機密データの検出結果の詳細については、[機密データ検出結果の保存と保持](discovery-results-repository-s3.md)を参照してください。

**Topics**
+ [スキーマの概要](#findings-locate-sd-schema-overview)
+ [スキーマの詳細と例](#findings-locate-sd-schema-examples)

## スキーマの概要
<a name="findings-locate-sd-schema-overview"></a>

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

それぞれの `customDataIdentifiers` と `sensitiveData` オブジェクトには、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 オブジェクトのファイルタイプまたはストレージ形式、およびその内容によって異なります。

## スキーマの詳細と例
<a name="findings-locate-sd-schema-examples"></a>

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

**Topics**
+ [セルの配列](#findings-locate-sd-schema-examples-cell)
+ [LineRanges 配列](#findings-locate-sd-schema-examples-linerange)
+ [ページ配列](#findings-locate-sd-schema-examples-page)
+ [レコード配列](#findings-locate-sd-schema-examples-record)

機密データの検出結果に含めることができる JSON 構造の完全なリストについては、Amazon Macie API リファレンスの[検出結果](https://docs.aws.amazon.com/macie/latest/APIReference/findings-describe.html)を参照してください。

### セルの配列
<a name="findings-locate-sd-schema-examples-cell"></a>

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

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


| フィールド | タイプ | 説明 | 
| --- | --- | --- | 
| cellReference | 文字列 | 出現を含む絶対セル参照としてのセルの場所 このフィールドは、Excel ワークブックにのみ適用されます。CSV ファイルおよび TSV ファイルでは、この値は null です。 | 
| column | 整数 | 出現を含む列の列番号 Excel ワークブックでは、この値は列識別子のアルファベット文字に関連します。たとえば、列 A では、1、列 B では、2 など。 | 
| columnName | String | 出現を含む列の名前 (可能な場合) | 
| 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 配列
<a name="findings-locate-sd-schema-examples-linerange"></a>

適用先: 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 行目の最初の文字です。

### ページ配列
<a name="findings-locate-sd-schema-examples-page"></a>

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

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

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

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

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

### レコード配列
<a name="findings-locate-sd-schema-examples-record"></a>

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

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

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


| フィールド | タイプ | 説明 | 
| --- | --- | --- | 
| jsonPath | 文字列 | JSONPath 式としての出現へのパス<br />Avro オブジェクトコンテナまたは Parquet ファイルでは、これは出現を含むレコード`recordIndex`内のフィールドへのパスです。JSON または JSON Lines ファイルでは、これは出現を含むフィールドまたは配列へのパスです。データが配列内の値である場合、パスは出現を含む値も示します。<br />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` という名前のオブジェクトの子です。