Jira を Google SecOps と統合する
このドキュメントでは、Jira を Google Security Operations と統合する方法について説明します。
ユースケース
Jira 統合では、Google SecOps の機能を使用して、次のユースケースをサポートします。
チケットの自動作成: Jira コネクタを使用して、Google SecOps アラートから Jira の問題を自動的に作成し、セキュリティ チームと IT チーム間の引き継ぎを効率化します。
双方向同期: 専用の同期ジョブを使用して Jira チケットと Google SecOps ケース間でコメントとステータスの変更を自動的に同期することで、プラットフォーム間で一貫性を維持します。
インシデントの拡充: 添付ファイルのアップロード アクションを使用して、証拠、ログ、スクリーンショットを Jira の問題に直接添付し、修復担当者に完全なコンテキストを提供します。
動的なタスク管理: 関連する Jira 課題を Google SecOps ハンドブックから直接更新、割り当て、リンクして、標準作業手順(SOP)を自動化します。
始める前に
Google SecOps プラットフォームで Jira 統合を構成する前に、次のものが揃っていることを確認してください。
プロダクトの互換性: Jira Cloud インスタンスまたは Jira データセンター(オンプレミス)環境へのアクセス。
認証方法: 認証方法を選択します。
- 基本認証(Jira Cloud): ユーザー名(メールアドレス)と Atlassian API トークンが必要です。
- サービス アカウント認証(Jira Cloud): サービス アカウント トークンと Cloud ID が必要です。
- 標準認証(Jira Data Center): 有効なユーザー名とパスワードが必要です。
API ルート URL: API ルートの形式は、認証方法によって異なります。
- Standard / Basic: Jira インスタンスのベース URL(例:
https://yourdomain.atlassian.net)。 - サービス アカウント: Atlassian API プロキシ URL。Cloud ID(
https://api.atlassian.com/ex/jira/{cloud_id}など)を含める必要があります。
- Standard / Basic: Jira インスタンスのベース URL(例:
Jira Cloud の認証を設定する
API トークンを使用して Jira Cloud に接続するには、Atlassian のドキュメントの手順に沿ってトークンを生成します。
サービス アカウントの認証を設定する
Jira Cloud でトークンベースの認証(署名なしトークン)を使用するには:
Atlassian 管理コンソールを使用してサービス アカウントを作成する方法の詳細については、サービス アカウントについてをご覧ください。
https://<your_tenant>.atlassian.net/_edge/tenant_infoに移動して Cloud ID を取得します(<your_tenant>は特定の Atlassian インスタンス名です)。統合を構成するときに、[ユーザー名] フィールドを空白のままにして、署名なしトークン認証をトリガーします。
統合のパラメータ
Jira の統合には、次のパラメータが必要です。
| パラメータ | 説明 |
|---|---|
Api Root |
必須。 Jira インスタンスのベース URL。 |
Username |
省略可。 Jira への接続に使用するユーザー名(メールアドレス)。 このパラメータの要件は、選択した認証方法によって異なります。
認証方法の詳細については、始める前にをご覧ください。 |
Api Token |
必須。 Jira への接続に使用される認証情報。 このフィールドには、API トークン、サービス アカウント トークン、または標準パスワード(データセンター用)を指定できます。 |
Verify SSL |
省略可。 選択すると、統合は Jira サーバーに接続するときに SSL 証明書を検証します。 |
Google SecOps で統合を構成する方法については、統合を構成するをご覧ください。
必要に応じて、後の段階で変更できます。統合インスタンスを構成すると、ハンドブックで使用できます。複数のインスタンスを構成してサポートする方法の詳細については、複数のインスタンスのサポートをご覧ください。
操作
アクションの詳細については、 デスクから保留中のアクションに対応するとケースで手動アクションを実行するをご覧ください。
コメントを追加
[Add Comment] アクションを使用して、既存の Jira 課題にコメントを作成して追加します。
これは、Google SecOps から直接、検出結果の文書化、更新の提供、チームメンバーとのコラボレーションを行う効果的な方法です。
このアクションは Google SecOps エンティティに対しては実行されません。
アクションへの入力
Add Comment アクションには、次のパラメータが必要です。
| パラメータ | 説明 |
|---|---|
Issue Key |
必須。 Jira の問題の固有識別子(例: |
Comment |
必須。 Jira の課題に追加するテキスト。 |
アクションの出力
Add Comment アクションは、次の出力を提供します。
| アクションの出力タイプ | 対象 |
|---|---|
| ケースウォールのアタッチメント | 利用不可 |
| ケースウォールのリンク | 利用不可 |
| ケースウォール テーブル | 利用不可 |
| 拡充テーブル | 利用不可 |
| JSON の結果 | 利用不可 |
| 出力メッセージ | 利用可能 |
| スクリプトの結果 | 利用可能 |
スクリプトの結果
次の表に、Add Comment アクションを使用した場合のスクリプト結果の出力値を示します。
| スクリプトの結果名 | 値 |
|---|---|
comment_id |
Jira で新しく作成されたコメントの一意の ID。 |
問題を割り当てる
[Assign Issue] アクションを使用して、Jira の問題を特定のユーザーに割り当てます。
このアクションは Google SecOps エンティティに対しては実行されません。
アクションへの入力
[Assign Issue] アクションには、次のパラメータが必要です。
| パラメータ | 説明 |
|---|---|
Issue Key |
必須。 Jira の問題の固有識別子(例: |
Assignee |
必須。 問題を割り当てるユーザーの名前またはメールアドレス。 |
Jira Username |
省略可。 割り当てアクションを開始したユーザーの Jira ユーザー名。 |
アクションの出力
[Assign Issue] アクションでは、次の出力が提供されます。
| アクションの出力タイプ | 対象 |
|---|---|
| ケースウォールのアタッチメント | 利用不可 |
| ケースウォールのリンク | 利用不可 |
| ケースウォール テーブル | 利用不可 |
| 拡充テーブル | 利用不可 |
| JSON の結果 | 利用不可 |
| 出力メッセージ | 利用可能 |
| スクリプトの結果 | 利用可能 |
スクリプトの結果
次の表に、[Assign Issue] アクションを使用した場合のスクリプト結果の出力値を示します。
| スクリプトの結果名 | 値 |
|---|---|
success |
true または false |
アラートの問題を作成する
[Create Alert Issue] アクションを使用して、特定のアラートに対して Jira で新しいチケットを作成します。
このアクションは、主にハンドブック内で使用され、セキュリティ インシデントを IT チームまたはエンジニアリング チームにエスカレーションして、詳細な調査や修復を行います。
このアクションは Google SecOps エンティティに対しては実行されません。
アクションへの入力
[Create Alert Issue] アクションには、次のパラメータが必要です。
| パラメータ | 説明 |
|---|---|
Project Key |
必須。 問題が作成される Jira プロジェクトの一意の短縮キー( |
Summary |
必須。 問題の簡単なタイトルまたは概要。 |
Issue Type |
必須。 問題の種類( |
アクションの出力
Create Alert Issue アクションでは、次の出力が提供されます。
| アクションの出力タイプ | 対象 |
|---|---|
| ケースウォールのアタッチメント | 利用不可 |
| ケースウォールのリンク | 利用不可 |
| ケースウォール テーブル | 利用不可 |
| 拡充テーブル | 利用不可 |
| 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"
}
スクリプトの結果
次の表に、[Create Alert Issue] アクションを使用した場合のスクリプト結果の出力値を示します。
| スクリプトの結果名 | 値 |
|---|---|
issue_key |
新しく作成された Jira の問題の一意の短縮キー(例: SEC-456)。 |
Create Issue(問題を作成)
[Create Issue] アクションを使用して、Jira プロジェクトに新しいチケットを作成します。
このアクションには、JSON を使用してコンポーネント、ラベル、カスタム フィールドを指定する機能など、幅広いカスタマイズ オプションが用意されているため、複雑なチケット作成ワークフローに適しています。
このアクションは Google SecOps エンティティに対しては実行されません。
アクションへの入力
[Create Issue] アクションには、次のパラメータが必要です。
| パラメータ | 説明 |
|---|---|
Project Key |
必須。 問題が作成される Jira プロジェクトの一意の短縮キー( |
Summary |
必須。 問題の簡単なタイトルまたは概要。 |
Description |
省略可。 問題の詳細な説明。 |
Issue Type |
必須。 問題の種類( |
Jira Username |
省略可。 アクションを開始したユーザーの Jira ユーザー名。 |
Assignee |
省略可。 問題が割り当てられているユーザーの ID。 |
Components |
省略可。 問題に関連付ける Jira コンポーネントのカンマ区切りのリスト。 |
Labels |
省略可。 問題に追加するラベルのカンマ区切りのリスト。 |
Custom Fields |
省略可。 作成時に設定する追加のフィールドと値を含む JSON オブジェクト( このパラメータで指定された値は優先度が高く、競合が発生した場合は他のフィールド マッピングを上書きします。 |
アクションの出力
Create Issue アクションは、次の出力を提供します。
| アクションの出力タイプ | 対象 |
|---|---|
| ケースウォールのアタッチメント | 利用不可 |
| ケースウォールのリンク | 利用不可 |
| ケースウォール テーブル | 利用不可 |
| 拡充テーブル | 利用不可 |
| JSON の結果 | 利用可能 |
| 出力メッセージ | 利用可能 |
| スクリプトの結果 | 利用可能 |
JSON の結果
次の例は、Create Issue アクションを使用した場合に受信される 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 エンティティに対しては実行されません。
アクションへの入力
Delete Issue アクションには、次のパラメータが必要です。
| パラメータ | 説明 |
|---|---|
Issue Key |
必須。 削除する Jira の課題の一意の短縮キー(例: |
アクションの出力
Delete Issue アクションでは、次の出力が提供されます。
| アクションの出力タイプ | 対象 |
|---|---|
| ケースウォールのアタッチメント | 利用不可 |
| ケースウォールのリンク | 利用不可 |
| ケースウォール テーブル | 利用不可 |
| 拡充テーブル | 利用不可 |
| JSON の結果 | 利用不可 |
| 出力メッセージ | 利用可能 |
| スクリプトの結果 | 利用可能 |
スクリプトの結果
次の表に、Delete Issue アクションを使用した場合のスクリプト結果の出力値を示します。
| スクリプトの結果名 | 値 |
|---|---|
success |
true または false |
添付ファイルをダウンロード
添付ファイルをダウンロードアクションを使用して、特定の Jira 課題に添付されているすべてのファイルを取得します。添付ファイルが .eml ファイルの場合、このアクションは、そのメールに含まれるファイルもダウンロードします。
このアクションは Google SecOps エンティティに対しては実行されません。
アクションへの入力
添付ファイルをダウンロードアクションには、次のパラメータが必要です。
| パラメータ | 説明 |
|---|---|
Issue Key |
必須。 Jira の課題の一意の短縮キー( |
Download Path |
省略可。 アクションによってダウンロードされた添付ファイルが保存されるフォルダのローカルパスまたは内部パス。 必要な形式は、デプロイの種類によって異なります。
|
Download Attachments to the Case Wall |
省略可。 選択すると、このアクションにより Jira の問題の添付ファイルが現在の Google SecOps ケースウォールに直接ダウンロードされます。 ケースウォールに追加する添付ファイルにはサイズ制限があります。サイズの大きいファイルはアップロードできない場合があります。 デフォルトでは無効にされています。 |
アクションの出力
Download Attachments アクションは、次の出力を提供します。
| アクションの出力タイプ | 対象 |
|---|---|
| ケースウォールのアタッチメント | 利用可能 |
| ケースウォールのリンク | 利用不可 |
| ケースウォール テーブル | 利用不可 |
| 拡充テーブル | 利用不可 |
| JSON の結果 | 利用可能 |
| 出力メッセージ | 利用可能 |
| スクリプトの結果 | 利用可能 |
JSON の結果
次の例は、Download Attachments アクションを使用した場合に受信される 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"
}
}
]
スクリプトの結果
次の表に、[Download Attachments] アクションを使用した場合のスクリプト結果の出力値を示します。
| スクリプトの結果名 | 値 |
|---|---|
is_success |
true または false |
問題を取得する
Get Issues アクションを使用して、1 つ以上の Jira 課題の詳細を取得します。
このアクションは、現在のチケット メタデータ(ステータス、割り当て先、優先度など)を使用して Google SecOps ケースを拡充する場合に役立ちます。
このアクションは Google SecOps エンティティに対しては実行されません。
アクションへの入力
Get Issues アクションには、次のパラメータが必要です。
| パラメータ | 説明 |
|---|---|
Issue Keys |
必須。 取得する Jira 課題キーのカンマ区切りのリスト(例: |
アクションの出力
Get Issues アクションは、次の出力を提供します。
| アクションの出力タイプ | 対象 |
|---|---|
| ケースウォールのアタッチメント | 利用不可 |
| ケースウォールのリンク | 利用不可 |
| ケースウォール テーブル | 利用不可 |
| 拡充テーブル | 利用不可 |
| 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 課題の完全なメタデータを含むリスト。 |
リンクの問題
[Link Issues] アクションを使用して、複数の Jira 課題間の関係を確立します。
このアクションは、主に、関連するセキュリティ インシデントを接続したり、調査チケット間の依存関係を追跡したりするために、ハンドブック内で使用されます。
このアクションは Google SecOps エンティティに対しては実行されません。
アクションへの入力
[Link Issues] アクションには、次のパラメータが必要です。
| パラメータ | 説明 |
|---|---|
Inward Issue ID |
必須。 内向きの問題 ID のカンマ区切りのリスト。 たとえば、 |
Outward Issue IDs |
必須。 外部 Jira 課題の短縮キー。 たとえば、 |
Relation Type |
必須。 問題間に作成するリンクのタイプ。 使用可能な関係タイプのリストは、List Relation Types アクションを実行することで確認できます。 デフォルト値は |
アクションの出力
Link Issues アクションは、次の出力を提供します。
| アクションの出力タイプ | 対象 |
|---|---|
| ケースウォールのアタッチメント | 利用不可 |
| ケースウォールのリンク | 利用不可 |
| ケースウォール テーブル | 利用不可 |
| 拡充テーブル | 利用不可 |
| JSON の結果 | 利用可能 |
| 出力メッセージ | 利用可能 |
| スクリプトの結果 | 利用可能 |
出力メッセージ
Link Issues アクションは、次の出力メッセージを返すことがあります。
| 出力メッセージ | メッセージの説明 |
|---|---|
アクションで、Jira の次の宛先の問題が見つかりませんでした。 ISSUE_IDS。 |
アクションが成功した |
Error executing action "Link Issues".
Reason: ERROR_REASON |
アクションが失敗しました。 サーバーへの接続、入力パラメータ、または認証情報を確認してください。 |
スクリプトの結果
次の表に、Link Issues アクションを使用した場合のスクリプト結果の出力値を示します。
| スクリプトの結果名 | 値 |
|---|---|
success |
true または false |
問題を一覧表示する
List Issues アクションを使用して、特定のフィルタ条件に基づいて Jira 課題キーのリストを検索して取得します。
このアクションは、アラート コンテキストに一致する既存のチケットを特定して、重複を回避したり、ハンドブック内で一括更新を実行したりする場合に役立ちます。
このアクションは Google SecOps エンティティに対しては実行されません。
アクションへの入力
List Issues アクションには、次のオプションのフィルタリング パラメータが用意されています。パラメータが指定されていない場合、アクションは統合ユーザーがアクセスできるすべての問題を返します。
| パラメータ | 説明 |
|---|---|
Project Names |
省略可。 検索対象のプロジェクト名のカンマ区切りのリスト。 |
Summary |
省略可。 指定すると、アクションは特定の概要またはタイトルで問題をフィルタします。 |
Description |
省略可。 指定すると、説明に含まれるテキストで問題がフィルタされます。 |
Issue Types |
省略可。 問題タイプのカンマ区切りのリスト(例: デフォルト値は |
Priorities |
省略可。 フィルタする優先度レベルのカンマ区切りのリスト(例: |
Created From |
省略可。 指定すると、この日付以降に作成された問題がフィルタされます( |
Updated From |
省略可。 指定すると、この日付以降に更新された問題がフィルタされます( |
Assignees |
省略可。 フィルタする割り当て先 ID のカンマ区切りのリスト。 |
Reporter |
省略可。 フィルタする報告者 ID のカンマ区切りのリスト。 |
Statuses |
省略可。 フィルタする問題ステータスのカンマ区切りのリスト(例: |
Created Before |
省略可。 フィルタする最新の作成日。形式: |
Custom JQL |
省略可。 カスタム JQL クエリ。指定すると、他のすべてのフィルタは無視されます。 |
アクションの出力
List Issues アクションは、次の出力を提供します。
| アクションの出力タイプ | 対象 |
|---|---|
| ケースウォールのアタッチメント | 利用不可 |
| ケースウォールのリンク | 利用不可 |
| ケースウォール テーブル | 利用不可 |
| 拡充テーブル | 利用不可 |
| JSON の結果 | 利用可能 |
| 出力メッセージ | 利用可能 |
| スクリプトの結果 | 利用可能 |
JSON の結果
次の例は、List Issues アクションを使用した場合に受信される JSON 結果の出力を示しています。
[
"PR-123",
"PR-124",
"SEC-789"
]
スクリプトの結果
次の表に、List Issues アクションを使用した場合のスクリプト結果の出力値を示します。
| スクリプトの結果名 | 値 |
|---|---|
issues |
見つかった Jira 課題の一意の短縮キーを含むリスト。 |
関係タイプを一覧表示する
List Relation Types アクションを使用して、Jira インスタンスで構成されている使用可能なすべてのリンク関係タイプのリストを取得します。
このアクションは、Link Issues アクションの有効な入力値を検証する場合に便利です。
このアクションは Google SecOps エンティティに対しては実行されません。
アクションへの入力
List Relation Types アクションには、次のパラメータが必要です。
| パラメータ | 説明 |
|---|---|
Filter Key |
省略可。 関係タイプをフィルタするために使用されるフィールド。 [フィルタ ロジック] が 値は次のいずれかになります。
デフォルト値は |
Filter Logic |
省略可。 フィルタに適用される論理演算子。 値は次のいずれかになります。
デフォルト値は |
Filter Value |
省略可。 選択した 値が指定されていない場合、キーとロジックが選択されていてもフィルタは適用されません。 |
Max Records To Return |
省略可。 結果で返されるレコードの最大数。 デフォルト値は |
アクションの出力
List Relation Types アクションは、次の出力を提供します。
| アクションの出力タイプ | 対象 |
|---|---|
| ケースウォールのアタッチメント | 利用不可 |
| ケースウォールのリンク | 利用不可 |
| ケースウォール テーブル | 利用可能 |
| 拡充テーブル | 利用不可 |
| JSON の結果 | 利用可能 |
| 出力メッセージ | 利用可能 |
| スクリプトの結果 | 利用可能 |
ケースウォール テーブル
[List Relation Types] アクションでは、次の表が提供されます。
テーブル名: Available Relation
テーブル列:
- 名前
- 内向き
- 外向き
JSON の結果
次の例は、List Relation Types アクションを使用した場合に受信する JSON 結果の出力を示しています。
[{
"id": "10000",
"name": "Blocks",
"inward": "is blocked by",
"outward": "blocks"
}]
出力メッセージ
List Relation Types アクションは、次の出力メッセージを返すことができます。
| 出力メッセージ | メッセージの説明 |
|---|---|
|
アクションが成功しました。 |
Error executing action "List Relation types".
Reason: ERROR_REASON |
アクションが失敗しました。 サーバーへの接続、入力パラメータ、または認証情報を確認してください。 |
スクリプトの結果
次の表に、List Relation Types アクションを使用した場合のスクリプト結果の出力値を示します。
| スクリプトの結果名 | 値 |
|---|---|
is_success |
true または false |
Ping
Ping アクションを使用して、Jira への接続をテストします。
このアクションは Google SecOps エンティティに対しては実行されません。
アクションへの入力
なし
アクションの出力
Ping アクションは、次の出力を提供します。
| アクションの出力タイプ | 対象 |
|---|---|
| ケースウォールのアタッチメント | 利用不可 |
| ケースウォールのリンク | 利用不可 |
| ケースウォール テーブル | 利用不可 |
| 拡充テーブル | 利用不可 |
| JSON の結果 | 利用不可 |
| 出力メッセージ | 利用可能 |
| スクリプトの結果 | 利用可能 |
スクリプトの結果
次の表に、Ping アクションを使用した場合のスクリプト結果の出力値を示します。
| スクリプトの結果名 | 値 |
|---|---|
success |
true または false |
更新に関する問題
説明
問題を更新します。新しい Jira API の場合、アクションはユーザーのメールアドレスに基づいて課題を割り当てる担当者の一致を見つけようとし、次に displayName フィールドを試します。
パラメータ
| パラメータ | 種類 | デフォルト値 | 必須 | 説明 |
|---|---|---|---|---|
| 問題のキー | 文字列 | なし | はい | 更新する問題のキー。 |
| ステータス | 文字列 | なし | いいえ | この問題を新しいステータスに移行するには、関連する移行名を指定します。 |
| 概要 | 文字列 | なし | いいえ | 問題の新しい概要。 |
| 説明 | 文字列 | なし | いいえ | 問題の新しい説明。 |
| 問題の種類 | 文字列 | なし | いいえ | 問題の新しいタイプ。 |
| 割り当て先 | 文字列 | なし | いいえ | 問題の新しい担当者。 |
| Jira のユーザー名 | 文字列 | なし | いいえ | アクションを開始したユーザーの Jira ユーザー名。 |
| コンポーネント | 文字列 | なし | いいえ | 問題の components フィールド。 このパラメータは、カンマ区切りの文字列として複数の値を受け入れます。 |
| カスタム フィールド | JSON | なし | いいえ | 問題の作成時に使用されるすべてのフィールドと値を含む JSON オブジェクトを指定します。 注: このパラメータは優先度が高く、すべてのフィールドがこのパラメータに指定された値で上書きされます。 例: {"field":"value"} |
| ラベル | 文字列 | なし | いいえ | 問題の components フィールド。 このパラメータは、カンマ区切りの文字列として複数の値を受け入れます。 |
実行
このアクションはすべてのエンティティに対して実行されます。
アクションの結果
スクリプトの結果
| スクリプトの結果名 | 値のオプション | 例 |
|---|---|---|
| 成功 | 正しい / 誤り | 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
}
添付ファイルをアップロード
説明
問題に添付ファイルを追加します。
パラメータ
| パラメータ | 種類 | デフォルト値 | 必須 | 説明 |
|---|---|---|---|---|
| 問題のキー | 文字列 | なし | はい | ファイルパス。 |
| File Paths | 文字列 | なし | はい | アップロードするファイルの絶対パス(カンマ区切り)。 必要な形式は、デプロイの種類によって異なります。
|
実行
このアクションはすべてのエンティティに対して実行されます。
アクションの結果
スクリプトの結果
| スクリプトの結果名 | 値のオプション | 例 |
|---|---|---|
| is_success | True/False | is_success:False |
JSON の結果
N/A
Search Users
Jira でユーザーを検索します。
エンティティ
このアクションはエンティティでは実行されません。
アクションへの入力
アクションを構成するには、次のパラメータを使用します。
| パラメータ | |
|---|---|
User Email Addresses |
省略可
ユーザーを返すメールアドレスのカンマ区切りのリスト。 |
User Names |
省略可
ユーザーを返すユーザー名のカンマ区切りのリスト。 |
Project |
省略可
メールアドレスを検索するプロジェクトの名前。指定すると、 |
アクションの出力
| アクションの出力タイプ | |
|---|---|
| ケースウォールのアタッチメント | なし |
| ケースのウォールのリンク | なし |
| ケースウォール テーブル | なし |
| 拡充テーブル | なし |
| 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"
}
}
]
ケースウォール
このアクションでは、次の出力メッセージが表示されます。
| 出力メッセージ | メッセージの説明 |
|---|---|
|
アクションが成功しました。 |
Error executing action "Search Users".
Reason: ERROR_REASON |
操作を実行できませんでした。 サーバーへの接続、入力パラメータ、または認証情報を確認してください。 |
クローズ理由のマッピング構成
Closed Reason Mapping パラメータには JSON 構造が必要です。静的な値をマッピングすることも、動的な Jira フィールド名(resolution、customfield_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 |
必須。 デバイス プロダクトを識別するために使用されるフィールド名。 デフォルト値は |
EventClassId |
省略可。 イベント名(サブタイプ)を特定するために使用されるフィールド名。 デフォルト値は |
PythonProcessTimeout |
必須。 現在のスクリプトを実行している Python プロセスのタイムアウト上限(秒単位)。 デフォルト値は |
API Root |
必須。 Jira インスタンスの API ルート。 デフォルト値は |
Username |
省略可。 Jira への接続に使用するユーザー名(メールアドレス)。 このパラメータの要件は、選択した認証方法によって異なります。
認証方法の詳細については、始める前にをご覧ください。 |
API Token |
必須。 Jira への接続に使用される認証情報。 |
Days Backwards |
省略可。 アラートを取得するために遡る最大日数。 デフォルト値は |
Max Tickets Per Cycle |
省略可。 1 つのコネクタ サイクルで取得して処理するチケットの最大数。 デフォルト値は |
Project Names |
省略可。 プロジェクト名をカンマで区切って指定します。 |
Issue Statuses |
省略可。 問題のステータス(カンマ区切り)。 |
Assignees |
省略可。 ユーザーの姓名(カンマ区切り)。 |
Issue Types |
省略可。 問題の種類をカンマで区切って入力します。 |
Issue Priorities |
省略可。 問題の優先度(カンマ区切り)。 |
Issue Components |
省略可。 問題のコンポーネント(カンマ区切り)。 |
Proxy Server Address |
省略可。 使用するプロキシ サーバーのアドレス。 |
Proxy Username |
省略可。 認証に使用するプロキシのユーザー名。 |
Proxy Password |
省略可。 認証に使用するプロキシ パスワード。 |
Environment Field Name |
省略可。 環境名が保存されるフィールドの名前を記述します。環境フィールドがない場合、その環境がデフォルトの環境です。 デフォルト値は |
Environment Regex Pattern |
省略可。 [環境フィールド名] フィールドで見つかった値に対して実行する正規表現パターン。ユーザーが正規表現ロジックで環境フィールドを操作できるようにするために使用されます。 デフォルト値は |
Use Jira Project as Environment |
省略可。 Jira プロジェクトを環境として使用するか、環境フィールド名を環境として使用します。 |
Verify SSL |
必須。 選択すると、統合は Jira サーバーに接続するときに SSL 証明書を検証します。 デフォルトで有効になっています。 |
コネクタ ルール
プロキシのサポート
コネクタでプロキシがサポートされます。
動的リストとブロックリスト
コネクタは、Jira 内の特定のラベルに対してのみ、動的リストとブロックリストのルールをサポートします。
ジョブ
同期クローズ ジョブ
説明
対応する Google SecOps のアラートまたはケースがクローズされた場合に Jira のチケットをクローズし、クローズ ステータスとカスタム フィールドを Jira から Google SecOps に同期します。
パラメータ
| パラメータ | 説明 |
|---|---|
API Root |
必須。 Jira インスタンスの API ルート URL。 デフォルト値は |
Username |
省略可。 Jira への接続に使用するユーザー名(メールアドレス)。 このパラメータの要件は、選択した認証方法によって異なります。
|
API Token |
必須。 Jira への接続に使用される認証情報。 |
Project Names |
必須。 ジョブがモニタリングする Jira プロジェクト名(カンマ区切り)。 デフォルト値は |
Environment |
省略可。 環境名。 |
Days Backwards |
必須。 チケットのステータスを遡って同期する最大日数。 デフォルト値は |
Job Scope |
必須。 ジョブ同期のスコープ。選択肢:
デフォルト値は |
Supported Closed Statuses |
必須。 Google SecOps でクローズとして扱われる Jira のクローズ ステータスのカンマ区切りのリスト(例:
デフォルト値は |
Closed Reason Mapping |
必須。 Jira のクローズ ステータスを Google SecOps のクローズ理由と根本原因にマッピングする JSON 辞書。カスタム フィールドへのマッピングをサポートし、必須の |
Custom Fields Mapping |
省略可。 Jira から Google SecOps へのデータ同期のために、Google SecOps カスタム フィールドの表示名と Jira カスタム フィールド名のマッピングを定義する JSON オブジェクト。構成の詳細と例については、クローズ理由とカスタム フィールドのマッピングをご覧ください。 |
クローズの理由とカスタム フィールドのマッピング
以下の詳細と例を使用して、クローズ理由とカスタム フィールドのカスタム マッピングを構成します。
クローズ理由のマッピング
Jira のクローズ ステータスを Google SecOps のケースまたはアラートのクローズ理由と根本原因にマッピングする方法を定義します。
-
標準の JSON マッピングの例:
{ "Done": { "reason": "Malicious", "root_cause": "Other" }, "Fallback": { "reason": "Maintenance", "root_cause": "Other" } }Jira チケットがステータス
Doneでクローズされると、Google SecOps のケースまたはアラートは、理由Maliciousと根本原因Otherでクローズされます。明示的にマッピングされていないステータス(Closedなど)でチケットがクローズされた場合、システムはデフォルトでFallbackの設定を使用します。 -
カスタム フィールドのマッピング例:
Jira に
Jira reasonとJira rootcauseという名前のカスタム フィールドがある場合は、次のように JSON マッピングを構成します。{ "Done": { "reason": "Jira reason", "root_cause": "Jira rootcause" }, "Fallback": { "reason": "Maintenance", "root_cause": "Other" } }要件:
Jira reasonカスタム フィールドから抽出された値は、Malicious、Maintenance、Inconclusive、Not maliciousのいずれかの正確な文字列に解決される必要があります。それ以外の場合、システムはFallback値に戻ります。Caseジョブスコープの場合、根本原因の値は管理設定で構成する必要があります。Alertジョブスコープの場合、管理者の構成は必要ありません。カスタム フィールドに指定された値はすべて受け入れられます。
カスタム フィールドのマッピング
このマッピングは、Jira から Google SecOps にカスタム フィールド値を同期する場合にのみ機能します。キーが Google SecOps カスタム フィールドの表示名で、値が Jira カスタム フィールド名である Key-Value ペアを指定します。
{
"SOAR Custom field": "Jira ticket id"
}
この例では、Jira フィールド Jira ticket id の値が Google SecOps フィールド SOAR Custom field に直接同期されます。
コメントの同期ジョブ
説明
Google SecOps のケースと対応する Jira チケットの間でコメントを同期します。同期は双方向です。つまり、Google SecOps から Jira、Jira から Google SecOps に同期されます。
ジョブがコメントを作成すると、接頭辞が適用されます。Google SecOps ユーザーが Google SecOps ケースにコメントすると、ジョブは Chronicle コメント接頭辞 パラメータを使用して、対応する Jira チケットにユーザー コメントを作成して同期します。
この機能は、次の 2 つの目的で追加されています。
- 可視性。
- ジョブによって追加されたコメントが相手側に再度同期され、ループが発生しないようにします。
パラメータ
| パラメータ | 説明 |
|---|---|
API Root |
必須。 Jira インスタンスの API ルート URL。 デフォルト値は |
Username |
省略可。 Jira への接続に使用するユーザー名(メールアドレス)。 このパラメータの要件は、選択した認証方法によって異なります。
|
API Token |
必須。 Jira への接続に使用される認証情報。 |
Project Names |
必須。 ジョブがモニタリングする Jira プロジェクト名(カンマ区切り)。 デフォルト値は |
Environment |
省略可。 環境名。 |
Siemplify Comment Prefix |
必須。 同期ジョブによって Jira チケット用に作成されたコメントに追加される接頭辞。 デフォルト値は |
Jira Comment Prefix |
必須。 同期ジョブによって Google SecOps アラートケースのコメントに追加される接頭辞。 デフォルト値は |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。