將 Secret Manager 與 Google SecOps 整合
本文說明如何將 Secret Manager 與 Google Security Operations 整合。
用途
Secret Manager 整合功能運用 Google SecOps 的功能,支援下列用途:
- 集中管理憑證:將 Google SecOps 設定檔和指令碼中嵌入的硬式編碼應用程式憑證,集中儲存、稽核及管理在 Google Cloud中,即可消除這些憑證。
- 同步處理參數:使用背景同步工作,從 Google Cloud Secret Manager 擷取項目,並更新整合執行個體、連接器和工作,自動管理設定。
事前準備
在 Google SecOps 平台設定整合功能前,請按照下列步驟確認環境已設定完成:
- 建立服務帳戶。
- 為專案啟用必要的 API。
- 選擇並設定下列其中一種驗證方式:
- 方法 1:JSON 金鑰:這個方法仰賴靜態、只有在環境不支援 Workload Identity 時,才應使用這個方法。
- 選項 2:Workload Identity (建議):這個方法會使用服務帳戶模擬功能,產生短期臨時存取權杖,因此不需要儲存任何密鑰。
建立服務帳戶
如要為整合作業建立服務帳戶,請完成下列步驟:
在 Google Cloud 控制台,依序前往 「IAM & Admin」(IAM 與管理) >「Service Accounts」(服務帳戶),然後選取專案。
按一下「建立服務帳戶」。
提供名稱和說明,然後按一下「完成」建立帳戶。
根據您選擇的驗證方式,將必要的 IAM 權限授予服務帳戶:
- 如要使用服務帳戶金鑰驗證,請授予下列角色:
- Secret Manager Secret Accessor (
roles/secretmanager.secretAccessor):允許整合功能存取密鑰酬載。 - Secret Manager 檢視者 (
roles/secretmanager.viewer),*提供secretmanager.secrets.list權限,以便執行 Ping 動作來測試連線能力*。
- Secret Manager Secret Accessor (
- Workload Identity 驗證:
- 將「Secret Manager 密鑰存取者」 (
roles/secretmanager.secretAccessor) 和「Secret Manager 檢視者」 (roles/secretmanager.viewer) 角色,授予要模擬的目標服務帳戶。 - 確認執行階段環境身分具備服務帳戶權杖建立者 (
roles/iam.serviceAccountTokenCreator) 角色。
- 將「Secret Manager 密鑰存取者」 (
- 如要使用服務帳戶金鑰驗證,請授予下列角色:
為專案啟用必要的 API
在 Google Cloud 控制台中,前往「APIs & Services」(API 與服務)。
點選「啟用 API 和服務」。
搜尋並啟用專案的 Secret Manager API。
設定 JSON 金鑰
您可以使用靜態 JSON 金鑰檔案或 Workload Identity 驗證整合。為盡可能提高環境安全性,請使用 Workload Identity 方法。只有在基礎架構不支援 Workload Identity 時,才使用 JSON 金鑰方法,因為靜態金鑰需要手動輪替,且會增加憑證外洩風險。
如要產生驗證整合所需的 JSON 金鑰檔案,請完成下列步驟:
在 Google Cloud 控制台中,依序前往 「IAM & Admin」(IAM 與管理) >「Service Accounts」(服務帳戶),然後選取您建立的服務帳戶 。
前往「金鑰」分頁。
按一下「Add key」。
選取「建立新的金鑰」。
選取「JSON」做為金鑰類型,然後按一下「建立」。JSON 檔案會下載到您的電腦。
複製這個檔案的完整內容,並在整合設定期間貼到
Service Account JSON。
設定 Secret Manager 權限
請按照下列程序授予管理員權限,讓整合功能存取 Secret 資料,並驗證 Google Cloud 專案中的連線能力:
- 在 Google Cloud 控制台,依序前往「IAM & Admin」(IAM 與管理) >「IAM」。
- 在主體清單中找出您建立的服務帳戶,然後按一下「編輯」。
- 按一下 [Add another role] (新增其他角色)。
- 在角色選取欄位中,搜尋並選取下列角色:
- 按一下 [儲存]。
設定 Workload Identity 憑證
請選擇這個方法或 JSON 金鑰方法來驗證整合。Workload Identity 是建議採用的做法,安全性也較高,因為這項功能會使用服務帳戶模擬功能,產生短期的臨時存取權杖,盡可能降低長期密鑰憑證外洩的風險。
找出專屬執行個體身分
如要使用 Workload Identity,您必須授予 Google SecOps 執行個體權限,才能模擬服務帳戶。這個步驟可讓執行個體安全存取 Google Cloud 資源。
在 Google SecOps 中,依序前往 「Content Hub」 >「Response Integrations」。
選取要設定的整合項目,然後在
Workload Identity Email輸入服務帳戶電子郵件。依序點選「儲存」 > 「測試」。測試預計會失敗。
按一下「Test」(測試) 右側的 close_small,然後在錯誤訊息中搜尋以
gke-init-python@...或soar-python@...開頭的身分電子郵件。複製這個專屬電子郵件地址。
在 Google Cloud中授權執行個體身分
取得 Google SecOps 執行個體的專屬身分後,您必須授權該身分存取 Google Cloud 資源。這個步驟會啟用服務帳戶模擬功能,讓平台產生短期權杖,並代表您執行操作,不需使用靜態金鑰。
在 Google Cloud 控制台,依序前往 「IAM & Admin」(IAM 與管理) >「Service Accounts」(服務帳戶)。
選取目標服務帳戶,然後依序前往 「Permissions」(權限) >「Grant Access」(授予存取權)。
將不重複的電子郵件地址貼到「New principals」(新增主體) 欄位,並指派「Service Account Token Creator」(服務帳戶權杖建立者) 角色 (
roles/iam.serviceAccountTokenCreator)。
整合參數
Secret Manager 整合功能需要下列設定參數:
| 參數 | 說明 |
|---|---|
Service Account JSON |
選填。 服務帳戶金鑰 JSON 檔案的內容,用於向 Secret Manager 進行驗證。 您可以設定這個參數或 Workload Identity 電子郵件。 |
Project ID |
選填。 儲存密鑰的 Google Cloud 專案 ID。 如未提供任何值,整合功能會嘗試從 |
Workload Identity Email |
選填。 使用 Workload Identity (應用程式預設憑證) 進行驗證時,要模擬的服務帳戶電子郵件地址。 如果 Google SecOps 平台或遠端代理程式在 Google Cloud 中執行,且已啟用 Workload Identity,請使用這項設定,而非 |
Verify SSL |
這是必填欄位。 如果選取這個選項,整合功能會在建立 Secret Manager 連線時,驗證 SSL 憑證。 預設為啟用 ( |
如要瞭解如何在 Google SecOps 中設定整合功能,請參閱「設定整合功能」。
如有需要,您可以在後續階段進行變更。設定整合執行個體後,即可在應對手冊中使用。如要進一步瞭解如何設定及支援多個執行個體,請參閱「支援多個執行個體」。
動作
如要進一步瞭解動作,請參閱「 在工作區回應待處理動作」和「在案件中執行手動動作」。
乒乓
使用 Ping 動作驗證連線能力,並根據目標 Secret Manager 執行個體驗證設定參數。
這項動作主要用於從 Content Hub 的整合設定頁面立即測試連線,不會對個別 Google Cloud 實體執行。
動作輸入內容
這項動作不需要輸入參數。
動作輸出內容
Ping 動作會提供下列輸出內容:
| 動作輸出類型 | 可用性 |
|---|---|
| 案件總覽附件 | 無法使用 |
| 案件總覽連結 | 無法使用 |
| 案件總覽表格 | 無法使用 |
| 補充資訊表格 | 無法使用 |
| JSON 結果 | 無法使用 |
| 輸出訊息 | 可用 |
| 指令碼執行結果 | 可用 |
輸出訊息
Ping 動作可能會傳回下列輸出訊息:
| 輸出訊息 | 訊息說明 |
|---|---|
|
操作成功,憑證有效。 |
Failed to connect to Secret Manager! Error is
ERROR_REASON |
動作失敗。 請檢查驗證憑證、專案 ID 設定、IAM 權限或網路連線。確認服務帳戶具備 |
指令碼執行結果
下表列出使用 Ping 動作時,指令碼結果輸出的值:
| 指令碼結果名稱 | 值 |
|---|---|
is_success |
true或false |
工作
如要進一步瞭解工作,請參閱「 設定新工作」和「 進階排程」。
同步處理整合憑證工作
使用 Secret Manager - 同步整合憑證工作,系統會同步 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 專業人員尋求解答。