將 IAM 與 Google SecOps 整合 Google Cloud

本文說明如何將 Google Cloud 身分與存取權管理 與 Google Security Operations 整合。

用途

Google Cloud IAM 整合功能支援下列使用情境:

  • 自動管理服務帳戶生命週期:在啟用和停用程序中,自動建立、啟用或停用服務帳戶,確保只在必要時授予存取權。

  • 快速回應身分識別事件:在發生安全事件時,立即刪除或停用遭入侵的服務帳戶和角色,防止未經授權存取雲端資源。

  • 身分識別控管和擴充:在 Google SecOps 中,使用詳細的服務帳戶中繼資料 (例如顯示名稱和專案 ID) 擴充使用者實體,在調查期間為分析師提供即時背景資訊。

  • 政策稽核與強制執行:擷取並稽核存取權控管政策,確保政策符合最小權限原則,並以程式輔助設定新政策,修正未經授權的變更。

  • 角色型存取權控管 (RBAC) 管理:在整個機構中建立及管理具備特定權限集的自訂 IAM 角色,精細控管雲端環境存取權。

事前準備

在 Google SecOps 中設定 Google Cloud IAM 整合功能前,請先完成下列必要步驟:

  1. 建立自訂 IAM 角色:定義具備管理服務帳戶和角色所需特定權限的角色。

  2. 建立服務帳戶:建立整合項目用來執行動作的身分。

  3. 選取驗證方法:選擇建議使用的 Workload Identity 或服務帳戶 JSON 金鑰。

建立及設定自訂 IAM 角色

為維持最小權限原則,請完成下列步驟,建立只包含這項整合功能所需特定權限的自訂角色:

  1. 在 Google Cloud 控制台中,依序前往「IAM & Admin」(IAM 與管理)>「Roles」(角色)

  2. 按一下「建立角色」

  3. 提供「名稱」、「說明」和「ID」

  4. 將「角色推出階段」設為 General Availability

  5. 按一下「Add Permissions」(新增權限),然後新增下列特定權限:

    • iam.serviceAccounts.list
    • iam.serviceAccounts.create
    • iam.serviceAccounts.get
    • iam.serviceAccounts.getIamPolicy
    • iam.serviceAccounts.setIamPolicy
    • iam.serviceAccounts.disable
    • iam.serviceAccounts.enable
    • iam.serviceAccounts.delete
    • iam.roles.list
    • iam.roles.get
    • iam.roles.create
    • iam.roles.delete
  6. 點選「建立」

建立服務帳戶

整合功能會使用服務帳戶進行驗證,並在專案中執行 IAM 動作。

如要建立服務帳戶,請完成下列步驟:

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

  2. 按一下「Create Service Account」(建立服務帳戶)

  3. 輸入名稱和說明,然後按一下「建立並繼續」

  4. 在「Grant this service account access to project」(將專案存取權授予這個服務帳戶) 區段中,將您在上一個步驟中建立的自訂角色指派給這個服務帳戶。按一下「完成」

選取驗證方式

Google SecOps 支援兩種驗證路徑,可整合:

  • 方法 1:Workload Identity (建議):這個方法會使用服務帳戶模擬功能,產生短期權杖。由於不需要長期有效的 JSON 金鑰,因此更安全。

  • 選項 2:服務帳戶 JSON 金鑰:這個方法會使用靜態金鑰檔案。只有在環境中沒有 Workload Identity 時,才使用這個方法。

使用 Workload Identity 進行驗證 (建議)

如要使用 Workload Identity,您必須授權 Google SecOps 執行個體模擬您建立的服務帳戶。

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

  2. 選取「IAM」Google Cloud 整合。

  3. 在「Workload Identity Email」(工作負載身分識別電子郵件) 欄位中輸入服務帳戶電子郵件。

  4. 依序按一下「儲存」和「測試」。測試一開始預計會失敗。

  5. 按一下失敗測試旁的「close_small」close_small,即可查看錯誤訊息。

  6. 搜尋錯誤訊息結尾附近的專屬電子郵件地址 (格式為 gke-init-python@...soar-python@...)。複製這個地址。

授予模擬權限

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

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

  2. 選取您為這項整合服務建立的服務帳戶。

  3. 前往「權限」分頁,然後按一下「授予存取權」

  4. 將複製的專屬電子郵件地址貼到「New principals」(新增主體) 欄位。

  5. 指派「服務帳戶憑證建立者」角色 (roles/iam.serviceAccountTokenCreator)。按一下「儲存」

