報告敏感資料位置的結構描述 - Amazon Macie

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

報告敏感資料位置的結構描述

Amazon Macie 使用標準化JSON結構來存放有關在 Amazon Simple Storage Service (Amazon S3) 物件中尋找敏感資料之位置的相關資訊。這些結構是由敏感資料發現項目和敏感資料探索結果所使用。對於敏感資料發現項目,這些結構是發現項目結構JSON描述的一部分。若要檢閱發現項目的完整結JSON構描述,請參閱 Amazon Macie API 參考中的現項目。若要進一步瞭解敏感資料探索結果,請參閱儲存及保留敏感資料探索結果

綱要概觀

為了報告 Amazon Macie 在受影響 S3 物件中找到的敏感資料的位置,敏感資料發現項目和敏感資料探索結果的結JSON構描述包括一個customDataIdentifiers物件和一個sensitiveData物件。customDataIdentifiers物件提供 Macie 使用自訂資料識別碼偵測到的資料的詳細資料。該sensitiveData對象提供有關 Macie 使用託管數據標識符檢測到的數據的詳細信息。

每個customDataIdentifierssensitiveData物件都包含一或多個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 偵測到敏感資料出現的儲存格或欄位。

  • lineRangesarray — 此陣列適用於電子郵件訊息 (EML) 檔案,以及、、JSON行和檔案以外CSV的非二進位文字TSV檔案,例如、HTMLTXT、和檔案。JSON XML此陣列中的物件會指定 Macie 偵測到敏感資料中出現的行或包含的行範圍,以及資料在指定一行或多行上的位置。

    在某些情況下,lineRanges陣列中的物件會以另一種陣列類型所支援的檔案類型或儲存格式,指定敏感資料偵測的位置。這些情況包括:偵測其他結構化檔案的非結構化區段,例如檔案中的註解;在 Macie 以純文字分析的格式錯誤檔案中偵測;以及具有一或多個資料行名稱的CSV或TSV檔案,Macie 在其中偵測到敏感資料。

  • offsetRangesarray-該數組保留供 future 使用。如果這個數組存在,它的值為 null。

  • pages陣列 — 此陣列適用於 Adobe 可攜式文件格式 (PDF) 檔案。此陣列中的物件會指定 Macie 偵測到敏感資料出現的頁面。

  • records陣列 — 此陣列適用於 Apache Avro 物件容器、Apache 的拼花檔JSON案、檔案和JSON行檔案。對於 Avro 物件容器和 Parquet 檔案,此陣列中的物件會指定記錄索引,以及 Macie 偵測到其中出現敏感資料的記錄中欄位路徑。對於JSON和 L JSON ines 檔案,此陣列中的物件會指定 Macie 偵測到其中出現敏感資料之欄位或陣列的路徑。對於 L JSON ines 文件,它還指定包含數據的行的索引。

這些陣列的內容會根據受影響的 S3 物件的檔案類型或儲存格式及其內容而有所不同。

架構詳細資料和範例

Amazon Macie 會調整其使用的JSON結構內容,以指出在特定類型檔案和內容中偵測到敏感資料的位置。下列主題說明並提供這些結構的範例。

如需可包含在敏感資料尋找項目中的完整JSON結構清單,請參閱 Amazon Macie API 參考中的發現項目

儲存格陣列

適用於:Microsoft Excel 工作簿、CSV檔案和TSV檔案

cells陣列中,Cell物件會指定 Macie 偵測到敏感資料出現的儲存格或欄位。下表說明Cell物件中每個欄位的用途。

欄位 Type 描述
cellReference 字串 儲存格的位置,做為絕對儲存格參照,其中包含複本。此欄位僅適用於 Excel 活頁簿。對於CSV和TSV檔案,此值為空值。
column Integer 包含複本之欄的欄編號。對於 Excel 活頁簿,此值與欄識別碼的字母字元相關聯,例如,1對於欄 A、2欄 B 等。
columnName 字串 包含複本的欄名稱 (如果有的話)。
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陣列

套用至:電子郵件訊息 (EML) 檔案,以及、、JSON行和檔案以外CSV的非二進位文字TSV檔案 — 例如、HTML、TXT和檔案 JSON XML

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

對於物件中其他類型陣列所支援的檔案類型,此occurrences物件通常是空白的。例外情況是:

  • 其他結構化檔案的非結構化區段中的資料,例如檔案中的註解。

  • Macie 以純文字分析的格式錯誤檔案中的資料。

  • 具有一個CSV或多個列名的或TSV文件,Macie 在其中檢測到敏感數據。

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

欄位 Type 描述
end Integer 從檔案開頭到出現位置結束的行數。
start Integer 從檔案開頭到出現位置開始的行數。
startColumn Integer 包含空格且從 1 開始的字元數目,從包含出現位置的第一行開始到出現位置的開頭。start

下列範例顯示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 行的第一個字符。

頁面陣列

套用至:Adobe 可攜式文件格式 (PDF) 檔案

pages陣列中,Page物件會指定 Macie 偵測到敏感資料出現的頁面。該對象包含一個pageNumber字段。此pageNumber欄位會儲存整數,指定包含具體值之頁面的頁碼。

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

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

在上述範例中,發現項目指出檔案的第 10 頁包含具體值。

記錄陣列

適用於:Apache 的 Avro 對象容器,阿帕奇實木複合地板文件,JSON文件和JSON行文件

對於 Avro 物件容器或 Parquet 檔案,records陣列中的Record物件會指定記錄索引,以及 Macie 偵測到敏感資料出現的記錄中欄位的路徑。對於JSON和 L JSON ines 檔案,Record物件會指定 Macie 偵測到敏感資料出現的欄位或陣列的路徑。對於 L JSON ines 文件,它還指定包含出現位置的行的索引。

下表說明Record物件中每個欄位的用途。

欄位 Type 描述
jsonPath 字串

出現位置的路徑 (做為JSONPath表示式)。

對於 Avro 物件容器或實木地板檔案,這是記錄 (recordIndex) 中包含出現位置的欄位路徑。對於JSON或 L JSON ines 檔案,這是包含出現位置之欄位或陣列的路徑。如果資料是陣列中的值,路徑也會指出包含出現次數的值。

如果 Macie 偵測到路徑中任何元素名稱中的敏感資料,Macie 就會忽略物件中的jsonPath欄位。Record如果路徑元素的名稱超過 240 個字元,Macie 會從名稱開頭移除字元來截斷名稱。如果產生的完整路徑超過 250 個字元,Macie 也會從路徑中的第一個元素開始截斷路徑,直到路徑包含 250 個或更少的字元為止。

recordIndex Integer 對於 Avro 物件容器或實木地板檔案,記錄索引,從 0 開始,用於包含發生次數的記錄。對於 L JSON ines 檔案,包含出現位置的行索引 (從 0 開始)。此值永遠適0用於JSON檔案。

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

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

在上述範例中,發現項目表示 Macie 偵測到索引 7663 記錄中的敏感資料 (記錄編號 7664)。在該記錄中,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 } ]

在上述範例中,發現結果表示 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 在 L JSON ines 檔案中偵測到的敏感資料出現位置。

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

在上述範例中,發現項目表示 Macie 偵測到檔案中第三個值 (行) 中的機密資料。在該行中,出現位置位於名為的字段中key,該字段是名為的對象的子項access