將 Secret Manager 與 Google SecOps 整合
本文說明如何整合 Secret Manager 與 Google Security Operations。
用途
Secret Manager 整合功能會使用 Google SecOps 功能,支援下列用途:
- 集中管理憑證:在 Google Cloud中集中儲存、稽核及管理憑證,即可消除 SOAR 設定檔和指令碼中內嵌的應用程式憑證。
- 同步處理參數:使用背景同步處理工作從 Google Cloud Secret Manager 擷取項目,並更新整合執行個體、連接器和工作,自動管理設定。
事前準備
在 Google SecOps 平台中設定整合功能前,請先按照下列步驟設定環境:
- 建立服務帳戶。
- 為專案啟用必要的 API。
- 選擇並設定下列其中一種驗證方法:
- 方法 1:JSON 金鑰:這個方法會使用靜態的長期有效密鑰檔案。只有在您的環境無法使用 Workload Identity 時,才使用這個方法。
- 做法 2:Workload Identity (建議):這個方法會使用服務帳戶模擬功能,產生短期臨時存取權杖,因此不需要儲存任何密鑰。
建立服務帳戶
如要為整合服務建立服務帳戶,請完成下列步驟:
在 Google Cloud 控制台中,依序前往「IAM & Admin」(IAM 與管理) >「Service Accounts」(服務帳戶),然後選取專案。
按一下「建立服務帳戶」。
提供名稱和說明,然後按一下「完成」建立帳戶。
根據所選驗證方式,授予服務帳戶必要的 IAM 權限:
- 如要使用服務帳戶金鑰進行驗證,請授予「Secret Manager 密鑰存取者」 (
roles/secretmanager.secretAccessor) 角色。 - 如要進行 Workload Identity 驗證,請將 Secret Manager 密鑰存取者 (
roles/secretmanager.secretAccessor) 角色授予要模擬的目標服務帳戶,並確保執行階段環境的身分具備服務帳戶權杖建立者 (roles/iam.serviceAccountTokenCreator) 角色。
- 如要使用服務帳戶金鑰進行驗證,請授予「Secret Manager 密鑰存取者」 (
為專案啟用必要的 API
在 Google Cloud 控制台中,前往「APIs & Services」(API 與服務)。
點選「啟用 API 和服務」。
為專案搜尋並啟用下列 API:
設定 JSON 金鑰
您可以透過靜態 JSON 金鑰檔或 Workload Identity Federation 驗證整合。如要盡可能確保環境安全,請使用 Workload Identity 方法。只有在基礎架構不支援 Workload Identity 時,才使用 JSON 金鑰方法,因為靜態金鑰需要手動輪替,且會增加憑證曝光風險。
如要產生驗證整合功能所需的 JSON 金鑰檔案,請完成下列步驟:
在 Google Cloud 控制台中,依序前往「IAM & Admin」(IAM 與管理)>「Service Accounts」(服務帳戶),然後選取您建立的服務帳戶。
前往「金鑰」分頁標籤。
按一下「Add key」。
選取「建立新的金鑰」。
金鑰類型請選擇「JSON」,然後按一下「建立」。JSON 檔案會下載至您的電腦。
複製這個檔案的所有內容,並在整合設定期間貼到
Service Account JSON中。
設定 Secret Manager 權限
請按照下列程序,授予整合功能存取 Google Cloud 專案中儲存機密資料所需的管理權限:
- 在 Google Cloud 控制台中,依序前往「IAM & Admin」(IAM 與管理)>「IAM」(身分與存取權管理)。
- 在主體清單中找出您建立的服務帳戶,然後按一下「編輯」「編輯主體」。
- 按一下 [Add another role] (新增其他角色)。
- 在角色選取欄位中,搜尋並選取「Secret Manager Secret Accessor」。
- 按一下 [儲存]。
設定 Workload Identity 憑證
選擇這個方法或 JSON 金鑰方法,驗證整合服務。Workload Identity 是建議採用的安全做法,因為這項功能會使用服務帳戶模擬功能,產生短期臨時存取權杖,盡量降低長期機密憑證暴露的風險。
找出專屬執行個體 ID
如要使用 Workload Identity,您必須授予 Google SecOps 執行個體權限,模擬服務帳戶。這個步驟可讓執行個體安全存取 Google Cloud 資源。
- 在 Google SecOps 中,依序前往「Content Hub」>「Response Integrations」。
- 選取要設定的整合服務,然後在
Workload Identity Email欄位中輸入服務帳戶電子郵件地址。 - 依序點選「儲存」>「測試」。測試預計會失敗。
按一下「測試」右側的 close_small,然後搜尋以
gke-init-python@...或soar-python@...開頭的身分識別電子郵件地址錯誤訊息。複製這個專屬電子郵件地址,並在整合設定期間貼到
Workload Identity Email中。
在 Google Cloud中授權執行個體身分
取得 Google SecOps 執行個體的專屬 ID 後,您必須授權該 ID 存取 Google Cloud 資源。這個步驟會啟用服務帳戶模擬功能,讓平台產生短期權杖並代表您執行動作,無須使用靜態金鑰。
- 在 Google Cloud 控制台中,依序前往「IAM & Admin」(IAM 與管理)>「Service Accounts」(服務帳戶)。
- 選取目標服務帳戶,然後依序前往「權限」> 授予存取權。
- 將不重複的電子郵件地址貼到「New principals」(新增主體) 欄位。
- 指派「服務帳戶憑證建立者」角色。
整合參數
整合 Secret Manager 時,需要下列設定參數:
| 參數 | 說明 |
|---|---|
Service Account JSON |
選填。 用於向 Secret Manager 進行驗證的服務帳戶金鑰 JSON 檔案內容。 您可以設定這個參數或「Workload Identity 電子郵件」。 |
Project ID |
選填。 儲存密鑰的 Google Cloud 專案 ID。 如未提供,整合功能會嘗試從服務帳戶 JSON 推斷此值 (如有),但建議您明確指定。 |
Workload Identity Email |
選填。 透過 Workload Identity (應用程式預設憑證) 進行驗證時,要模擬的服務帳戶電子郵件地址。 如果 SOAR 平台或遠端代理程式在啟用 Workload Identity 的環境中執行,請使用這項設定,不要使用服務帳戶 JSON 參數。 Google Cloud |
Verify SSL |
必填。 如果選取這個選項,整合服務會在建立與 Secret Manager 的連線時,驗證 SSL 憑證。 預設為啟用 ( |
如需在 Google SecOps 中設定整合功能的操作說明,請參閱「設定整合功能」。
如有需要,您可以在稍後階段進行變更。設定整合執行個體後,您可以在應對手冊中使用該執行個體。如要進一步瞭解如何設定及支援多個執行個體,請參閱「支援多個執行個體」。
動作
如要進一步瞭解動作,請參閱「 從工作台回覆待處理動作」和「執行手動動作」。
Ping
使用「Ping」動作驗證連線,並根據目標 Secret Manager 執行個體驗證設定參數。
這項動作主要用於從 Marketplace 的整合設定頁面進行即時連線測試,不會在個別 Google Cloud 實體上執行。
動作輸入內容
這項動作不需要輸入參數。
動作輸出內容
「Ping」動作會提供下列輸出內容:
| 動作輸出類型 | 可用性 |
|---|---|
| 案件總覽附件 | 無法使用 |
| 案件總覽連結 | 無法使用 |
| 案件總覽表格 | 無法使用 |
| 補充資訊表 | 無法使用 |
| JSON 結果 | 無法使用 |
| 輸出訊息 | 可用 |
| 指令碼結果 | 可用 |
輸出訊息
「Ping」動作可能會傳回下列輸出訊息:
| 輸出訊息 | 訊息說明 |
|---|---|
|
動作成功,憑證有效。 |
Failed to connect to Secret Manager! Error is
ERROR_REASON |
動作失敗。 請檢查驗證憑證、專案 ID 設定、IAM 權限或網路連線。 |
指令碼結果
下表列出使用「Ping」動作時,指令碼結果輸出的值:
| 指令碼結果名稱 | 值 |
|---|---|
is_success |
true或false |
工作
同步處理整合憑證工作
使用 Secret Manager - Sync Integration Credentials Job,從 Secret Manager 項目系統性地同步處理設定參數,自動更新平台整合執行個體、連接器和背景工作設定。
這項背景同步工作會在全域運作,不會在個別實體上執行。
工作行為
這項工作會剖析結構化設定物件,以查詢密鑰定義,並處理兩種版本參照樣式:
- 隱含符號:格式為
projects/<project_id>/secrets/<secret_name>。 同步工作會在處理期間,動態解析並從 Secret Manager 擷取最新有效版本。 - 明確標記:格式為
projects/<project_id>/secrets/<secret_name>/versions/<version_id>。即使該項目的狀態在 Google Cloud中標示為非使用中,同步工作仍會擷取該確切的已釘選版本項目。
Secret Manager 內每個目標密碼路徑都必須包含有效的 JSON 物件字串,直接將參數鍵對應至各自的憑證值。
憑證對應設定範例
{
"integration_instances": {
"AzureActiveDirectory_1": {
"Client ID": "projects/154371241292/secrets/AzureActiveDirectory"
}
},
"connectors": {
"Crowdstrike - Alerts Connector": {
"Client Secret": "projects/154371241292/secrets/CrowdstrikeConnectorSecret",
"Client ID": "projects/154371241292/secrets/CrowdstrikeConnectorID"
},
"Microsoft Graph Mail Connector": {
"Client Secret": "projects/154371241292/secrets/GraphConnectorSecret",
"Client ID": "projects/154371241292/secrets/GraphConnectorID/versions/3"
}
},
"jobs": {
"Sync Incidents": {
"API Root": "projects/154371241292/secrets/API_Root/versions/2"
}
}
}
工作輸入內容
「同步整合憑證」工作需要下列設定參數:
| 參數 | 說明 |
|---|---|
Environment Name |
必填。 要查詢目標設定的環境內容名稱。 預設值為 |
Credential Mapping |
必填。 有效的 JSON 字串,用於建構目標位置,整合執行個體、連接器和工作會對應至明確的 Secret Manager 資源座標。 |
Service Account JSON |
選填。 專用於授權這項背景同步作業的服務帳戶金鑰 JSON 內容。 |
Project ID |
選填。 預設 Google Cloud 專案 ID 範圍,用於代管目標資源。 |
Workload Identity Email |
選填。 如果應用程式在啟用 Workload Identity 的 Google Cloud 基礎架構中執行,則為要模擬的應用程式預設憑證服務帳戶電子郵件。 |
Verify SSL |
必填。 在同步工作期間驗證 SSL 憑證端點。預設為啟用 ( |
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。