使用 JSON 金鑰進行驗證

如果您的環境無法使用 Workload Identity,可以透過服務帳戶 JSON 金鑰驗證整合。這個方法會使用靜態的長期有效密鑰檔案,在平台和 Google Cloud 資源之間建立連線。

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

  2. 前往「金鑰」分頁。

  3. 依序點選「新增金鑰」>「建立新的金鑰」

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

  5. 複製 JSON 檔案的所有內容。

  6. 在平台中設定這項整合功能時,請將內容貼到「Service Account Json File Content」(服務帳戶 JSON 檔案內容) 欄位。

整合參數

整合 Google Cloud IAM 需要下列參數:

參數 說明
API Root

選填。

Google Cloud IAM 執行個體的基準網址。

預設值為 https://iam.googleapis.com

Account Type

選填。

Google Cloud 帳戶類型。

這個值對應於驗證 JSON 檔案中的 type 參數。

預設值為 service_account

Project ID

選填。

Google Cloud 帳戶的專案 ID。

這個值對應於驗證 JSON 檔案中的 project_id 參數。

Quota Project ID

選填。

發出 API 要求時,用於配額和帳單的專案 ID。

Private Key ID

選填。

Google Cloud 帳戶的私密金鑰 ID。

這個值對應於驗證 JSON 檔案中的 private_key_id 參數。

Private Key

選填。

帳戶的私密金鑰。 Google Cloud

這個值對應於驗證 JSON 檔案中的 private_key 參數。

Client Email

選填。

Google Cloud 帳戶的客戶電子郵件地址。

這個值對應於驗證 JSON 檔案中的 client_email 參數。

Client ID

選填。

Google Cloud 帳戶的用戶端 ID。

這個值對應於驗證 JSON 檔案中的 client_id 參數。

Auth URI

選填。

Google Cloud 帳戶的驗證 URI。

這個值對應於驗證 JSON 檔案中的 auth_uri 參數。

預設值為 https://accounts.google.com/o/oauth2/auth

Token URI

選填。

Google Cloud 帳戶的權杖 URI。

這個值對應於驗證 JSON 檔案中的 token_uri 參數。

預設值為 https://oauth2.googleapis.com/token

Auth Provider X509 URL

選填。

驗證供應商 X.509 憑證網址。

這個值對應於驗證 JSON 檔案中的 auth_provider_x509_cert_url 參數。

預設值為 https://www.googleapis.com/oauth2/v1/certs

Client X509 URL

選填。

用戶端 X.509 憑證網址。

這個值對應於驗證 JSON 檔案中的 client_x509_cert_url 參數。

Organization ID

選填。

Google Cloud 機構的專屬 ID。

Service Account Json File Content

選填。

服務帳戶金鑰檔案的完整 JSON 內容。

如果提供這個參數,系統會忽略個別連線參數 (例如 Private Key IDPrivate Key)。

Workload Identity Email

選填。

與 Workload Identity 服務帳戶相關聯的電子郵件地址。

Verify SSL

選填。

如果選取這個選項,整合服務會在連線至 Google Cloud IAM 服務時驗證 SSL 憑證。

(預設為啟用)。

如需在 Google SecOps 中設定整合功能的操作說明,請參閱「設定整合功能」。

如有需要,您可以在稍後階段進行變更。設定整合執行個體後,您就可以在劇本中使用該執行個體。如要進一步瞭解如何設定及支援多個執行個體,請參閱「支援多個執行個體」。

動作

如要進一步瞭解動作,請參閱「 從工作台回覆待處理動作」和「執行手動動作」。

建立角色

建立 Identity and Access Management 角色。

參數

參數顯示名稱 類型 預設值 是否為必要項目 說明
角色 ID 字串 不適用 為新建立的 Identity and Access Management 角色指定角色 ID。
角色定義 字串 不適用 指定要用做角色定義的 JSON 政策文件。

執行時間

這項動作不會對實體執行。

角色政策 JSON 範例

{
   "name": "projects/silver-shift-275007/roles/iam_test_role_api",
   "title": "iam_test_role_api",
   "description": "test role",
   "includedPermissions": [
       "storagetransfer.projects.getServiceAccount"
   ],
   "stage": "GA",
   "etag": "BwXBu1RHiPw="
}

