整合 Jira 與 Google SecOps

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

用途

Jira 整合功能會使用 Google SecOps 功能,支援下列用途:

  • 自動建立工單:使用 Jira 連接器,根據 Google Security Operations 警報自動建立 Jira 問題,簡化資安和 IT 團隊之間的交接程序。

  • 雙向同步:透過專屬的同步作業,自動同步處理 Jira 票證和 Google SecOps 案件之間的留言和狀態變更,確保各平台資料一致。

  • 事件擴充:使用「上傳附件」動作,將證據、記錄和螢幕截圖直接附加至 Jira 問題,為修復人員提供完整情境。

  • 動態工作管理:直接從 Google SecOps 教戰手冊更新、指派或連結相關 Jira 問題,自動執行標準作業程序 (SOP)。

事前準備

在 Google SecOps 平台中設定 Jira 整合功能前,請確認您具備下列條件:

  • 產品相容性:存取 Jira Cloud 執行個體或 Jira Data Center (地端) 環境。

  • 驗證方式:選擇驗證方式。

    • 基本驗證 (Jira Cloud):需要使用者名稱 (電子郵件) 和 Atlassian API 權杖
    • 服務帳戶驗證 (Jira Cloud):需要服務帳戶權杖和 Cloud ID。
    • 標準驗證 (Jira Data Center):需要有效的使用者名稱和密碼。
  • API 根網址:API 根網址的格式取決於驗證方法。

    • 標準/基本:Jira 執行個體的基準網址 (例如 https://yourdomain.atlassian.net)。
    • 服務帳戶:Atlassian API Proxy 網址,必須包含 Cloud ID (例如 https://api.atlassian.com/ex/jira/{cloud_id})。

設定 Jira Cloud 的驗證

如要使用 API 權杖連線至 Jira Cloud,請按照 Atlassian 說明文件中的操作說明產生權杖。

設定服務帳戶的驗證

如要對 Jira Cloud 使用權杖式驗證 (Bearer Token):

  1. 如要進一步瞭解如何使用 Atlassian 管理控制台建立服務帳戶,請參閱「瞭解服務帳戶」。

  2. 前往下列網址,即可擷取 Cloud ID: https://<your_tenant>.atlassian.net/_edge/tenant_info (其中 <your_tenant> 是您的特定 Atlassian 執行個體名稱)。

  3. 設定整合時,請將「使用者名稱」欄位留空,以觸發 Bearer 權杖驗證。

整合參數

Jira 整合功能需要下列參數:

參數 說明
Api Root

必填。

Jira 執行個體的基準網址。

Username

選填。

用於連線至 Jira 的使用者名稱 (電子郵件地址)。

這項參數是否為必填取決於所選的驗證方法:

  • 如果提供,系統會使用基本驗證。
  • 如果留空,系統預設會使用不記名權杖驗證 (服務帳戶必須使用此驗證方式)。

如要進一步瞭解驗證方法,請參閱「事前準備」一文。

Api Token

必填。

用於連線至 Jira 的驗證憑證。

這個欄位接受 API 權杖、服務帳戶權杖或標準密碼 (適用於資料中心)。

Verify SSL

選填。

如果選取這個選項,整合服務會在連線至 Jira 伺服器時驗證 SSL 憑證。

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

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

動作

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

新增註解

使用「新增註解」動作,撰寫註解並新增至現有的 Jira 問題。

您可以在 Google SecOps 中記錄發現的結果、提供最新資訊,並直接與團隊成員協作。

這項操作不會在 Google SecOps 實體上執行。

動作輸入內容

「新增留言」動作需要下列參數:

參數 說明
Issue Key

必填。

Jira 問題的專屬 ID (例如 PROJ-123)。

Comment

必填。

要新增至 Jira 議題的文字。

動作輸出內容

「新增註解」動作會提供下列輸出內容:

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

下表列出使用「新增註解」動作時,指令碼結果輸出的值:

指令碼結果名稱
comment_id Jira 中新建立的留言專屬 ID。

指派問題

使用「Assign Issue」(指派問題) 動作,將 Jira 問題指派給特定使用者。

這項操作不會在 Google SecOps 實體上執行。

動作輸入內容

「指派問題」動作需要下列參數:

參數 說明
Issue Key

必填。

Jira 問題的專屬 ID (例如 PROJ-123)。

Assignee

必填。

要將問題指派給的使用者名稱或電子郵件地址。

Jira Username

選填。

發起指派動作的人員 Jira 使用者名稱。

動作輸出內容

「指派問題」動作會提供下列輸出內容:

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

下表列出使用「指派問題」動作時,指令碼結果輸出的值:

指令碼結果名稱
success truefalse

建立快訊問題

使用「Create Alert Issue」(建立快訊問題) 動作,為特定快訊在 Jira 中建立新支援單。

這項動作主要用於應對手冊,可將安全事件上報給 IT 或工程團隊,以進行進一步調查或修復。

這項操作不會在 Google SecOps 實體上執行。

動作輸入內容

「建立快訊問題」動作需要下列參數:

參數 說明
Project Key

必填。

建立問題的 Jira 專案專屬簡寫鍵 (例如 SEC)。

Summary

必填。

問題的簡短標題或摘要。

Issue Type

必填。

問題類型名稱 (例如 TaskBugIncident)。

動作輸出內容

「建立快訊問題」動作會提供下列輸出內容:

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

以下範例顯示動作成功建立問題時收到的 JSON 結果輸出內容:

{
   "summary": "Sample issue",
   "description": "Create Enrich entities action using Insights API (IOC search). Write connector for alerts.",
   "project": {
      "key": "PR",
      "name": "Project 1",
      "projectTypeKey": "software"
   },
   "issuetype": {
     "name": "Task",
     "subtask": false
   },
   "status": {
      "name": "DONE",
      "statusCategory": {
         "name": "Done",
         "key": "done"
      }
   },
   "priority": {
      "name": "Medium",
      "id": "3"
   },
   "creator": {
      "displayName": "user1",
      "emailAddress": "john_doe@example.com"
   },
   "assignee": {
      "displayName": "user2",
      "emailAddress": "john_doe@example.com"
   },
   "created": "2018-06-19T15:23:13.701+0300",
   "updated": "2018-09-18T10:02:06.347+0300"
}
指令碼結果

下表列出使用「建立快訊問題」動作時,指令碼結果輸出的值:

指令碼結果名稱
issue_key 新建立 Jira 問題的專屬簡寫鍵 (例如 SEC-456)。

建立問題

使用「建立問題」動作,在 Jira 專案中建立新支援單。

這項動作提供多種自訂選項,包括使用 JSON 指定元件、標籤和自訂欄位,因此適合用於複雜的建立工單工作流程。

這項操作不會在 Google SecOps 實體上執行。

動作輸入內容

「建立問題」動作需要下列參數:

參數 說明
Project Key

必填。

建立問題的 Jira 專案專屬簡寫鍵 (例如 SEC)。

Summary

必填。

問題的簡短標題或摘要。

Description

選填。

問題的詳細說明。

Issue Type

必填。

問題類型名稱 (例如 TaskBugIncident)。

Jira Username

選填。

執行動作的人員的 Jira 使用者名稱。

Assignee

選填。

指派問題的使用者 ID。

Components

選填。

以半形逗號分隔的 Jira 構件清單,用於與問題建立關聯。

Labels

選填。

以半形逗號分隔的標籤清單,用於新增至問題。

Custom Fields

選填。

JSON 物件,內含要在建立期間設定的其他欄位和值 (例如 {"customfield_10001": "Value"})。

如果發生衝突,系統會優先採用這個參數提供的值,並覆寫其他欄位對應。

動作輸出內容

「建立問題」動作會提供下列輸出內容:

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

以下範例顯示使用「建立問題」動作時收到的 JSON 結果輸出內容:

{
   "summary": "Sample issue",
   "description": "Create Enrich entities action using Insights API (IOC search). Write connector for alerts. In a couple of days we will have access to an instance.",
   "project": {
      "key": "PR",
      "name": "Project 1",
      "projectTypeKey": "software"
   },
   "issuetype": {
      "name": "Task",
      "description": "A task that needs to be done.",
      "subtask": false
   },
   "status": {
      "name": "DONE",
      "statusCategory": {
         "name": "Done",
         "key": "done",
         "colorName": "green"
      }
   },
   "priority": {
      "name": "Medium",
      "id": "3"
   },
   "resolution": {
      "name": "Done",
      "description": "Work has been completed on this issue."
   },
   "creator": {
      "displayName": "user1",
      "emailAddress": "john_doe@example.com",
      "active": true,
      "timeZone": "Asia/Jerusalem"
   },
   "assignee": {
      "displayName": "user2",
      "emailAddress": "john_doe@example.com",
      "active": true
   },
   "reporter": {
      "displayName": "user1",
      "emailAddress": "john_doe@example.com"
   },
   "labels": [
      "Label1"
   ],
   "attachment": [
      {
         "id": "1001",
         "filename": "file.rar",
         "mimeType": "binary/octet-stream",
         "size": 15420,
         "created": "2018-06-19T15:23:07.369+0300"
      }
   ],
   "created": "2018-06-19T15:23:13.701+0300",
   "updated": "2018-09-18T10:02:06.347+0300",
   "resolutiondate": "2018-09-18T10:02:06.340+0300",
   "watches": {
      "watchCount": 1,
      "isWatching": false
   }
}
指令碼結果

下表列出使用「建立問題」動作時,指令碼結果輸出的值:

指令碼結果名稱
issue_key 新建立 Jira 問題的專屬簡寫鍵 (例如 SEC-789)。

刪除問題

使用「Delete Issue」(刪除問題) 動作,從 Jira 永久移除問題。

這項動作通常用於清理重複的支援單,或移除劇本開發期間產生的測試資料。

這項操作不會在 Google SecOps 實體上執行。

動作輸入內容

「刪除問題」動作需要下列參數:

參數 說明
Issue Key

必填。

要刪除的 Jira 問題專屬簡寫鍵 (例如 SEC-123)。

動作輸出內容

「Delete Issue」動作會提供下列輸出內容:

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

下表列出使用「Delete Issue」(刪除問題) 動作時,指令碼結果輸出的值:

指令碼結果名稱
success truefalse

下載附件

使用「下載附件」動作,即可擷取附加至特定 Jira 問題的所有檔案。如果附件是 .eml 檔案,這項動作也會下載該電子郵件內含的任何檔案。

這項操作不會在 Google SecOps 實體上執行。

動作輸入內容

「下載附件」動作需要下列參數:

參數 說明
Issue Key

必填。

Jira 問題的專屬簡短金鑰 (例如 SEC-123)。

Download Path

選填。

動作儲存下載附件的資料夾本機或內部路徑。

所需格式取決於部署類型:

  • SaaS 部署:路徑位於代管平台內部,例如 /attachments/
  • 遠端代理程式部署:路徑必須是遠端代理程式安裝所在本機的絕對有效目錄路徑。例如 Windows 的 C:\temp\attachments 或 Linux 的 /var/tmp/attachments/
Download Attachments to the Case Wall

選填。

如果選取這個動作,系統會將 Jira 問題附件直接下載至目前的 Google SecOps 案件總覽。

新增至案件總覽的附件大小有限制。大型檔案可能無法上傳。

預設為停用。

動作輸出內容

「下載附件」動作會提供下列輸出內容:

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

以下範例顯示使用「下載附件」動作時收到的 JSON 結果輸出內容:

[
  {
    "download_path": "downloads/Security_Evidence.eml",
    "attachment_details": {
      "id": "10007",
      "filename": "Security_Evidence.eml",
      "author": {
        "displayName": "Security Analyst",
        "emailAddress": "analyst@example.com",
        "active": true,
        "timeZone": "Asia/Calcutta"
      },
      "created": "2024-05-25T20:27:09.066+0530",
      "size": 12049140,
      "mimeType": "message/rfc822"
    }
  },
  {
    "download_path": "downloads/Logs_Attachment.txt",
    "attachment_details": {
      "id": "10005",
      "filename": "Logs_Attachment.txt",
      "author": {
        "displayName": "System Admin",
        "emailAddress": "admin@example.com",
        "active": true,
        "timeZone": "Asia/Calcutta"
      },
      "created": "2024-05-16T11:48:24.141+0530",
      "size": 43,
      "mimeType": "text/plain"
    }
  }
]
指令碼結果

下表列出使用「下載附件」動作時,指令碼結果輸出的值:

指令碼結果名稱
is_success truefalse

取得問題

使用「Get Issues」動作,擷取一或多個 Jira 問題的完整詳細資料。

這項動作有助於使用目前的案件中繼資料 (例如狀態、指派對象和優先順序) 擴充 Google SecOps 案件。

這項操作不會在 Google SecOps 實體上執行。

動作輸入內容

「取得問題」動作需要下列參數:

參數 說明
Issue Keys

必填。

以半形逗號分隔的 Jira 問題鍵清單,用於擷取問題 (例如 SEC-123, SEC-456)。

動作輸出內容

「取得問題」動作會提供下列輸出內容:

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

以下範例顯示使用「Get Issues」動作時收到的 JSON 結果輸出內容:

{
  "issues_details_list": [
    {
      "key": "TES-65",
      "summary": "New summary",
      "description": "Detailed description of the security incident.",
      "project": {
        "key": "TES",
        "name": "test-project1",
        "projectTypeKey": "software"
      },
      "issuetype": {
        "name": "Bogue",
        "subtask": false
      },
      "status": {
        "name": "Fini",
        "statusCategory": {
          "name": "Terminé",
          "key": "done"
        }
      },
      "priority": {
        "name": "Medium",
        "id": "3"
      },
      "assignee": {
        "displayName": "Vasil Daskalov",
        "emailAddress": "vasil.daskalov@siemplify.co"
      },
      "creator": {
        "displayName": "admin@siemplifylab.local",
        "emailAddress": "admin@siemplifylab.local"
      },
      "created": "2021-08-31T12:15:22.089+0000",
      "updated": "2021-11-11T13:16:50.552+0000",
      "resolution": {
        "name": "Terminé",
        "description": "Ce ticket a été traité."
      },
      "labels": [],
      "components": []
    }
  ]
}
指令碼結果

下表列出使用「Get Issues」動作時,指令碼結果輸出的值:

指令碼結果名稱
issues_details_list 清單,內含所要求 Jira 問題的完整中繼資料。

使用「連結問題」動作,建立多個 Jira 問題之間的關係。

這項動作主要用於應對手冊中,可連結相關安全事件,或追蹤調查單之間的依附元件。

這項操作不會在 Google SecOps 實體上執行。

動作輸入內容

「連結問題」動作需要下列參數:

參數 說明
Inward Issue ID

必填。

以半形逗號分隔的向內問題 ID 清單。

舉例來說,如果 Relation Type 設為 Blocks,這個問題會在 Jira UI 中顯示 is blocked by 關係。

Outward Issue IDs

必填。

Jira 外部問題的簡寫鍵。

舉例來說,如果 Relation Type 設為 Blocks,這個問題會在 Jira UI 中顯示 blocks 關係。

Relation Type

必填。

要在問題之間建立的連結類型。

如要查看可用關係類型清單,請執行「列出關係類型」動作。

預設值為 Blocks

動作輸出內容

「連結問題」動作會提供下列輸出內容:

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

「Link Issues」動作可以傳回下列輸出訊息:

輸出訊息 訊息說明

Successfully linked issue ISSUE_ID with the following issues in Jira: ISSUE_IDS.

動作無法在 Jira 中找到下列目的地問題: ISSUE_IDS

動作成功
Error executing action "Link Issues". Reason: ERROR_REASON

動作失敗。

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

指令碼結果

下表列出使用「連結問題」動作時,指令碼結果輸出的值:

指令碼結果名稱
success truefalse

列出問題

使用「列出問題」動作,根據特定篩選條件搜尋及擷取 Jira 問題鍵清單。

這項動作有助於找出與快訊內容相符的現有工單,避免重複建立工單,或在劇本中執行大量更新。

這項操作不會在 Google SecOps 實體上執行。

動作輸入內容

「列出問題」動作提供下列選用篩選參數: 如果未提供任何參數,動作會傳回整合使用者可存取的所有問題。

參數 說明
Project Names

選填。

以半形逗號分隔的專案名稱清單,用於搜尋。

Summary

選填。

如果提供摘要或標題,系統會根據這些資訊篩選問題。

Description

選填。

如果提供此動作,系統會依說明中包含的文字篩選問題。

Issue Types

選填。

以半形逗號分隔的問題類型清單 (例如 Bug,Task)。

預設值為 Bug

Priorities

選填。

以半形逗號分隔的優先順序層級清單,可據此進行篩選 (例如 High,Medium)。

Created From

選填。

如果提供此日期,系統會篩選出在此日期當天或之後建立的問題 (格式為 YYYY/MM/DD)。

Updated From

選填。

如果提供此日期,系統會篩選出在這個日期之後更新的問題 (格式為 YYYY/MM/DD)。

Assignees

選填。

以半形逗號分隔的指派對象 ID 清單,用於篩選。

Reporter

選填。

以半形逗號分隔的檢舉者 ID 清單,用於篩選。

Statuses

選填。

以半形逗號分隔的問題狀態清單,用於篩選問題 (例如 Open,In Progress)。

Created Before

選填。

要篩選的最新建立日期。格式:YYYY/MM/DD 或相對偏移 (例如 -24h-7d)。如果未提供,系統不會使用篩選條件。

Custom JQL

選填。

自訂 JQL 查詢。如果提供,系統會忽略所有其他篩選器。

動作輸出內容

「列出問題」動作會提供下列輸出內容:

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

以下範例顯示使用「列出問題」動作時收到的 JSON 結果輸出內容:

[ 
  "PR-123", 
  "PR-124",
  "SEC-789"
]
指令碼結果

下表列出使用「列出問題」動作時,指令碼結果輸出的值:

指令碼結果名稱
issues 包含找到的 Jira 問題專屬速記鍵清單。

列出關係類型

使用「List Relation Types」(列出關係類型) 動作,擷取 Jira 執行個體中設定的所有可用連結關係類型清單。

這項動作有助於驗證「連結問題」動作的有效輸入值。

這項操作不會在 Google SecOps 實體上執行。

動作輸入內容

「列出關係類型」動作需要下列參數:

參數 說明
Filter Key

選填。

用於篩選關係類型的欄位。

如果「篩選器邏輯」設為 EqualContains,您必須選取 Select One 以外的欄位,以免發生執行錯誤。

可能的值如下:

  • Name
  • Inward
  • Outward

預設值為 Select One

Filter Logic

選填。

套用至篩選器的邏輯運算子。

可能的值如下:

  • Not Specified
  • Equal
  • Contains

預設值為 Not Specified

Filter Value

選填。

用於根據所選 Filter KeyFilter Logic 篩選的特定字串值。

如未提供值,即使選取鍵和邏輯,系統也不會套用篩選條件。

Max Records To Return

選填。

結果中傳回的記錄數量上限。

預設值為 50

動作輸出內容

「列出關係類型」動作會提供下列輸出內容:

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

「列出關係類型」動作會提供下表:

資料表名稱:Available Relation

資料表欄:

  • 名稱
  • Inward
  • Outward
JSON 結果

以下範例顯示使用「列出關係類型」動作時收到的 JSON 結果輸出內容:

[{
    "id": "10000",
    "name": "Blocks",
    "inward": "is blocked by",
    "outward": "blocks"
}]
輸出訊息

「列出關係類型」動作可傳回下列輸出訊息:

輸出訊息 訊息說明

Successfully found relation types for the provided criteria in Jira.

The filter was not applied, because parameter "Filter Value" has an empty value.

動作成功。
Error executing action "List Relation types". Reason: ERROR_REASON

動作失敗。

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

指令碼結果

下表列出使用「列出關係類型」動作時,指令碼結果輸出的值:

指令碼結果名稱
is_success truefalse

Ping

使用「Ping」動作測試與 Jira 的連線。

這項操作不會在 Google SecOps 實體上執行。

動作輸入內容

動作輸出內容

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

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

下表列出使用「Ping」動作時,指令碼結果輸出的值:

指令碼結果名稱
success truefalse

更新問題

說明

更新問題。對於新的 Jira API,動作會嘗試根據使用者電子郵件尋找指派對象,然後根據 displayName 欄位指派問題。

參數

參數 類型 預設值 為必填項目 說明
問題鍵 字串 不適用 要更新的問題鍵。
狀態 字串 不適用 指定相關的轉移名稱,將問題轉移至新的所需狀態。
摘要 字串 不適用 問題的新摘要。
說明 字串 不適用 問題的新說明。
問題類型 字串 不適用 問題的新類型。
指派對象 字串 不適用 問題的新指派對象。
Jira 使用者名稱 字串 不適用 動作發起者的 Jira 使用者名稱。
元件 字串 不適用

問題的「元件」欄位。

這個參數接受以半形逗號分隔的多個值。

自訂欄位 JSON 不適用

指定包含所有欄位和值的 JSON 物件,這些欄位和值會在建立問題時使用。

注意:這個參數具有優先權,所有欄位都會以這個參數提供的值覆寫。

例如:{"field":"value"}

標籤 字串 不適用

問題的「元件」欄位。

這個參數接受以半形逗號分隔的多個值。

執行時間

這項操作會對所有實體執行。

動作執行結果

指令碼執行結果
指令碼結果名稱 值選項 範例
成功 True/False Success:False
JSON 結果
{
   "comment":
     {
       "total": 0,
       "startAt": 0,
       "comments": [],
       "maxResults": 0
      },
   "creator":
     {
       "displayName": "user1",
       "name": "user1",
       "self": "",
       "avatarUrls":
          {
            "24x24": "",
            "16x16": "",
            "48x48": "",
            "32x32": ""
           },
        "emailAddress": "john_doe@example.com",
        "key": "user1user",
        "active": true,
        "timeZone": "Asia/Jerusalem",
        "accountId": "0"
       },
   "aggregatetimeestimate": null,
   "labels": ["Label1"],
   "aggregatetimespent": null,
   "watches":
      {
        "self": "",
        "watchCount": 1,
        "isWatching": false
       },
   "assignee":
      {
        "displayName": "user2",
        "name": "user2",
        "self": "",
        "avatarUrls":
           {
              "24x24": "",
              "16x16": "",
              "48x48": "",
              "32x32": ""
            },
        "emailAddress": "john_doe@example.com",
        "key": "user2",
        "active": true,
        "timeZone": "Asia/Jerusalem",
        "accountId": ""
       },
   "lastViewed": "2019-01-22T10:14:02.910+0200",
   "issuelinks": [],
   "Worklog":
      {
        "worklogs": [],
        "total": 0,
        "startAt": 0,
        "maxResults": 20
       },
   "aggregateprogress":
      {
        "progress": 0,
        "total": 0
       },
   "Priority":
      {
        "iconUrl": "",
        "self": "",
        "name": "Medium",
        "id": "3"
       },
   "votes":
       {
          "hasVoted": false,
          "self": "",
          "votes": 0
        },
   "workratio": -1,
   "fixVersions": [],
   "environment": null,
   "timespent": null,
   "attachment":
      [{
          "mimeType": "binary/octet-stream",
          "created": "2018-06-19T15:23:07.369+0300",
          "self": "",
          "author":
             {
               "displayName": "user1",
               "name": "user1",
               "self": "",
               "avatarUrls":
                  {
                     "24x24": "",
                     "16x16": "",
                     "48x48": "",
                     "32x32": ""
                   },
               "emailAddress": "john_doe@example.com",
               "key": "user1",
               "active": true,
               "timeZone": "Asia/Jerusalem",
               "accountId": "0"
              },
           "filename": "file.rar",
           "content": "",
           "id": "0",
           "size": 0
        }],
   "progress":
        {
          "progress": 0,
          "total": 0
         },
   "duedate": null,
   "status":
        {
          "statusCategory":
              {
                 "name": "Done",
                 "self": "",
                 "id": 3,
                 "key": "done",
                 "colorName": "green"
               },
          "description": "",
          "self": "",
          "iconUrl": "",
          "id": "0",
          "name": "DONE"
         },
   "updated": "2018-09-18T10:02:06.347+0300",
   "subtasks": [],
   "description": "Create Enrich entities action using Insights API (IOC search)\\n\\nWrite connector for laerts\\n\\nIn a couple of days we will have access to an instance",
   "reporter":
         {
           "displayName": "user1",
           "name": "user1",
           "self": "",
           "avatarUrls":
               {
                 "24x24": "",
                 "16x16": "",
                 "48x48": "",
                 "32x32": ""
               },
           "emailAddress": "john_doe@example.com",
           "key": "user1",
           "active": true,
           "timeZone": "Asia/Jerusalem",
           "accountId": "0"
          },
    "timeoriginalestimate": null,
    "aggregatetimeoriginalestimate": null,
    "created": "2018-06-19T15:23:13.701+0300",
    "versions": [],
    "resolutiondate": "2018-09-18T10:02:06.340+0300",
    "summary": "Sample issue",
    "project":
          {
             "name": "Project 1",
             "self": "",
             "projectTypeKey": "software",
             "avatarUrls":
                 {
                   "24x24": "",
                   "16x16": "",
                   "48x48": "",
                   "32x32": ""
                  },
             "key": "PR",
             "id": "0"
           },
    "timetracking": {},
    "components": [],
    "issuetype":
          {
             "name": "Task",
             "self": "",
             "iconUrl": "",
             "subtask": false,
             "avatarId": 10318,
             "id": "10002",
             "description": "A task that needs to be done."
           },
    "security": null,
    "resolution":
           {
             "id": "10000",
             "self": "",
             "description": "Work has been completed on this issue.",
              "name": "Done"
             },
    "timeestimate": null
}

上傳附件

說明

在問題中新增附件。

參數

參數 類型 預設值 為必填項目 說明
問題鍵 字串 不適用 檔案路徑。
檔案路徑 字串 不適用

要上傳的檔案絕對路徑,以半形逗號分隔。

所需格式取決於部署類型:

  • SaaS 部署:路徑位於代管平台內部,例如 /attachments/
  • 遠端代理程式部署:路徑必須是遠端代理程式安裝所在本機的絕對有效目錄路徑。例如 Windows 的 C:\temp\attachments 或 Linux 的 /var/tmp/attachments/

執行時間

這項操作會對所有實體執行。

動作執行結果

指令碼執行結果
指令碼結果名稱 值選項 範例
is_success True/False is_success:False
JSON 結果
N/A

搜尋使用者

在 Jira 中搜尋使用者。

實體

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

動作輸入內容

如要設定動作,請使用下列參數:

參數
User Email Addresses 選填

以半形逗號分隔的電子郵件地址清單,可供傳回使用者。

User Names 選填

以半形逗號分隔的使用者名稱清單,用於傳回使用者。

Project 選填

要在其中搜尋電子郵件地址的專案名稱。如果提供,則只會傳回 Project Assignable Users

動作輸出內容

動作輸出類型
案件總覽附件 不適用
案件總覽連結 不適用
案件總覽表格 不適用
補充資訊表 不適用
JSON 結果 可用
指令碼結果 可用
指令碼結果
指令碼結果名稱
is_success True/False
JSON 結果
[
 {
   "Entity": "example",
   "EntityResult": {
     "_resource": "user?accountId={0}",
     "_options": {
       "server": "https://siemplify.atlassian.net",
       "auth_url": "/rest/auth/1/session",
       "context_path": "/",
       "rest_path": "api",
       "rest_api_version": "2",
       "agile_rest_path": "agile",
       "agile_rest_api_version": "1.0",
       "verify": false,
       "resilient": true,
       "async": false,
       "async_workers": 5,
       "client_cert": null,
       "check_update": false,
       "delay_reload": 0,
       "headers": {
         "Cache-Control": "no-cache",
         "Content-Type": "application/json",
         "X-Atlassian-Token": "no-check"
       }
     },
     "_session": "<jira.resilientsession.ResilientSession object>",
     "_base_url": "{server}/rest/{rest_path}/{rest_api_version}/{path}",
     "raw": {
       "self": "https://siemplify.atlassian.net/rest/api/2/user?accountId=example-account-id",
       "accountId": "example-account-id",
       "accountType": "atlassian",
       "emailAddress": "example.user",
       "avatarUrls": {
         "48x48": "https://example.com"
       },
       "displayName": "Example",
       "active": true,
       "timeZone": "UTC",
       "locale": "en_US"
     },
     "self": "https://siemplify.atlassian.net/rest/api/2/user?accountId=example-account-id",
     "accountId": "example-account-id",
     "accountType": "atlassian",
     "emailAddress": "example.user",
     "avatarUrls": "<jira.resources.PropertyHolder object>",
     "displayName": "Example",
     "active": true,
     "timeZone": "UTC",
     "locale": "en_US"
   }
 }
]
案件總覽

這個動作會提供下列輸出訊息:

輸出訊息 訊息說明

Successfully found the following users in Jira for project PROJECT_NAME: USER_LIST

The following users were not found in Jira for project PROJECT_NAME: USER_LIST

None of the provided users were found in the project PROJECT_NAME

動作成功。
Error executing action "Search Users". Reason: ERROR_REASON

動作失敗。

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

關閉原因對應設定

Closed Reason Mapping 參數需要 JSON 結構。您可以對應靜態值或傳遞動態 Jira 欄位名稱 (例如 resolutioncustomfield_10010)。如果擷取的動態原因無效或遺失,工作會自動使用指定的 Fallback 對應。

JSON 設定範例:

{
  "Done": {
    "reason": "Maintenance",
    "root_cause": "Other"
  },
  "Fallback": {
    "reason": "Maintenance",
    "root_cause": "Other"
  }
}

連接器

Jira 連接器

說明

從 Jira 擷取問題至 Google SecOps。

在 Google SecOps 中設定 Jira 連接器

如需在 Google SecOps 中設定連接器的詳細操作說明,請參閱設定連接器

連接器參數

使用下列參數設定連接器:

參數 說明
DeviceProductField

必填。

用來判斷裝置產品的欄位名稱。

預設值為 device_product

EventClassId

選填。

用於判斷事件名稱 (子類型) 的欄位名稱。

預設值為 name

PythonProcessTimeout

必填。

執行目前指令碼的 Python 程序逾時限制 (以秒為單位)。

預設值為 60

API Root

必填。

Jira 執行個體的 API 根目錄。

預設值為 https://{jira_address}

Username

選填。

用於連線至 Jira 的使用者名稱 (電子郵件地址)。

這項參數是否為必填取決於所選的驗證方法:

  • 如果提供,系統會使用基本驗證。
  • 如果留空,系統預設會使用不記名權杖驗證 (服務帳戶必須使用此驗證方式)。

如要進一步瞭解驗證方法,請參閱「事前準備」一文。

API Token

必填。

用於連線至 Jira 的驗證憑證。

Days Backwards

選填。

要從過去幾天擷取快訊。

預設值為 5

Max Tickets Per Cycle

選填。

在一個連結器週期內擷取及處理的票證數量上限。

預設值為 10

Project Names

選填。

以半形逗號分隔的專案名稱。

Issue Statuses

選填。

以半形逗號分隔的問題狀態。

Assignees

選填。

以半形逗號分隔的使用者全名。

Issue Types

選填。

以半形逗號分隔的問題類型。

Issue Priorities

選填。

以半形逗號分隔問題優先順序。

Issue Components

選填。

以半形逗號分隔的問題元件。

Proxy Server Address

選填。

要使用的 Proxy 伺服器位址。

Proxy Username

選填。

用於驗證的 Proxy 使用者名稱。

Proxy Password

選填。

用於驗證的 Proxy 密碼。

Environment Field Name

選填。

說明儲存環境名稱的欄位名稱。如果找不到環境欄位,環境就是預設環境。

預設值為 ""

Environment Regex Pattern

選填。

要對「環境欄位名稱」欄位中的值執行的 regex 模式。用於允許使用者透過規則運算式邏輯操控環境欄位。

預設值為 .*

Use Jira Project as Environment

選填。

使用 Jira 專案做為環境,或使用「環境欄位名稱」做為環境。

Verify SSL

必填。

如果選取這個選項,整合服務會在連線至 Jira 伺服器時驗證 SSL 憑證。

(預設為啟用)。

連接器規則

Proxy 支援

連接器支援 Proxy。

動態清單和封鎖清單

連接器僅支援 Jira 內特定標籤的動態許可清單和封鎖清單規則。

工作

同步處理結案工作

說明

如果相應的 Google SecOps 快訊或案件已結案,請在 Jira 中關閉工單,並將結案狀態和自訂欄位從 Jira 同步回 Google SecOps。

參數

參數 說明
API Root

必填。

Jira 執行個體 API 根層級網址。

預設值為 https://{jira_address}

Username

選填。

用於連線至 Jira 的使用者名稱 (電子郵件地址)。

這項參數是否為必填取決於所選的驗證方法:

  • 如果提供,系統會使用基本驗證。
  • 如果留空,系統預設會使用不記名權杖驗證 (服務帳戶必須使用此驗證方式)。
API Token

必填。

用於連線至 Jira 的驗證憑證。

Project Names

必填。

以半形逗號分隔工作應監控的 Jira 專案名稱。

預設值為 project names separated by a comma

Environment

選填。

環境名稱。

Days Backwards

必填。

可回溯同步處理票證狀態的天數上限。

預設值為 1

Job Scope

必填。

工作範圍。選項:Alert (監控附加在快訊層級的支援單) 或 Case (監控附加在案件層級的支援單)。

預設值為 Alert

Supported Closed Statuses

必填。

以半形逗號分隔的 Jira 狀態清單,這些狀態在 Google SecOps 中會視為已結案。在 Jira 中結案單時,系統會使用第一個值。

預設值為 Done

Closed Reason Mapping

必填。

JSON 字典,將 Jira 結案狀態對應至 Google SecOps 結案原因 (MaliciousNotMaliciousMaintenanceInconclusive)。支援自訂欄位變數,且必須有 Fallback 鍵。

Custom Fields Mapping

選填。

JSON 物件,定義 Jira 欄位鍵與 Google SecOps 自訂欄位顯示名稱之間的對應關係,用於將資料從 Jira 同步至 Google SecOps。

同步處理留言工作

說明

在 Google SecOps 案件和對應的 Jira 票證之間同步處理留言。同步作業是雙向的,也就是從 Google SecOps 到 Jira,以及從 Jira 到 Google SecOps。

工作建立註解時,會套用前置字元。如果 Google SecOps 使用者在 Google SecOps 案件中留言,這項工作會使用 Chronicle 註解前置字元參數,在對應的 Jira 票證中建立並同步處理使用者留言。

新增這項功能有兩個目的:

  1. 掌握情報:
  2. 防止作業新增的註解再次同步到另一端,導致迴圈。

參數

參數 說明
API Root

必填。

Jira 執行個體 API 根層級網址。

預設值為 https://{jira_address}

Username

選填。

用於連線至 Jira 的使用者名稱 (電子郵件地址)。

這項參數是否為必填取決於所選的驗證方法:

  • 如果提供,系統會使用基本驗證。
  • 如果留空,系統預設會使用不記名權杖驗證 (服務帳戶必須使用此驗證方式)。
API Token

必填。

用於連線至 Jira 的驗證憑證。

Project Names

必填。

以半形逗號分隔工作應監控的 Jira 專案名稱。

預設值為 project names separated by comma

Environment

選填。

環境名稱。

Siemplify Comment Prefix

必填。

同步工作會將這個前置字串新增至為 Jira 票證建立的留言。

預設值為 Google SecOps:

Jira Comment Prefix

必填。

同步工作新增至 Google SecOps 快訊案件註解的前置字串。

預設值為 Jira Comment Sync Job:

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