將 Secret Manager 與 Google SecOps 整合

本文說明如何將 Secret Manager 與 Google Security Operations 整合。

用途

Secret Manager 整合功能運用 Google SecOps 的功能,支援下列用途:

  • 集中管理憑證:將 Google SecOps 設定檔和指令碼中嵌入的硬式編碼應用程式憑證,集中儲存、稽核及管理在 Google Cloud中,即可消除這些憑證。
  • 同步處理參數:使用背景同步工作,從 Google Cloud Secret Manager 擷取項目,並更新整合執行個體、連接器和工作,自動管理設定。

事前準備

在 Google SecOps 平台設定整合功能前,請按照下列步驟確認環境已設定完成:

  1. 建立服務帳戶。
  2. 為專案啟用必要的 API。
  3. 選擇並設定下列其中一種驗證方式:
    • 方法 1:JSON 金鑰:這個方法仰賴靜態、只有在環境不支援 Workload Identity 時,才應使用這個方法。
    • 選項 2:Workload Identity (建議):這個方法會使用服務帳戶模擬功能,產生短期臨時存取權杖,因此不需要儲存任何密鑰。

建立服務帳戶

如要為整合作業建立服務帳戶,請完成下列步驟:

  1. 在 Google Cloud 控制台,依序前往 「IAM & Admin」(IAM 與管理) >「Service Accounts」(服務帳戶),然後選取專案。

    前往「Service Accounts」(服務帳戶)

  2. 按一下「建立服務帳戶」。

  3. 提供名稱和說明,然後按一下「完成」建立帳戶。

  4. 根據您選擇的驗證方式,將必要的 IAM 權限授予服務帳戶:

    • 如要使用服務帳戶金鑰驗證,請授予下列角色:
      • Secret Manager Secret Accessor (roles/secretmanager.secretAccessor):允許整合功能存取密鑰酬載。
      • Secret Manager 檢視者 (roles/secretmanager.viewer),*提供 secretmanager.secrets.list 權限,以便執行 Ping 動作來測試連線能力*。
    • Workload Identity 驗證:
      • 將「Secret Manager 密鑰存取者」 (roles/secretmanager.secretAccessor) 和「Secret Manager 檢視者」 (roles/secretmanager.viewer) 角色,授予要模擬的目標服務帳戶。
      • 確認執行階段環境身分具備服務帳戶權杖建立者 (roles/iam.serviceAccountTokenCreator) 角色。

為專案啟用必要的 API

  1. 在 Google Cloud 控制台中,前往「APIs & Services」(API 與服務)。

    前往「API 與服務」頁面

  2. 點選「啟用 API 和服務」。

  3. 搜尋並啟用專案的 Secret Manager API。

設定 JSON 金鑰

您可以使用靜態 JSON 金鑰檔案或 Workload Identity 驗證整合。為盡可能提高環境安全性,請使用 Workload Identity 方法。只有在基礎架構不支援 Workload Identity 時,才使用 JSON 金鑰方法,因為靜態金鑰需要手動輪替,且會增加憑證外洩風險。

如要產生驗證整合所需的 JSON 金鑰檔案,請完成下列步驟:

  1. 在 Google Cloud 控制台中,依序前往 「IAM & Admin」(IAM 與管理) >「Service Accounts」(服務帳戶),然後選取您建立的服務帳戶 。

    前往「Service Accounts」(服務帳戶)

  2. 前往「金鑰」分頁。

  3. 按一下「Add key」。

  4. 選取「建立新的金鑰」。

  5. 選取「JSON」做為金鑰類型,然後按一下「建立」。JSON 檔案會下載到您的電腦。

  6. 複製這個檔案的完整內容,並在整合設定期間貼到 Service Account JSON。

設定 Secret Manager 權限

請按照下列程序授予管理員權限,讓整合功能存取 Secret 資料,並驗證 Google Cloud 專案中的連線能力:

  1. 在 Google Cloud 控制台,依序前往「IAM & Admin」(IAM 與管理) >「IAM」。
  2. 在主體清單中找出您建立的服務帳戶,然後按一下「編輯」。
  3. 按一下 [Add another role] (新增其他角色)。
  4. 在角色選取欄位中,搜尋並選取下列角色:
  5. 按一下 [儲存]。

設定 Workload Identity 憑證

請選擇這個方法或 JSON 金鑰方法來驗證整合。Workload Identity 是建議採用的做法,安全性也較高,因為這項功能會使用服務帳戶模擬功能,產生短期的臨時存取權杖,盡可能降低長期密鑰憑證外洩的風險。

找出專屬執行個體身分

