

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 報告敏感資料位置的結構描述
<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 結構描述包含一個`customDataIdentifiers`物件和一個`sensitiveData`物件。`customDataIdentifiers` 物件提供 Macie 使用[自訂資料識別符偵測到之資料](custom-data-identifiers.md)的詳細資訊。`sensitiveData` 物件提供 Macie 使用[受管資料識別符偵測到的資料](managed-data-identifiers.md)詳細資訊。

每個 `customDataIdentifiers`和 `sensitiveData` 物件包含一或多個`detections`陣列：
+ 在 `customDataIdentifiers` 物件中，`detections`陣列會指出哪些自訂資料識別符偵測到資料並產生調查結果。對於每個自訂資料識別符，陣列也會指出識別符偵測到的資料出現次數。它也可以指出識別符偵測到的資料位置。
+ 在 `sensitiveData` 物件中，`detections`陣列會指出 Macie 使用受管資料識別符偵測到的敏感資料類型。對於每種類型的敏感資料，陣列也會指出資料的出現次數，並且可以指出資料的位置。

對於敏感資料調查結果，`detections`陣列可包含 1-15 個`occurrences`物件。每個`occurrences`物件指定 Macie 偵測到特定類型敏感資料個別出現的位置。

例如，下列`detections`陣列指出 Macie 在 CSV 檔案中發現三個敏感資料 （美國社會安全號碼） 出現的位置。

```
"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 *會使用深度優先搜尋*演算法，將 Macie 在 S3 物件中偵測到的 1-15 個敏感資料出現的位置資料填入產生的調查結果。這些出現表示受影響的 S3 儲存貯體和物件可能包含的敏感資料的類別和類型。

`occurrences` 物件可以包含下列任何結構，取決於受影響的 S3 物件的檔案類型或儲存格式：
+ `cells` 陣列 – 此陣列適用於 Microsoft Excel 工作手冊、CSV 檔案和 TSV 檔案。此陣列中的物件會指定 Macie 偵測到敏感資料的儲存格或欄位。
+ `lineRanges` 陣列 – 此陣列適用於電子郵件訊息 (EML) 檔案，以及 CSV、JSON、JSON Lines 和 TSV 檔案以外的非二進位文字檔案，例如 HTML、TXT 和 XML 檔案。此陣列中的物件會指定 Macie 偵測到出現敏感資料的行或包含行範圍，以及指定行或行上資料的位置。

  在某些情況下，`lineRanges`陣列中的物件會以另一種陣列支援的檔案類型或儲存格式指定敏感資料偵測的位置。這些案例包括：在結構化檔案的非結構化區段中偵測，例如檔案中的註解；Macie 分析為純文字的格式不正確檔案中的偵測；以及具有 Macie 偵測到敏感資料之一或多個資料欄名稱的 CSV 或 TSV 檔案。
+ `offsetRanges` array – 此陣列保留供日後使用。如果此陣列存在，則其值為 null。
+ `pages` 陣列 – 此陣列適用於 Adobe 可攜式文件格式 (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` 物件中每個欄位的用途。


| 欄位 | Type | Description | 
| --- | --- | --- | 
| cellReference | String | 儲存格的位置，做為絕對儲存格參考，其中包含出現的情況。此欄位僅適用於 Excel 工作手冊。CSV 和 TSV 檔案的此值為 null。 | 
| column | Integer | 包含出現的欄的欄編號。對於 Excel 工作手冊，此值與欄識別符的字母字元 （例如1欄 A、2欄 B 等） 相關。 | 
| columnName | String | 如果可用，包含出現的欄名稱。 | 
| row | Integer | 包含出現之資料列的資料列編號。 | 

下列範例顯示 `Cell` 物件的結構，指定 Macie 在 CSV 檔案中偵測到的敏感資料出現的位置。

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

在上述範例中，調查結果指出 Macie 在 檔案第三欄 （命名為 *SSN*) 的第五列的 欄位中偵測到敏感資料。

下列範例顯示 `Cell` 物件的結構，指定 Macie 在 Excel 工作手冊中偵測到的敏感資料出現的位置。

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

在上述範例中，調查結果指出 Macie 在工作手冊中偵測到名為 *Sheet2* 的工作表中的敏感資料。在該工作表中，Macie 偵測到第三欄 （欄 C，名為 *SSN*) 第五列儲存格中的敏感資料。

### LineRanges 陣列
<a name="findings-locate-sd-schema-examples-linerange"></a>

**適用於：**電子郵件訊息 (EML) 檔案，以及 CSV、JSON、JSON Lines 和 TSV 檔案以外的非二進位文字檔案，例如 HTML、TXT 和 XML 檔案

在`lineRanges`陣列中，`Range`物件會指定 Macie 偵測到出現敏感資料的行或包含行範圍，以及指定行或行上資料的位置。

