使用機密資料保護功能,在大規模資料集中去識別化和重新識別個人識別資訊

Last reviewed 2024-06-07 UTC

本文說明如何使用 Sensitive Data Protection 建立自動化資料轉換管道,以便將個人識別資訊 (PII) 等機密資料去識別化。此外,Cloud DLP 也提供權杖化 (匿名化) 等去識別化功能,可協助您對原始的機密識別資訊進行模糊處理,藉此降低資料處理風險,同時保留資料的實用性,方便您執行資料彙整或分析作業。為盡量降低處理大量機密資料的風險,您可以建立自動化資料轉換管道,以便建立去識別化副本。Sensitive Data Protection 可執行遮蓋、遮蔽、代碼化、特徵分塊等轉換,以及其他去識別化方法。如果資料集尚未分類,Sensitive Data Protection 也可以使用超過 100 個內建分類器檢查資料中的機密資訊。

本文適用於負責資料安全、資料處理或資料分析的技術人員。本指南假設您熟悉資料處理和資料隱私權,但不必是專家。

參考架構

下圖顯示參考架構,說明如何使用Google Cloud 產品,透過去識別化技術為機密資料集新增安全層。

去識別化管道架構、設定管理和重新識別管道。

此架構包含下列項目:

  • 資料去識別化串流管道:使用 Dataflow 將文字中的機密資料去識別化。您可以重複使用管道,進行多項轉換和用途。

  • 設定 (私密資料保護範本和金鑰) 管理:受管理的去識別化設定,只有少數人 (例如安全性管理員) 可以存取,避免去識別化方法和加密金鑰外洩。

  • 資料驗證和重新識別管道:驗證去識別化資料的副本,並使用 Dataflow 管道大規模重新識別資料。

協助保護機密資料

確保使用者和員工的資料安全,是所有企業的重要任務之一。 Google Cloud 提供內建安全防護措施,包括儲存資料加密和傳輸中資料加密,有助於確保資料安全。

靜態資料加密:Cloud Storage

對大多數機構而言,維護資料安全至關重要。即使是中度機密資料遭到未經授權的存取,也可能損害您與顧客之間的信任、關係和信譽。Google 預設會加密儲存的靜態資料。根據預設,上傳至 Cloud Storage 值區的任何物件都會使用 Google-owned and Google-managed encryption key 加密。如果資料集使用預先存在的加密方法,且上傳前需要非預設選項,Cloud Storage 也提供其他加密選項。詳情請參閱「資料加密選項」。

傳輸中資料加密:Dataflow

資料在傳輸過程中,不會受到靜態加密保護。 傳輸中的資料會受到安全網路通訊協定保護,也就是所謂的「傳輸中加密」。根據預設,Dataflow 會使用 Google-owned and Google-managed encryption keys。與本文件相關的教學課程使用自動化管道,該管道會使用預設 Google-owned and Google-managed encryption keys。

Sensitive Data Protection 資料轉換

Sensitive Data Protection 執行的轉換主要有兩種類型:

recordTransformationsinfoTypeTransformations 方法都能將資料中的機密資訊去識別化及加密。舉例來說,您可以轉換 US_SOCIAL_SECURITY_NUMBER 欄中的值,使其無法識別,或使用代碼化功能遮蓋該欄,同時維持參照完整性。

您可以使用 infoTypeTransformations 方法檢查私密資料,並轉換結果。舉例來說,如果您有非結構化或任意文字資料,infoTypeTransformations 方法可協助您找出句子中的 SSN,並加密 SSN 值,同時保留其餘文字。您也可以定義自訂 infoTypes 方法。

使用結構化或表格資料時,您可以使用 recordTransformations 方法,為每個欄位套用轉換設定。使用 recordTransformations 方法,您可以在該欄位中的每個值套用相同轉換,例如使用 SSN 資料欄做為欄位或標題名稱,對資料欄中的每個值進行雜湊或權杖化。

您也可以使用 recordTransformations 方法,混用僅適用於指定欄位值的 infoTypeTransformations 方法。舉例來說,您可以在名為 comments 的欄位中使用 infoTypeTransformations 方法,在欄位中的文字內找到 US_SOCIAL_SECURITY_NUMBER 的任何發現項目,並透過 recordTransformations 方法將這些項目遮蓋。

去識別化程序按複雜程度排序如下:

  • 遮蓋:移除機密內容,但不取代內容。
  • 遮蔽:將私密內容替換為固定字元。
  • 加密:將機密內容替換為加密字串,可能可逆。

使用分隔符號分隔的資料

通常,資料是由以所選字元分隔的記錄組成,且每個資料欄都有固定類型,例如 CSV 檔案。對於這類資料,您可以直接套用去識別化轉換 (recordTransformations),不必檢查資料。舉例來說,標示為 SSN 的資料欄應只包含 SSN 資料。您不需要檢查資料,就能知道 infoType 偵測器是 US_SOCIAL_SECURITY_NUMBER。不過,標示為 Additional Details 的任意形式資料欄可能含有機密資訊,但 infoType 類別事先未知。如果是任意形式的資料欄,您必須先檢查 infoTypes 偵測器 (infoTypeTransformations),再套用去識別化轉換。Sensitive Data Protection 允許這兩種轉換類型共存於單一去識別化範本。Sensitive Data Protection 包含超過 100 個內建偵測器infoTypes。您也可以建立自訂類型或修改內建infoTypes偵測工具,找出貴機構特有的機密資料。