動作執行結果

指令碼執行結果
指令碼結果名稱 價值選項
is_success is_success=False
is_success is_success=True
JSON 結果
{
   "name": "projects/[PROJECT_ID]/roles/[ROLE_NAME]",
   "title": "[ROLE_TITLE]",
   "description": "[ROLE_DESCRIPTION]",
   "includedPermissions": [
       "storagetransfer.projects.getServiceAccount"
   ],
   "stage": "GA",
   "etag": "[ETAG_VALUE]"
}
案件總覽
結果類型 值/說明 類型
輸出訊息*

動作不得失敗,也不得停止應對手冊執行:

  • 如果動作執行成功 (is_success=true):

    • 已成功建立身分與存取權管理 <roleid>。

  • 如果提供的 role_id 已存在(is_success =false)

    • 提供的角色 ID「<role_id>」已存在。

  • 如果提供的角色 JSON 無效 (is_success =false)

    • 提供的角色定義 JSON 文件「<role json>」無效。

動作應會失敗並停止執行應對手冊:

如果發生嚴重錯誤或 SDK 錯誤 (例如憑證錯誤、無法連線至伺服器等):「Error executing action "Create Role". 原因:{0}''.format(error.Stacktrace)

一般

建立服務帳戶

建立身分與存取權管理服務帳戶。

參數

參數顯示名稱 類型 預設值 是否為必要項目 說明
服務帳戶 ID 字串 字串 指定要建立的服務帳戶 ID。
服務帳戶顯示名稱 字串 字串 指定要建立的服務帳戶顯示名稱。
服務帳戶說明 字串 字串 指定要建立的服務帳戶說明。

執行時間

這項動作不會在實體上執行。

動作執行結果

指令碼執行結果
指令碼結果名稱 價值選項
is_success is_success=False
is_success is_success=True
JSON 結果
{
   "name": "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com",
   "projectId": "PROJECT_ID",
   "uniqueId": "UNIQUE_ID",
   "email": "SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com",
   "displayName": "SERVICE_ACCOUNT_DISPLAY_NAME",
   "etag": "ETAG_VALUE",
   "description": "SERVICE_ACCOUNT_DESCRIPTION",
   "oauth2ClientId": "UNIQUE_ID"
}
案件總覽
結果類型 值/說明 類型
輸出訊息*

動作不得失敗,也不得停止應對手冊執行:

  • 如果動作執行成功 (is_success=true):

    • Google Cloud 已成功建立服務帳戶 <唯一 ID>。
  • 如果提供的服務帳戶已存在,導致動作無法執行(is_success =false)

    • 提供的服務帳戶 <唯一 ID> 已存在。

動作應會失敗並停止執行應對手冊:

如果發生嚴重錯誤、SDK 錯誤 (例如憑證錯誤、無法連線至伺服器等):「Error executing action "Create Service Account". 原因:{0}''.format(error.Stacktrace)

一般

刪除角色

刪除 Identity and Access Management 角色。

參數

參數顯示名稱 類型 預設值 是否為必要項目 說明
角色 ID 字串 不適用 為新建立的 Identity and Access Management 角色指定角色 ID。

執行時間

這項動作不會在實體上執行。

動作執行結果

指令碼執行結果
指令碼結果名稱 價值選項
is_success is_success=False
is_success is_success=True
JSON 結果
{
   "name": "projects/[PROJECT_ID]/roles/[ROLE_NAME]",
   "title": "[ROLE_TITLE]",
   "description": "[ROLE_DESCRIPTION]",
   "includedPermissions": [
       "storagetransfer.projects.getServiceAccount"
   ],
   "stage": "GA",
   "etag": "[ETAG_VALUE]",
   "deleted": true
}
案件總覽
結果類型 值/說明 類型
輸出訊息*

動作不得失敗,也不得停止應對手冊執行:

  • 如果動作執行成功 (is_success=true):

    • 已成功刪除 Identity and Access Management <roleid>。

  • 如果提供的 role_id 不存在(is_success =false)

    • 提供的角色 ID「<role_id>」不存在。

動作應會失敗並停止執行應對手冊:

如果發生致命錯誤或 SDK 錯誤 (例如憑證錯誤、無法連線至伺服器等):「執行『刪除角色』動作時發生錯誤。原因:{0}''.format(error.Stacktrace)

一般

刪除服務帳戶

