本文說明如何使用 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 掃描功能:
- 前往要啟用 Secret 掃描功能的存放區。
- 按一下「設定」圖示。
- 找出「Secret scanning」切換鈕。
- 將切換鈕設為「開啟」。
- 選用:在「Inspection template」(檢查範本) 欄位中,輸入 Sensitive Data Protection 檢查範本的資源名稱。
- 按一下 [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 替換為要合併的分支版本名稱。