判斷轉換類型

決定何時使用 recordTransformationsinfoTypeTransformations 方法取決於您的用途。由於使用 infoTypeTransformations 方法需要更多資源,因此成本較高,建議只在資料類型不明時使用此方法。您可以使用 Google Cloud Pricing Calculator 評估執行 Sensitive Data Protection 的費用。

如需轉換範例,本文會參考包含固定欄 CSV 檔案的資料集,如下表所示。

資料欄名稱 檢查 infoType (自訂或內建) Sensitive Data Protection 轉換類型
Card Number 不適用 確定性加密 (DE)
Card Holder's Name 不適用 確定性加密 (DE)
Card PIN 不適用 加密雜湊
SSN (Social Security Number) 不適用 遮罩
Age 不適用 資料分組
Job Title 不適用 資料分組
Additional Details 內建:
IBAN_CODEEMAIL_ADDRESSPHONE_NUMBER
自訂:
ONLINE_USER_ID
替換

下表列出資料欄名稱,並說明每個資料欄需要哪種轉換。舉例來說,Card Number 資料欄含有需要加密的信用卡號碼,但不需要檢查,因為資料類型 (infoType) 已知。

建議進行檢查轉換的唯一資料欄是 Additional Details 欄。這個資料欄是任意格式,可能含有 PII,就本例而言,應偵測並去識別化。

下表中的範例呈現五種不同的去識別化轉換:

  • 雙向代碼化:將原始資料替換為確定性代碼,並保留參照完整性。您可以使用權杖聯結資料,或在匯總分析中使用權杖。您可以使用建立權杖時使用的相同金鑰,還原或取消權杖化資料。雙向權杖化有兩種方法:

    • 決定性加密 (DE): 將原始資料替換為以 Base64 編碼的加密值,且不會保留原始字元集或長度。
    • 格式保留加密與 FFX (FPE-FFX):使用 FFX 模式的格式保留加密產生代碼,並將原始資料替換為這個代碼。根據設計,FPE-FFX 會保留輸入文字的長度和字元集。這個演算法缺少驗證和初始化向量,可能導致輸出權杖的長度擴充。除非長度和字元集保留是嚴格要求 (例如與舊版資料系統向後相容),否則建議使用 DE 等其他方法,因為這些方法可提供更強大的安全性,適合用於權杖化。
  • 單向代碼化 (使用加密雜湊):將原始值替換為雜湊值,同時保留參照完整性。不過,與雙向權杖化不同,單向方法無法復原。雜湊值是使用以 SHA-256 為基礎的訊息驗證碼 (HMAC-SHA-256) 對輸入值產生。

  • 遮蔽: 將原始資料部分或全部替換為指定字元。

  • 特徵分塊: 將較容易識別的值替換為較不顯眼的值。

  • 取代: 如果系統偵測到原始資料,會以權杖或 infoType 名稱取代。

選取方法

選擇最佳去識別化方法時,請考量您的用途。舉例來說,如果舊版應用程式正在處理去識別化記錄,保留格式可能就很重要。如果您處理的是格式嚴謹的 10 位數,FPE 會保留輸入內容的長度 (10 位數) 和字元集 (數字),以支援舊版系統。

不過,如果不需要嚴格的格式設定來確保舊版相容性 (例如 Card Holder's Name 欄中的值),則建議使用 DE,因為 DE 的驗證方法較為嚴謹。FPE 和 DE 都可讓權杖還原或取消權杖化。如果不需要去權杖化,加密雜湊可提供完整性,但權杖無法還原。

其他方法 (例如遮蓋、分組日期偏移和替換) 則適合不需要保留完整性的值。舉例來說,將年齡值 (例如 27) 分組到年齡範圍 (20-30) 後,仍可進行分析,同時降低可能導致識別個人的獨特性。

權杖加密金鑰

如要進行加密去識別化轉換,必須使用加密金鑰 (又稱為「權杖加密金鑰」)。用於去識別化加密的代碼加密金鑰,也會用於重新識別原始值。本文件不討論如何安全地建立及管理符記加密金鑰。不過,請務必考量一些重要原則,這些原則會在相關聯的教學課程中用到:

  • 請勿在範本中使用純文字金鑰。請改用 Cloud KMS 建立包裝金鑰
  • 為每個資料元素使用不同的權杖加密金鑰,降低金鑰遭盜用的風險。
  • 輪替權杖加密金鑰。雖然您可以輪替包裝金鑰,但輪替權杖加密金鑰會破壞權杖化的完整性。金鑰輪替後,您必須重新權杖化整個資料集。

Sensitive Data Protection 範本

如要大規模部署,請使用 Sensitive Data Protection 範本完成下列事項:

  • 使用 Identity and Access Management (IAM) 啟用安全控管。
  • 將設定資訊和去識別化方式與要求的實作分離。
  • 重複使用一組轉換。您可以在多個資料集上使用去識別化和重新識別範本。

BigQuery

參考架構的最後一個元件,是在 BigQuery 中查看及處理去識別化資料。BigQuery 是 Google 的資料倉儲工具,內含無伺服器基礎架構、BigQuery ML,以及將 Sensitive Data Protection 做為原生工具執行的功能。在範例參考架構中,BigQuery 可做為去識別化資料的資料倉儲,以及自動重新識別資料管道的後端,透過 Pub/Sub 分享資料。

後續步驟