啟用密碼掃描功能

本文說明如何使用 Secure Source Manager 的整合式密鑰掃描功能,保護機密資訊。

Secure Source Manager 的 Secret 掃描功能可提升程式碼集安全性。這項工具會分析推送至存放區或透過提取要求合併的修訂版本,主動掃描應加密或移除的私密資訊。如果偵測到這類資料,Secret 掃描功能會自動拒絕推送或封鎖提取要求合併,防止不慎合併機密詳細資料。

Secure Source Manager 的 Secret 掃描功能會將下列類別的資訊視為機密:

  • 加密金鑰:包括 SSH 私密金鑰等項目。
  • AWS 憑證:Amazon Web Services 的存取金鑰和私密金鑰。
  • Google Cloud 憑證:服務帳戶金鑰和其他 Google Cloud 密鑰。
  • OAuth 用戶端密鑰:用於透過 OAuth 驗證應用程式的密鑰。
  • 密鑰:用於驗證或授權的機密金鑰。

啟用 Secret 掃描功能

請確認存放區已啟用下列角色和設定。

必要的角色

如要取得啟用 Secret 掃描功能所需的權限,請要求管理員授予您 Secure Source Manager 存放區的 Secure Source Manager 存放區管理員 (roles/securesourcemanager.repoAdmin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

這個預先定義的角色具備 securesourcemanager.repositories.update 權限,可啟用 Secret 掃描功能。

您或許還可透過自訂角色或其他預先定義的角色取得這項權限。

如要瞭解如何授予 Secure Source Manager 角色,請參閱「使用 IAM 控管存取權」和「授予使用者執行個體存取權」。

服務帳戶權限

如果將 Secret 掃描設定為使用自訂 Sensitive Data Protection 檢查範本,Secure Source Manager 使用的服務帳戶必須具備範本讀取權限 (例如 DLP 讀取者角色 roles/dlp.reader)。

  • 如果存放區已設定個別存放區服務帳戶,Secure Source Manager 只會使用該服務帳戶。您必須將範本讀取的權限授予各存放區服務帳戶。
  • 如未設定個別存放區服務帳戶,Secure Source Manager 會使用執行個體服務帳戶。

更新存放區設定

您可以透過 Secure Source Manager 介面,啟用存放區的 Secret 掃描功能:

  1. 前往要啟用 Secret 掃描功能的存放區。
  2. 按一下「設定」圖示。
  3. 找出「Secret scanning」切換鈕。
  4. 將切換鈕設為「開啟」。
  5. 選用:在「Inspection template」(檢查範本) 欄位中,輸入 Sensitive Data Protection 檢查範本的資源名稱。
  6. 按一下 [Update Settings] 按鈕。

使用 Secret 掃描功能

啟用 Secret 掃描功能後,系統會主動監控存放區的修訂版本。如果使用 Git 推送的修訂版本,或透過網頁介面中的提取要求合併的修訂版本,含有機密資訊,系統會拒絕修訂版本或封鎖合併。

從指令列推送時,您會收到錯誤訊息,指出存在機密資料。此時,您有兩種選擇:

還原變更

如要移除機密資訊,可以使用下列指令還原問題修訂版本:

git reset --soft COMMIT_ID

將 COMMIT_ID 替換為實際的修訂版本 ID。

由於 Git 會保留所有修訂版本的記錄,因此仍可從先前的修訂版本復原機密資料。如要避免這種情況,請使用 git reset --soft 指令。接著,修正檔案並再次提交,從分支版本的近期記錄中移除資料。

強制推送修訂版本 (略過密鑰掃描)

在特定情況下,如果偵測到的資訊可以接受,具備適當權限的使用者可以選擇略過 Secret 掃描檢查,並強制推送修訂版本。

git push -o dlpskip=true origin \
    BRANCH_NAME

將 BRANCH_NAME 替換為要合併的分支版本名稱。

後續步驟