對於物件中其他陣列類型支援的檔案類型，此`occurrences`物件通常是空的。例外狀況包括：
+ 其他結構化檔案的非結構化區段中的資料，例如檔案中的註解。
+ Macie 分析為純文字的格式錯誤檔案中的資料。
+ CSV 或 TSV 檔案，具有 Macie 偵測到敏感資料的一或多個資料欄名稱。

下表說明`lineRanges`陣列`Range`物件中每個欄位的用途。


| 欄位 | Type | 說明 | 
| --- | --- | --- | 
| end | Integer | 從檔案開頭到出現結束的行數。 | 
| start | Integer | 從檔案開頭到出現開頭的行數。 | 
| startColumn | Integer | 包含出現次數 (start) 的第一行開頭到出現次數開頭的字元數，以空格開頭，從 1 開始。 | 

下列範例顯示 `Range` 物件的結構，指定 Macie 在 TXT 檔案的單一行上偵測到的敏感資料出現的位置。

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

在上述範例中，調查結果指出 Macie 偵測到檔案第一行完全出現敏感資料 （郵寄地址）。出現的第一個字元是從該行開頭開始的 119 個字元 （含空格）。

下列範例顯示 `Range` 物件的結構，指定 TXT 檔案中跨越多行之敏感資料出現的位置。

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

在上述範例中，調查結果指出 Macie 偵測到的敏感資料 （郵寄地址） 橫跨檔案的第 51 行到第 54 行。出現的第一個字元是檔案第 51 行的第一個字元。

### 頁面陣列
<a name="findings-locate-sd-schema-examples-page"></a>

**適用於：**Adobe 可攜式文件格式 (PDF) 檔案

在`pages`陣列中，`Page`物件會指定 Macie 偵測到敏感資料的頁面。物件包含 `pageNumber` 欄位。`pageNumber` 欄位會存放整數，指定包含出現的頁面的頁碼。

下列範例顯示 `Page` 物件的結構，指定 Macie 在 PDF 檔案中偵測到的敏感資料出現的位置。

```
"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` 物件中每個欄位的用途。


| 欄位 | Type | Description | 
| --- | --- | --- | 
| jsonPath | String | 出現的路徑，做為 JSONPath 表達式。<br />對於 Avro 物件容器或 Parquet 檔案，這是記錄 (`recordIndex`) 中包含出現的 欄位的路徑。對於 JSON 或 JSON Lines 檔案，這是包含出現的欄位或陣列路徑。如果資料是陣列中的值，路徑也會指出哪個值包含出現的次數。<br />如果 Macie 偵測到路徑中任何元素名稱中的敏感資料，Macie 會從`Record`物件省略 `jsonPath` 欄位。如果路徑元素的名稱超過 240 個字元，Macie 會透過從名稱開頭移除字元來截斷名稱。如果產生的完整路徑超過 250 個字元，Macie 也會截斷路徑，從路徑中的第一個元素開始，直到路徑包含 250 個或更少的字元。 | 
| recordIndex | Integer | 對於 Avro 物件容器或 Parquet 檔案，記錄索引會從 0 開始，針對包含出現次數的記錄。對於 JSON Lines 檔案，從 0 開始的行索引包含出現的行。此值一律0適用於 JSON 檔案。 | 

下列範例顯示`Record`物件的結構，指定 Macie 在 Parquet 檔案中偵測到的敏感資料出現的位置。

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

在上述範例中，調查結果指出 Macie 偵測到索引 7663 記錄中的敏感資料 （記錄編號 7664)。在該記錄中，Macie 在名為 的 欄位中偵測到敏感資料`abcdefghijklmnopqrstuvwxyz`。記錄中 欄位的完整 JSON 路徑為 `$.abcdefghijklmnopqrstuvwxyz`。欄位是根 （外部層級） 物件的直接子系。

下列範例也會顯示 `Record` Macie 在 Parquet 檔案中偵測到的敏感資料的物件結構。不過，在此範例中，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
   }
]
```

在上述範例中，調查結果指出 Macie 偵測到索引 2335 記錄中的敏感資料 （記錄編號 2336)。在該記錄中，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']`

下列範例顯示`Record`物件的結構，指定 Macie 在 JSON 檔案中偵測到的敏感資料出現的位置。在此範例中， 的出現是陣列中的特定值。

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

在上述範例中，調查結果指出 Macie 在名為 的陣列的第二個值中偵測到敏感資料`key`。陣列是名為 之物件的子項`access`。

下列範例顯示`Record`物件的結構，指定 Macie 在 JSON Lines 檔案中偵測到的敏感資料出現的位置。

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

在上述範例中，調查結果指出 Macie 在 檔案的第三個值 （行） 中偵測到敏感資料。在該行中，出現在名為 的欄位中`key`，該欄位是名為 之物件的子項`access`。