如要使用 Workload Identity,您必須授予 Google SecOps 執行個體權限,才能模擬服務帳戶。這個步驟可讓執行個體安全存取 Google Cloud 資源。

  1. 在 Google SecOps 中,依序前往 「Content Hub」 >「Response Integrations」。

  2. 選取要設定的整合項目,然後在 Workload Identity Email 輸入服務帳戶電子郵件。

  3. 依序點選「儲存」 > 「測試」。測試預計會失敗。

  4. 按一下「Test」(測試) 右側的 close_small,然後在錯誤訊息中搜尋以 gke-init-python@... 或 soar-python@... 開頭的身分電子郵件。

  5. 複製這個專屬電子郵件地址。

在 Google Cloud中授權執行個體身分

取得 Google SecOps 執行個體的專屬身分後,您必須授權該身分存取 Google Cloud 資源。這個步驟會啟用服務帳戶模擬功能,讓平台產生短期權杖,並代表您執行操作,不需使用靜態金鑰。

  1. 在 Google Cloud 控制台,依序前往 「IAM & Admin」(IAM 與管理) >「Service Accounts」(服務帳戶)。

    前往「Service Accounts」(服務帳戶)

  2. 選取目標服務帳戶,然後依序前往 「Permissions」(權限) >「Grant Access」(授予存取權)。

  3. 將不重複的電子郵件地址貼到「New principals」(新增主體) 欄位,並指派「Service Account Token Creator」(服務帳戶權杖建立者) 角色 (roles/iam.serviceAccountTokenCreator)。

整合參數

Secret Manager 整合功能需要下列設定參數:

參數 說明
Service Account JSON

選填。

服務帳戶金鑰 JSON 檔案的內容,用於向 Secret Manager 進行驗證。

您可以設定這個參數或 Workload Identity 電子郵件。

Project ID

選填。

儲存密鑰的 Google Cloud 專案 ID。

如未提供任何值,整合功能會嘗試從 Service Account JSON (如有) 推論,但建議您明確指定。

Workload Identity Email

選填。

使用 Workload Identity (應用程式預設憑證) 進行驗證時,要模擬的服務帳戶電子郵件地址。

如果 Google SecOps 平台或遠端代理程式在 Google Cloud 中執行,且已啟用 Workload Identity,請使用這項設定,而非Service Account JSON。

Verify SSL

這是必填欄位。

如果選取這個選項,整合功能會在建立 Secret Manager 連線時,驗證 SSL 憑證。

預設為啟用 (True)。

如要瞭解如何在 Google SecOps 中設定整合功能,請參閱「設定整合功能」。

如有需要,您可以在後續階段進行變更。設定整合執行個體後,即可在應對手冊中使用。如要進一步瞭解如何設定及支援多個執行個體,請參閱「支援多個執行個體」。

動作

如要進一步瞭解動作,請參閱「 在工作區回應待處理動作」和「在案件中執行手動動作」。

乒乓

使用 Ping 動作驗證連線能力,並根據目標 Secret Manager 執行個體驗證設定參數。

這項動作主要用於從 Content Hub 的整合設定頁面立即測試連線,不會對個別 Google Cloud 實體執行。

動作輸入內容

這項動作不需要輸入參數。

動作輸出內容

Ping 動作會提供下列輸出內容:

動作輸出類型 可用性
案件總覽附件 無法使用
案件總覽連結 無法使用
案件總覽表格 無法使用
補充資訊表格 無法使用
JSON 結果 無法使用
輸出訊息 可用
指令碼執行結果 可用
輸出訊息

Ping 動作可能會傳回下列輸出訊息:

輸出訊息 訊息說明

Successfully connected to the Secret Manager server with the provided connection parameters!

操作成功,憑證有效。
Failed to connect to Secret Manager! Error is ERROR_REASON

動作失敗。

請檢查驗證憑證、專案 ID 設定、IAM 權限或網路連線。確認服務帳戶具備 secretmanager.secrets.list 權限 (例如使用 Secret Manager 檢視者角色)。

指令碼執行結果

下表列出使用 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

這是必填欄位。

要查詢目標設定的環境情境名稱。

預設值為 Default Environment。如要設定共用環境,請提供 *。

Credential Mapping

這是必填欄位。

有效的 JSON 字串,用於建構目標位置,其中整合執行個體、連接器和工作會對應至明確的 Secret Manager 資源座標。

Service Account JSON

選填。

服務帳戶金鑰 JSON 內容,專門用於授權這項背景同步作業。

Project ID

選填。

託管目標資源的預設 Google Cloud 專案 ID 範圍。

Workload Identity Email

選填。

如果是在已啟用 Workload Identity 的 Google Cloud 基礎架構中執行,則要模擬的應用程式預設憑證服務帳戶電子郵件。

Verify SSL

這是必填欄位。

在同步處理工作中驗證 SSL 憑證端點。預設為啟用 (True)。

還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求解答。