刪除服務帳戶。這項動作會將身分與存取權管理服務帳戶電子郵件視為 Google SecOps 使用者實體。

執行時間

這項動作會對使用者實體執行。

動作執行結果

指令碼執行結果
指令碼結果名稱 價值選項
is_success is_success=False
is_success is_success=True
案件總覽
結果類型 值/說明 類型
輸出訊息*

動作不得失敗,也不得停止應對手冊執行:

  • 如果至少一個提供的實體成功:「已成功刪除下列服務帳戶:{0}」。format([entity.Identifier])。

  • 如果無法刪除所有提供的實體:「未刪除任何服務帳戶。」

  • 如果無法在 Identity and Access Management 中找到要刪除特定實體的資料:「Action was not able to find a match in Identity and Access Management for the provided entities: {0}」。format([entity.identifier])

動作應會失敗並停止執行應對手冊:

如果發生嚴重錯誤或 SDK 錯誤 (例如憑證錯誤、無法連線至伺服器等):「Error executing action "Delete Service Account" (執行「刪除服務帳戶」動作時發生錯誤)。原因:{0}''.format(error.Stacktrace)

一般

停用服務帳戶

停用服務帳戶。這項動作會將身分與存取權管理服務帳戶電子郵件視為 Google SecOps 使用者實體。

執行時間

這項動作會對使用者實體執行。

動作執行結果

指令碼執行結果
指令碼結果名稱 價值選項
is_success is_success=False
is_success is_success=True
案件總覽
結果類型 值/說明 類型
輸出訊息*

動作不得失敗,也不得停止應對手冊執行:

  • 如果至少有一個實體成功:「Successfully disabled the following service accounts: {0}」(已成功停用下列服務帳戶:{0})。format([entity.Identifier])。

  • 如果無法停用所有提供的實體:「沒有任何服務帳戶遭到停用」。

  • 如果無法在 Google Cloud 身分與存取權管理中找到要停用特定實體的資料:「Action was not able to find a match in Google Cloud Identity and Access Management for the provided entities: {0}」。format([entity.identifier])

動作應會失敗並停止執行應對手冊:

如果發生嚴重錯誤、SDK 錯誤 (例如憑證錯誤、無法連線至伺服器等):「執行『停用服務帳戶』動作時發生錯誤。原因:{0}''.format(error.Stacktrace)

一般

啟用服務帳戶

啟用服務帳戶。這項動作會將身分與存取權管理服務帳戶電子郵件視為 Google SecOps 使用者實體。

執行時間

這項動作會對使用者實體執行。

動作執行結果

指令碼執行結果
指令碼結果名稱 價值選項
is_success is_success=False
is_success is_success=True
案件總覽
結果類型 值/說明 類型
輸出訊息*

動作不得失敗,也不得停止應對手冊執行:

  • 如果至少有一個實體成功啟用:「已成功啟用下列服務帳戶:{0}」。format([entity.Identifier])。

  • 如果無法啟用所有提供的實體:「沒有啟用任何服務帳戶。」

  • 如果無法在身分與存取權管理中找到資料來啟用特定實體:「Action was not able to find a match in Identity and Access Management for the provided entities: {0}」。format([entity.identifier])

動作應會失敗並停止執行應對手冊:

如果發生嚴重錯誤、SDK 錯誤 (例如憑證錯誤、無法連線至伺服器等):「執行『啟用服務帳戶』動作時發生錯誤。原因:{0}''.format(error.Stacktrace)

一般

充實實體

使用 Identity and Access Management 中的服務帳戶資訊,擴充 Google SecOps 使用者實體。這項動作會將身分與存取權管理服務帳戶電子郵件視為 Google SecOps 使用者實體。

執行時間

這項動作會對使用者實體執行。

動作執行結果

指令碼執行結果
指令碼結果名稱 價值選項
is_success is_success=False
is_success is_success=True
JSON 結果
{
  "name": "projects/[PROJECT_ID]/serviceAccounts/[SERVICE_ACCOUNT_NAME]@[PROJECT_ID].iam.gserviceaccount.com",
  "projectId": "[PROJECT_ID]",
  "uniqueId": "[UNIQUE_ID]",
  "email": "[SERVICE_ACCOUNT_NAME]@[PROJECT_ID].iam.gserviceaccount.com",
  "displayName": "[DISPLAY_NAME]",
  "etag": "[ETAG]",
  "description": "[DESCRIPTION]",
  "oauth2ClientId": "[UNIQUE_ID]"
}
實體擴充
補充資料欄位名稱 邏輯 - 適用時機
Google_IAM_name
Google_IAM_project_id ..
Google_IAM_unique_id
Google_IAM_email
Google_IAM_display_name
Google_IAM_description
Google_IAM_oauth2_client_id
案件總覽
結果類型 值/說明 類型
輸出訊息*

