Jira と Google SecOps を統合する
このドキュメントでは、Jira と Google Security Operations を連携させる方法について説明します。
ユースケース
Jira統合は、Google SecOps の機能を利用して、以下のユースケースをサポートします。
自動チケット発行: Jira Connectorを使用して Google SecOps アラートから Jira 課題を自動的に作成し、セキュリティチームと IT チーム間の引き継ぎを効率化します。
双方向同期: 専用の同期ジョブを使用して、Jira チケットと Google SecOps ケース間のコメントとステータス変更を自動的に同期することで、プラットフォーム間の一貫性を維持します。
インシデントエンリッチメント: 添付ファイルのアップロードアクションを使用して、証拠、ログ、スクリーンショットを Jira 課題に直接添付し、修復担当者に完全なコンテキストを提供します。
動的なタスク管理: Google SecOps プレイブックから直接関連する Jira 課題を更新、割り当て、またはリンクして、標準運用手順 (SOP) を自動化します。
始める前に
Google SecOps プラットフォームで Jira 統合を設定する前に、以下のものがすべて揃っていることを確認してください。
製品互換性: Jira Cloud インスタンスまたは Jira Data Center(オンプレミス)環境へのアクセス。
認証方法: 認証方法を選択してください。
- 基本認証(Jira Cloud):ユーザー名(メールアドレス)とAtlassian API トークンが必要です。
- サービスアカウント認証(Jira Cloud):サービスアカウントトークンとクラウド ID が必要です。
- 標準認証(Jira Data Center):有効なユーザー名とパスワードが必要です。
API ルート URL: API ルートの形式は、認証方法によって異なります。
- Standard/Basic: Jira インスタンスのベース URL(例:
https://yourdomain.atlassian.net)。 - サービスアカウント: Atlassian API プロキシ URL。クラウド ID(例:
https://api.atlassian.com/ex/jira/{cloud_id})を含める必要があります。
- Standard/Basic: Jira インスタンスのベース URL(例:
Jira Cloud の認証を設定します
API トークンを使用して Jira Cloud に接続するには、Atlassian のドキュメントの手順に従ってトークンを生成してください。
サービスアカウントの認証を設定します。
Jira Cloud でトークンベース認証(ベアラートークン)を使用するには:
サービスアカウントについてを参照して、Atlassian 管理コンソールを使用してサービスアカウントを作成する方法の詳細を確認してください。
クラウド ID を取得するには、
https://<your_tenant>.atlassian.net/_edge/tenant_infoにアクセスしてください (<your_tenant>は、お客様固有の Atlassian インスタンス名です)。統合を設定する際は、ベアラートークン認証を有効にするために、Username フィールドを空白のままにしてください。
統合のパラメータ
Jiraとの連携には、以下のパラメータが必要です。
| パラメータ | 説明 |
|---|---|
Api Root |
必須。 Jira インスタンスのベース URL。 |
Username |
省略可。 Jira への接続に使用するユーザー名(メールアドレス)。 このパラメータの要件は、選択した認証方法によって異なります。
認証方法の詳細については、開始する前にを参照してください。 |
Api Token |
必須。 Jira への接続に使用される認証情報。 このフィールドには、API トークン、サービスアカウントトークン、または標準パスワード(データセンター用)を入力できます。 |
Verify SSL |
省略可。 選択すると、Jira サーバーに接続するときに SSL 証明書が検証されます。 |
Google SecOps で統合を構成する手順については、統合を構成するをご覧ください。
必要に応じて、後の段階で変更できます。統合インスタンスを構成すると、ハンドブックで使用できるようになります。複数のインスタンスの構成とサポートの詳細については、複数のインスタンスのサポートをご覧ください。
操作
アクションの詳細については、 デスクから保留中のアクションに対応すると手動による対策を実行するをご覧ください。
コメントを追加
[コメントを追加] アクションを使用して、既存の Jira の課題にコメントを作成して追加します。
これは、検出結果を文書化し、更新情報を提供し、Google SecOps からチームメンバーと直接コラボレーションを行う効果的な方法です。
このアクションは Google SecOps エンティティに対して実行されません。
アクションの入力
[コメントを追加] アクションには、次のパラメータが必要です。
| パラメータ | 説明 |
|---|---|
Issue Key |
必須。 Jira の問題の一意の識別子(例: |
Comment |
必須。 Jira の課題に追加するテキスト。 |
アクションの出力
[コメントを追加] アクションでは、次の出力が提供されます。
| アクションの出力タイプ | 対象 |
|---|---|
| ケースウォールのアタッチメント | 利用不可 |
| ケースウォールのリンク | 利用不可 |
| ケースウォール テーブル | 利用不可 |
| 拡充テーブル | 利用不可 |
| JSON の結果 | 利用不可 |
| 出力メッセージ | 利用可能 |
| スクリプトの結果 | 利用可能 |
スクリプトの結果
以下の表は、コメントを追加アクションを使用した場合のスクリプト結果出力の値を示しています。
| スクリプトの結果名 | 値 |
|---|---|
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 |
アラート課題の作成
特定の警告に対して Jira で新しいチケットを作成するには、アラート課題の作成 アクションを使用します。
このアクションは主にプレイブック内で使用され、セキュリティインシデントを IT チームまたはエンジニアリングチームにエスカレーションして、さらなる調査や修復を依頼するために使用されます。
このアクションは Google SecOps エンティティに対して実行されません。
アクションの入力
アラート発行の作成アクションには、以下のパラメーターが必要です。
| パラメータ | 説明 |
|---|---|
Project Key |
必須。 課題が作成された Jira プロジェクトの一意の省略キー (例: |
Summary |
必須。 問題の簡潔なタイトルまたは概要。 |
Issue Type |
必須。 問題の種類名(例: |
アクションの出力
アラート問題の作成アクションは、以下の出力を提供します。
| アクションの出力タイプ | 対象 |
|---|---|
| ケースウォールのアタッチメント | 利用不可 |
| ケースウォールのリンク | 利用不可 |
| ケースウォール テーブル | 利用不可 |
| 拡充テーブル | 利用不可 |
| 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 プロジェクトの一意の省略キー (例: |
Summary |
必須。 問題の簡潔なタイトルまたは概要。 |
Description |
省略可。 問題の詳細な説明。 |
Issue Type |
必須。 問題の種類名(例: |
Jira Username |
省略可。 アクションを開始したユーザーの Jira ユーザー名。 |
Assignee |
省略可。 問題が割り当てられたユーザーの識別子。 |
Components |
省略可。 課題に関連付ける Jira コンポーネントをカンマで区切ったリスト。 |
Labels |
省略可。 問題に追加するラベルをカンマで区切ったリスト。 |
Custom Fields |
省略可。 作成時に設定するための追加フィールドと値を含む JSON オブジェクト (例: このパラメータで指定された値は優先され、競合が発生した場合は他のフィールドマッピングを上書きします。 |
アクションの出力
課題の作成アクションは、以下の出力を提供します。
| アクションの出力タイプ | 対象 |
|---|---|
| ケースウォールのアタッチメント | 利用不可 |
| ケースウォールのリンク | 利用不可 |
| ケースウォール テーブル | 利用不可 |
| 拡充テーブル | 利用不可 |
| 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
}
}
スクリプトの結果
次の表に、[Create Issue] アクションを使用する場合のスクリプト結果出力の値を示します。
| スクリプトの結果名 | 値 |
|---|---|
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 エンティティに対して実行されません。
アクションの入力
[Download Attachments] アクションには、次のパラメータが必要です。
| パラメータ | 説明 |
|---|---|
Issue Key |
必須。 Jira 課題の固有の略記キー(例: |
Download Path |
省略可。 アクションがダウンロードした添付ファイルを保存するフォルダーへのローカルパスまたは内部パス。 必要なフォーマットは、展開タイプによって異なります。
|
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 |
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 課題の完全なメタデータを含むリスト。 |
リンクの問題
複数の Jira 課題間の関係を確立するには、課題をリンク アクションを使用します。
このアクションは主にプレイブック内で使用され、関連するセキュリティインシデントを関連付けたり、調査チケット間の依存関係を追跡したりするために使用されます。
このアクションは Google SecOps エンティティに対して実行されません。
アクションの入力
リンクの問題アクションには、次のパラメーターが必要です。
| パラメータ | 説明 |
|---|---|
Inward Issue ID |
必須。 受信発行 ID をカンマで区切ったリスト。 例えば、 |
Outward Issue IDs |
必須。 外部 Jira 課題の略記キー。 例えば、 |
Relation Type |
必須。 問題間の関連性の種類。 利用可能なリレーションタイプの一覧は、List Relation Types アクションを実行することで確認できます。 デフォルト値は |
アクションの出力
リンクの問題アクションは、以下の出力を提供します。
| アクションの出力タイプ | 対象 |
|---|---|
| ケースウォールのアタッチメント | 利用不可 |
| ケースウォールのリンク | 利用不可 |
| ケースウォール テーブル | 利用不可 |
| 拡充テーブル | 利用不可 |
| 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 の問題の一意の短縮キーを含むリスト。 |
関係タイプの一覧を取得する
関係タイプを一覧表示アクションを使用して、Jira インスタンスで構成されている使用可能なすべてのリンク関係タイプのリストを取得します。
このアクションは、[Link Issues] アクションの有効な入力値を検証するのに役立ちます。
このアクションは Google SecOps エンティティに対して実行されません。
アクションの入力
関係タイプを一覧表示アクションには、次のパラメータが必要です。
| パラメータ | 説明 |
|---|---|
Filter Key |
省略可。 関係タイプのフィルタリングに使用されるフィールド。 フィルタ ロジックが 値は次のいずれかになります。
デフォルト値は |
Filter Logic |
省略可。 フィルタに適用される論理演算子。 値は次のいずれかになります。
デフォルト値は |
Filter Value |
省略可。 選択された 値が指定されていない場合、キーとロジックが選択されていても、フィルターは適用されません。 |
Max Records To Return |
省略可。 結果として返されるレコードの最大数。 デフォルト値は |
アクションの出力
List Relation Types アクションは、以下の出力を提供します。
| アクションの出力タイプ | 対象 |
|---|---|
| ケースウォールのアタッチメント | 利用不可 |
| ケースウォールのリンク | 利用不可 |
| ケースウォール テーブル | 利用可能 |
| 拡充テーブル | 利用不可 |
| JSON の結果 | 利用可能 |
| 出力メッセージ | 利用可能 |
| スクリプトの結果 | 利用可能 |
ケースウォール テーブル
リレーションタイプの一覧表示アクションは、次の表を提供します。
テーブル名: 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 ユーザー名。 |
| コンポーネント | 文字列 | なし | × | 問題の構成要素分野。 このパラメータは、カンマ区切りの文字列として複数の値を受け入れます。 |
| カスタム フィールド | JSON | なし | × | 課題作成時に使用されるすべてのフィールドと値を含む JSON オブジェクトを指定してください。 注: このパラメータは優先され、このパラメータに指定された値ですべてのフィールドが上書きされます。 例: {"field":"value"} |
| ラベル | 文字列 | なし | × | 問題の構成要素分野。 このパラメータは、カンマ区切りの文字列として複数の値を受け入れます。 |
実行
このアクションはすべてのエンティティに対して実行されます。
アクションの結果
スクリプトの結果
| スクリプトの結果名 | 値のオプション | 例 |
|---|---|---|
| 成功 | 正しい / 誤り | 成功:偽 |
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 オブジェクト。構成の詳細と例については、終了理由とカスタム フィールドのマッピングをご覧ください。 |
クローズ理由とカスタム フィールドのマッピング
次の詳細と例を使用して、クローズ理由とカスタム フィールドのカスタム マッピングを構成します。
Closed Reason Mapping(クローズの理由のマッピング)
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 Comment Prefix パラメータを使用して、対応する 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 のプロフェッショナルから回答を得ることができます。