將 Policy Intelligence 與 Google SecOps 整合
本文說明如何將 Policy Intelligence 與 Google Security Operations 整合。
用途
Policy Intelligence 整合功能支援下列用途:
找出閒置的服務帳戶:自動找出在特定時間範圍內未經驗證的服務帳戶,以便清除未使用的身分,並縮小攻擊面。
調查身分遭盜用的情況:在事件調查期間,擷取服務帳戶的上次驗證時間,判斷該帳戶在疑似發生侵害事件的期間是否處於活躍狀態。
自動稽核法規遵循情形:將服務帳戶驗證中繼資料彙整成易於理解的報表,滿足監控身分存取權和使用情形的法規要求。
端點
這項整合功能會與 Policy Intelligence API 中的單一 activities:query 端點互動,並針對不同動作使用不同參數。以下是整合端點的範例:
[https://policyintelligence.googleapis.com/v1/projects/](https://policyintelligence.googleapis.com/v1/projects/)PROJECT_ID/locations/global/activityTypes/serviceAccountLastAuthentication/activities:query
事前準備
在 Google SecOps 中設定 Policy Intelligence 整合功能前,請先完成下列必要步驟:
選擇並設定下列其中一種驗證方式:
方法 1:Workload Identity (建議):這個方法會使用服務帳戶模擬功能,產生短期權杖。
方法 2:服務帳戶 JSON 金鑰:這個方法會使用靜態、長期有效的密鑰檔案。
建立及設定 IAM 角色
如要為整合項目提供必要權限,請在專案中建立自訂角色:
在 Google Cloud 控制台,依序前往 「IAM & Admin」(IAM 與管理) >「Roles」(角色)。
按一下「add」「Create custom role」(建立自訂角色)。
提供「Title」(標題) (例如
SecOps Policy Intelligence Analyst)、「Description」(說明) 和不重複的「ID」。將「Role Launch Stage」(角色推出階段) 設為「General Availability」(正式發布)。
為角色新增下列權限:
policyanalyzer.serviceAccountLastAuthenticationActivities.query
點選「建立」。
建立服務帳戶
在 Google Cloud 控制台,依序前往 「IAM & Admin」(IAM 與管理) >「Service Accounts」(服務帳戶)。
按一下「add」「Create service account」(建立服務帳戶)。
輸入名稱和說明,然後按一下「Create and continue」(建立並繼續)。
在「Grant this service account access to project」(將專案存取權授予這個服務帳戶) 步驟中,指派您建立的自訂角色。
點按「Done」(完成)。記下服務帳戶的電子郵件地址。
設定 Workload Identity 憑證
建議使用 Workload Identity,因為這種方法會透過服務帳戶模擬功能,使用短期存取權杖。
找出專屬執行個體身分
建立連線時,必須授予 Google SecOps 執行個體權限,才能模擬服務帳戶。
在 Google SecOps 中,依序前往 「Content Hub」 >「Response Integrations」。
選取「Policy Intelligence」整合項目,然後在
Workload Identity Email中輸入服務帳戶電子郵件地址。依序點選「儲存」 > 「測試」。測試預計會失敗。
按一下「Test」旁邊的 close_small 按鈕,然後找出開頭為
gke-init-python@...或soar-python@...的身分電子郵件。複製這個專屬電子郵件地址。
在 Google Cloud中授權執行個體身分
在 Google Cloud 控制台,依序前往 「IAM & Admin」(IAM 與管理) >「Service Accounts」(服務帳戶)。
選取目標服務帳戶,然後依序前往 「Permissions」(權限) >「Grant Access」(授予存取權)。
將不重複的電子郵件地址貼到「New principals」(新增主體) 欄位,並指派「Service Account Token Creator」(服務帳戶權杖建立者) 角色 (
roles/iam.serviceAccountTokenCreator)。
授予配額專案存取權
使用 Workload Identity 驗證身分時,必須提供 Quota Project ID,才能追蹤 API 使用情形和帳單。
在 Google Cloud 控制台中,前往做為配額專案的專案「IAM」。
找出服務帳戶,然後按一下「Edit principal」(編輯主體) (編輯)。
按一下「Add another role」(新增其他角色),然後選取「Service Usage Consumer」(服務使用情形消費者) (
roles/serviceusage.serviceUsageConsumer)。按一下 [儲存]。
設定 JSON 金鑰
靜態、長期有效的密鑰檔案需要手動輪替。只有在無法使用 Workload Identity 驗證時,才應採用這個方法。
在 Google Cloud 控制台中,依序前往 「IAM & Admin」(IAM 與管理) >「Service Accounts」(服務帳戶),然後選取 服務帳戶。
前往「金鑰」分頁,依序點選「新增金鑰」 > 「建立新的金鑰」。
選取「JSON」,然後點選「建立」。瀏覽器會將 JSON 檔案下載到您的電腦。
整合參數
Pub/Sub 整合需要下列參數:
| 參數 | 說明 |
|---|---|
Service Account JSON File Content |
選填。 服務帳戶金鑰 JSON 檔案的完整內容。 設定這個參數,即可使用服務帳戶金鑰驗證。 |
Workload Identity Email |
選填。 服務帳戶的用戶端電子郵件地址。 只有在使用 Workload Identity 進行驗證時,才需要設定這個參數。如果設定這項屬性,則必須一併提供 |
Project ID |
選填。 Pub/Sub 中的目標專案 ID。 如未提供任何值,整合作業會從服務帳戶憑證擷取 ID。 |
Quota Project ID |
選填。 用於 API 使用和計費的專案 ID。 使用 Workload Identity 驗證時,必須提供這個參數。 如未提供任何值,整合作業會從服務帳戶憑證擷取 ID。 |
Verify SSL |
這是必填欄位。 驗證與伺服器連線的 SSL 憑證。(預設為啟用)。 |
如要瞭解如何在 Google SecOps 中設定整合功能,請參閱「設定整合功能」。
如有需要,您可以在後續階段進行變更。設定整合執行個體後,即可在應對手冊中使用。如要進一步瞭解如何設定及支援多個執行個體,請參閱「支援多個執行個體」。
動作
如要進一步瞭解動作,請參閱「 在工作區回應待處理動作」和「在案件中執行手動動作」。
乒乓
使用 Ping 動作測試與 Policy Intelligence 的連線。
這項動作不會在 Google SecOps 實體上執行。
動作輸入內容
無
動作輸出內容
Ping 動作會提供下列輸出內容:
| 動作輸出類型 | 可用性 |
|---|---|
| 案件總覽附件 | 無法使用 |
| 案件總覽連結 | 無法使用 |
| 案件總覽表格 | 無法使用 |
| 補充資訊表格 | 無法使用 |
| JSON 結果 | 無法使用 |
| 輸出訊息 | 可用 |
| 指令碼執行結果 | 可用 |
輸出訊息
在案件總覽頁面中,連線偵測動作會提供下列輸出訊息:
| 輸出訊息 | 訊息說明 |
|---|---|
Successfully connected to the Google Cloud Policy Intelligence server
with the provided connection parameters! |
動作成功。 |
Failed to connect to the Google Cloud Policy Intelligence
server! |
動作失敗。 請檢查伺服器連線、輸入參數或憑證。 |
指令碼執行結果
下表說明使用 Ping 動作時,指令碼結果輸出的值:
| 指令碼結果名稱 | 值 |
|---|---|
is_success |
True或False |
搜尋服務帳戶活動
使用「搜尋服務帳戶活動」動作,在 Policy Intelligence 中搜尋與服務帳戶相關的活動。
這項動作不會在 Google SecOps 實體上執行。
動作輸入內容
「搜尋服務帳戶活動」動作需要下列參數:
| 參數 | 說明 |
|---|---|
Project ID |
選用 要搜尋服務帳戶活動的專案名稱。 如未提供任何值,動作會從整合設定中擷取專案 ID。 |
Service Account Resource Name |
必要
以半形逗號分隔的清單,其中包含用於擷取活動的服務帳戶資源名稱。 |
Max Activities To Return |
必要
服務帳戶要傳回的活動數量。 上限為 1,000。 根據預設,這項動作會傳回 50 個活動。 |
動作輸出內容
「搜尋服務帳戶活動」動作會提供下列輸出內容:
| 動作輸出類型 | 可用性 |
|---|---|
| 案件總覽附件 | 無法使用 |
| 案件總覽連結 | 無法使用 |
| 案件總覽表格 | 無法使用 |
| 補充資訊表格 | 無法使用 |
| JSON 結果 | 可用 |
| 輸出訊息 | 可用 |
| 指令碼執行結果 | 可用 |
JSON 結果
以下範例說明使用「搜尋服務帳戶活動」動作時,收到的 JSON 結果輸出內容:
[
{
"Entity": "//iam.googleapis.com/projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT@ENTITY_ID",
"EntityResult": [
{
"fullResourceName": "//iam.googleapis.com/projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT@ENTITY_ID",
"activityType": "serviceAccountLastAuthentication",
"observationPeriod": {
"startTime": "2023-05-23T07:00:00Z",
"endTime": "2023-08-20T07:00:00Z"
},
"activity": {
"lastAuthenticatedTime": "2023-08-20T07:00:00Z",
"serviceAccount": {
"serviceAccountId": "SERVICE_ACCOUNT_ID",
"projectNumber": "PROJECT_NUMBER",
"fullResourceName": "//iam.googleapis.com/projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT@ENTITY_ID"
}
}
}
]
}
]
輸出訊息
在案件總覽中,「搜尋服務帳戶活動」動作會提供下列輸出訊息:
| 輸出訊息 | 訊息說明 |
|---|---|
|
動作成功。 |
Error executing action "Search Service Account Activity".
Reason: ERROR_REASON |
動作失敗。 請檢查伺服器連線、輸入參數或憑證。 |
指令碼執行結果
下表說明使用「搜尋服務帳戶活動」動作時,指令碼結果輸出的值:
| 指令碼結果名稱 | 值 |
|---|---|
is_success |
True或False |
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求解答。