動作不得失敗,也不得停止應對手冊執行:

  • 如果成功,且至少有一個提供的實體經過擴充:「Successfully enriched entities: {0}」。format([entity.Identifier])。
  • 如果無法擴充所有提供的實體:「沒有任何實體經過擴充。」
  • 如果無法在身分與存取權管理中找到資料來擴充特定實體:「Action was not able to find a match in Identity and Access Management to enrich provided entities: {0}」。format([entity.identifier])

動作應會失敗並停止執行應對手冊:

如果發生致命錯誤、SDK 錯誤 (例如憑證錯誤、無法連線至伺服器等):「執行『Enrich Entities』動作時發生錯誤。原因:{0}''.format(error.Stacktrace)

一般
資料表 (豐富度)

表格名稱:{實體} 擴充表格

資料欄:鍵、值

實體

取得服務帳戶 IAM 政策

取得服務帳戶的存取控管政策。Action 會將 Identity and Access Management 服務帳戶電子郵件視為 Google SecOps 使用者實體。請注意,如果沒有為服務帳戶指派任何政策,政策可能為空白。

執行時間

這項動作會對使用者實體執行。

動作執行結果

指令碼執行結果
指令碼結果名稱 價值選項
is_success is_success=False
is_success is_success=True
JSON 結果
{
   "version": 1,
   "etag": "[ETAG_VALUE]",
   "bindings": [
       {
           "role": "roles/iam.securityReviewer",
           "members": [
               "user:[USER_EMAIL]"
           ]
       }
   ]
}
案件總覽
結果類型 值/說明 類型
輸出訊息*

動作不得失敗,也不得停止應對手冊執行:

  • 如果動作執行成功 (is_success=true):

    • 「Successfully fetched Identity and Access Management policy for the following Google Cloud Service Accounts: <email id1, email id 2...>
  • 如果動作找不到實體的資訊 (例如在提供的 Google Identity and Access Management 電子郵件中不存在):

    • 動作無法擷取下列 Google Cloud 服務帳戶的 Identity and Access Management 政策:<電子郵件 ID 1、電子郵件 ID 2 等>
  • 如果找不到所有提供實體的 Identity and Access Management 政策:「Identity and Access Management policy was not found for any of the provided entities.」(找不到任何提供實體的 Identity and Access Management 政策)。

動作應會失敗並停止執行應對手冊:

如果發生嚴重錯誤或 SDK 錯誤 (例如憑證錯誤、無法連線至伺服器等):「執行動作『Get Service Account IAM Policy』時發生錯誤。原因:{0}''.format(error.Stacktrace)

一般

列出角色

根據指定的搜尋條件列出 Identity and Access Management 角色。請注意,這項動作不適用於 Google SecOps 實體。

參數

參數顯示名稱 類型 預設值 是否為必要項目 說明
查看 DDL 基本 指定要使用哪個檢視區塊傳回角色資訊。
要傳回的列數上限 整數 50 指定動作應傳回的角色數量。
只列出專案自訂角色? 核取方塊 已取消勾選 如果啟用,動作只會傳回為目前專案 ID 定義的自訂角色。
顯示已刪除的資料夾 核取方塊 已取消勾選 啟用後,系統也會傳回已刪除的角色。

執行時間

這項動作不會對實體執行。

動作執行結果

指令碼執行結果
指令碼結果名稱 價值選項
is_success is_success=False
is_success is_success=True
JSON 結果
{
   "roles": [
       {
           "name": "roles/accessapproval.approver",
           "title": "Access Approval Approver",
           "description": "Ability to view or act on access approval requests and view configuration",
           "stage": "BETA",
           "etag": "[ETAG_VALUE]"
       },
       {
           "name": "roles/accessapproval.configEditor",
           "title": "Access Approval Config Editor",
           "description": "Ability update the Access Approval configuration",
           "stage": "BETA",
           "etag": "[ETAG_VALUE]"
       }
   ]
}
案件總覽
結果類型 值/說明 類型
輸出訊息*

動作不得失敗,也不得停止應對手冊執行:

  • 如果成功列出角色 (is_success = true):「Successfully fetched Identity and Access Management roles.」(已成功擷取 Identity and Access Management 角色)。

  • 如果沒有可用值 (is_success = false):「No roles were returned for the specified input parameters.」(未針對指定的輸入參數傳回任何角色)。

動作應會失敗並停止執行應對手冊:

如果發生致命錯誤、無效區域、SDK 錯誤 (例如憑證錯誤、無法連線至伺服器等):「Error executing action "List Roles". 原因:{0}''.format(error.Stacktrace)

一般
資料表

表格名稱: Google Cloud IAM Roles

資料表資料欄:

角色名稱

角色稱號

角色說明

角色階段

角色 ETag

角色權限

一般

列出服務帳戶

根據指定的搜尋條件列出 Identity and Access Management 服務帳戶。 請注意,這項動作不適用於 Google SecOps 實體。

參數

參數顯示名稱 類型 預設值 是否為必要項目 說明
服務帳戶顯示名稱 字串 不適用 指定要傳回的服務帳戶顯示名稱。參數接受以半形逗號分隔的多個值。
服務帳戶電子郵件 字串 不適用 指定要傳回的服務帳戶電子郵件地址。參數接受以半形逗號分隔的多個值。
要傳回的列數上限 整數 50 指定動作應傳回的角色數量。

執行時間

這項動作不會在實體上執行。

動作執行結果

指令碼執行結果
指令碼結果名稱 價值選項
is_success is_success=False
is_success is_success=True
JSON 結果
{
  "accounts": [
    {
      "name": "projects/[PROJECT_ID]/serviceAccounts/[SERVICE_ACCOUNT_NAME]@[PROJECT_ID].iam.gserviceaccount.com",
      "projectId": "[PROJECT_ID]",
      "uniqueId": "[UNIQUE_ID]",
      "email": "[SERVICE_ACCOUNT_NAME]@[PROJECT_ID].iam.gserviceaccount.com",
      "displayName": "[DISPLAY_NAME]",
      "etag": "[ETAG_VALUE]",
      "description": "[SERVICE_ACCOUNT_DESCRIPTION]",
      "oauth2ClientId": "[UNIQUE_ID]"
    }
  ]
}
案件總覽
結果類型 值/說明 類型
輸出訊息*

動作不得失敗,也不得停止應對手冊執行:

  • 如果成功列出服務帳戶 (is_success = true):
    「Successfully fetched Google Cloud service accounts.」
  • 如果沒有可用值 (is_success = false):「No service accounts were returned for the specified input parameters.」(未傳回指定輸入參數的服務帳戶)。

動作應會失敗並停止執行應對手冊:

如果發生嚴重錯誤、無效區域、SDK 錯誤 (例如憑證錯誤、無法連線至伺服器等):「Error executing action "List Service Accounts". 原因:{0}''.format(error.Stacktrace)

一般
資料表

表格名稱: Google Cloud 服務帳戶

資料表資料欄:

服務帳戶名稱

服務帳戶專屬 ID

服務帳戶電子郵件

服務帳戶顯示名稱

服務帳戶說明

服務帳戶 OAuth2 用戶端 ID

一般

乒乓

使用 Google Security Operations Marketplace 分頁中整合設定頁面提供的參數,測試與 Identity and Access Management 服務的連線。

參數

不適用

執行時間

這項動作不會在實體上執行。

動作執行結果

指令碼執行結果
指令碼結果名稱 價值選項
is_success is_success=False
is_success is_success=True
案件總覽
結果類型 值/說明 類型
輸出訊息*

動作不得失敗,也不得停止應對手冊執行:

  • 如果成功:「Successfully connected to the Identity and Access Management service with the provided connection parameters!」(已使用提供的連線參數,成功連線至 Identity and Access Management 服務!)

動作應會失敗並停止執行應對手冊:

  • 如果發生重大錯誤,例如憑證錯誤或連線中斷:「無法連線至 Identity and Access Management 服務!Error is {0}".format(exception.stacktrace)
一般

輪替服務帳戶金鑰

使用「Rotate Service Account Keys」(輪替服務帳戶金鑰) 動作,輪替與服務帳戶相關聯的使用者代管金鑰。輪替期間,系統會刪除所有現有金鑰,並建立新金鑰。

這項動作會在下列 Google SecOps 實體上執行:

  • Deployment

  • Username

動作輸入內容

「輪替服務帳戶金鑰」動作需要下列參數:

參數 說明
Service Account

選填。

要輪替金鑰的服務帳戶清單,並以半形逗號分隔。

這個參數會與實體搭配運作。如果提供,除了動作範圍中識別的任何服務帳戶實體外,動作也會輪替這些特定帳戶的金鑰。

動作輸出內容

「輪替服務帳戶金鑰」動作會提供下列輸出內容:

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

下列範例顯示使用「Rotate Service Account Keys」(輪替服務帳戶金鑰) 動作時收到的 JSON 結果輸出:

[
    {
       "Entity": "123",
       "EntityResult": {
               "name": "projects/example-project/serviceAccounts/sample-sa@example-project.iam.gserviceaccount.com/keys/b333bbda7826af991a4d4cc4e3f83325103580ca",
               "validAfterTime": "2023-09-12T11:02:31Z",
               "validBeforeTime": "9999-12-31T23:59:59Z",
               "keyAlgorithm": "KEY_ALG_RSA_2048",
               "keyOrigin": "GOOGLE_PROVIDED",
               "keyType": "USER_MANAGED"
        }
    },
    {
       "Entity": "1234",
       "EntityResult": {
               "name": "projects/example-project/serviceAccounts/sample-sa@example-project.iam.gserviceaccount.com/keys/b333bbda7826af991a4d4cc4e3f83325103580ca",
               "validAfterTime": "2023-09-12T11:02:31Z",
               "validBeforeTime": "9999-12-31T23:59:59Z",
               "keyAlgorithm": "KEY_ALG_RSA_2048",
               "keyOrigin": "GOOGLE_PROVIDED",
               "keyType": "USER_MANAGED"
        }
    }
]
輸出訊息

「輪替服務帳戶金鑰」動作可能會傳回下列輸出訊息:

輸出訊息 訊息說明

Successfully rotated keys for service account SERVICE_ACCOUNT_EMAIL in Google Cloud IAM.

The following service accounts were not found in Google Cloud IAM: SERVICE_ACCOUNT_KEYS.

None of the provided service accounts were found in Google Cloud IAM.

動作成功。
Error executing action "Rotate Service Account Keys". Reason: ERROR_REASON

動作失敗。

請檢查伺服器連線、輸入參數或憑證。

指令碼結果

下表列出使用「輪替服務帳戶金鑰」動作時,指令碼結果輸出的值:

指令碼結果名稱
is_success truefalse

設定服務帳戶的身分與存取權管理政策

設定指定服務帳戶的存取控管政策,動作會將 Identity and Access Management 服務帳戶電子郵件視為 Google SecOps 帳戶實體。請注意,動作中提供的政策會取代任何現有政策。

參數

參數顯示名稱 類型 預設值 是否為必要項目 說明
政策 字串 不適用 指定要為服務帳戶設定的 JSON 政策文件。

執行時間

這項動作會在帳戶實體上執行。

動作執行結果

指令碼執行結果
指令碼結果名稱 價值選項
is_success is_success=False
is_success is_success=True
JSON 結果
{
   "version": 1,
   "etag": "[ETAG_VALUE]",
   "bindings": [
       {
           "role": "roles/iam.securityReviewer",
           "members": [
               "user:[USER_EMAIL]"
           ]
       }
   ]
}
案件總覽
結果類型 值/說明 類型
輸出訊息*

動作不得失敗,也不得停止應對手冊執行:

  • 如果部分成功 (is_success=True):

    • 已為下列服務帳戶成功設定 Identity and Access Management 政策:<email id1, ...> Google Cloud

  • 如果部分失敗:

    • 動作無法為下列 Google Cloud 服務帳戶設定 Identity and Access Management 政策:<email id1, ....>

  • 如果所有方法都失敗:

    • 未設定服務帳戶身分與存取權管理政策。

  • 如果提供的政策 JSON 無效 (is_success =false)

    • 提供的政策 JSON 文件「<policy>」無效。

動作應會失敗並停止執行應對手冊:

如果發生嚴重錯誤、SDK 錯誤 (例如憑證錯誤、無法連線至伺服器等):「Error executing action "Set Service Account IAM Policy". 原因:{0}''.format(error.Stacktrace)

一般

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