Atlassian Confluence Server と Google SecOps を統合する

このドキュメントでは、Atlassian Confluence Server を Google Security Operations(Google SecOps)と統合する方法について説明します。

統合バージョン: 3.0

前提条件

Confluence Server に対して認証するには、次のいずれかのオプションを選択します。

  • 専用アカウントのユーザー名とパスワード。
  • 個人用アクセス トークン(PAT)。

統合に両方の認証オプションが指定されている場合、PAT はユーザー名とパスワードよりも優先されます。

ユーザー名とパスワードに基づく認証では、統合に使用する専用アカウントを作成する必要があります。
アクセス トークンに基づく認証では、アカウント権限を構成する必要があります。作成された新しい PAT は、アカウントの現在の権限レベルに対応します。

トークンを作成する手順は次のとおりです。

  1. Confluence で、[アカウント] > [アカウント設定] > [個人用アクセス トークン] に移動します。
  2. [トークンを作成] を選択します。
  3. 作成するトークンに名前を付けます。
  4. (省略可)セキュリティを強化するために、設定した日数の経過後にトークンが自動的に期限切れになるように構成できます。
  5. [作成] をクリックします。

統合のパラメータ

統合には次のパラメータが必要です。

パラメータ名 タイプ デフォルト値 必須 説明
API ルート 文字列 https://ip_address 正しい 接続する Confluence Server Api Root を指定します。
ユーザー名 文字列 なし 誤り 接続に使用するユーザー名を指定します。統合では、ユーザー名とパスワードまたは個人用アクセス トークンのいずれかで認証をサポートしています。
パスワード パスワード なし 誤り 接続に使用するパスワードを指定します。統合では、ユーザー名とパスワードまたは個人用アクセス トークンのいずれかで認証がサポートされています。
個人用アクセス トークン パスワード なし 誤り 接続に使用するトークンを指定します。統合では、ユーザー名とパスワードまたは個人用アクセス トークンのいずれかで認証がサポートされています。
SSL を確認する チェックボックス チェックボックスがオン 誤り 有効になっている場合は、API ルート用に構成された証明書が検証されます。

Google SecOps で統合を構成する手順については、統合を構成するをご覧ください。

必要に応じて、後の段階で変更できます。統合インスタンスを構成すると、ハンドブックで使用できるようになります。複数のインスタンスの構成とサポートの方法については、複数のインスタンスのサポートをご覧ください。

操作

アクションの詳細については、 デスクから保留中のアクションに対応する手動アクションを実行するをご覧ください。

Ping

接続をテストする。

パラメータ

なし

実行

このアクションはエンティティに対して実行されません。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション
is_success True/False is_success:False

アクションが成功した場合(レスポンスに JSON が含まれており、サーバー レスポンスが 200 の場合)、is_successTrue に設定する必要があります。それ以外の場合は False です。

ケースウォール
結果のタイプ 値 / 説明 タイプ(エンティティ/全般)
出力メッセージ * アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。
  • 成功した場合:
    「指定された接続パラメータを使用して Atlassian Confluence Server インスタンスに正常に接続されました。」と出力されます。
  • ユーザー名とパスワード、PAT の両方が指定されている場合:
    「統合用にユーザー名とパスワード、個人用アクセス トークンの両方が指定されています。接続には個人用アクセス トークンが使用されます。」

アクションが失敗し、ハンドブックの実行が停止します。
  • (ユーザー名 + パスワード)と PAT の両方が指定されていない場合:
    「Atlassian Confluence Server への接続に失敗しました。接続するにはユーザー名とパスワード、または個人用アクセス トークンが必要です。」と出力されます。
  • 認証情報の誤りや接続の切断などの重大なエラーの場合:
    print "Failed to connect to the Atlassian Confluence Server instance! エラーは {0}」.format(exception.stacktrace)
全般

ページの一覧表示

指定された条件に基づいて、Atlassian Confluence Server インスタンスで使用可能なページを一覧表示します。

パラメータ

パラメータ名 種類 デフォルト値 必須 説明
フィルタ キー DDL Select One

DDL の有効な値:
  • タイトル
  • スペース名
  • ステータス
誤り ページのフィルタリングに使用する必要があるキーを指定します。
フィルタ ロジック DDL 指定なし

DDL の有効な値:
  • 指定なし
  • 等しい
  • 次を含む
誤り 適用するフィルタ ロジックを指定します。フィルタリング ロジックは、Filter Key パラメータで指定される値に基づいて機能します。
フィルタ値 文字列 なし 誤り フィルタで使用する値を指定します。
Equal が選択されている場合、アクションは結果から完全一致を探します。
Contains が選択されている場合、アクションはその部分文字列を含む結果を検索しようとします。
このパラメータに何も指定しないと、フィルタは適用されません。
フィルタリング ロジックは、Filter Key パラメータで指定される値に基づいて機能します。
返されるレコードの最大数 Int 50 誤り 返すレコードの数を指定します。
何も指定しないと、アクションは 50 件のレコードを返します。

実行

このアクションはエンティティに対して実行されません。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション
is_success True/False is_success:False

アクションが正常に実行された場合(エラーが返されず、サーバー レスポンスが 200 OK の場合)、is_successTrue に設定されます。

JSON の結果
{
   "results": [
       {
           "id": "PAGE_ID",
           "type": "page",
           "status": "current",
           "title": "Tell people what you think in a comment (step 8 of 9)",
           "space": {
               "id": 131073,
               "key": "ds",
               "name": "Demonstration Space",
               "type": "global",
               "_links": {
                   "webui": "/display/ds",
                   "self": "http://192.0.2.45:8090/rest/api/space/ds"
               },
               "_expandable": {
                   "metadata": "",
                   "icon": "",
                   "description": "",
                   "retentionPolicy": "",
                   "homepage": "/rest/api/content/PAGE_ID"
               }
           },
           "extensions": {
               "position": 7
           },
           "_links": {
               "webui": "/pages/viewpage.action?pageId=PAGE_ID",
               "edit": "/pages/resumedraft.action?draftId=DRAFT_ID",
               "tinyui": "/x/AYAB",
               "self": "http://192.0.2.45:8090/rest/api/content/PAGE_ID"
           },
           "_expandable": {
               "container": "/rest/api/space/ds",
               "metadata": "",
               "operations": "",
               "children": "/rest/api/content/PAGE_ID/child",
               "restrictions": "/rest/api/content/PAGE_ID/restriction/byOperation",
               "history": "/rest/api/content/PAGE_ID/history",
               "ancestors": "",
               "body": "",
               "version": "",
               "descendants": "/rest/api/content/PAGE_ID/descendant"
           }
       },
       ...
   ],
   "start": 0,
   "limit": 5,
   "size": 5,
   "_links": {
       "self": "http://192.0.2.45:8090/rest/api/content?expand=space",
       "next": "/rest/api/content?expand=space&limit=5&start=5",
       "base": "http://192.0.2.45:8090",
       "context": ""
   }
}
ケースウォール
結果のタイプ 値 / 説明 タイプ(エンティティ/全般)
出力メッセージ * アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。

  • データが利用可能な場合(is_success = true):
「Atlassian Confluence Server で指定された条件のページが正常に見つかりました」と出力します。

  • データが利用できない場合(is_success=false)
「Atlassian Confluence Server で指定された条件に対応するページが見つかりませんでした」と出力します。

  • 「フィルタ値」が空の場合(is_success=true):
パラメータ「フィルタ値」の値が空であるため、フィルタは適用されませんでした。

アクションが失敗し、ハンドブックの実行が停止します。

  • フィルタ キー == 「1 つ選択」かつフィルタ ロジックが「Equal」または「Contains」の場合:
アクション「{action name}」の実行中にエラーが発生しました。理由: Filter Key パラメータからフィールドを選択する必要があります。

  • 返される最大レコード数に無効な値が指定されている場合:
アクション「{action name}」の実行中にエラーが発生しました。理由: 「返される最大レコード数」に無効な値 <指定された値> が指定されました。正の数値を指定する必要があります。」

  • 認証情報が誤っている、サーバーへの接続がないなど、致命的なエラーの場合:
「アクション「{アクション名}」の実行中にエラーが発生しました。理由: {0}''.format(error.Stacktrace)

  • ユーザー名とパスワード、PAT の両方が指定されていない場合:
「Atlassian Confluence Server への接続に失敗しました。接続にはユーザー名とパスワード、または個人用アクセス トークンが必要です。」と出力されます。
全般
Case Wall テーブル 名前: 利用可能な Confluence ページ
列:
  • ID
  • タイトル
  • スペース
  • ステータス
  • 作成日時
全般

ID でページを取得する

ID で Atlassian Confluence Server ページを取得します。

パラメータ

パラメータ名 種類 デフォルト値 必須 説明
ページ ID 文字列 なし 正しい 返すページ ID を指定します。
展開 CSV body.storage 誤り expand パラメータを指定して、ページに関する追加情報を返します。このパラメータは、カンマ区切りのリストとして複数の値を受け入れます。
デフォルトでは、ページのコンテンツは body.storage で取得されます。

実行

このアクションはエンティティに対して実行されません。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション
is_success True/False is_success:False

アクションが正常に実行された場合(ページが返され、サーバー レスポンスが 200 OK の場合)、is_successTrue に設定されます。

JSON の結果
{
   "id": "PAGE_ID",
   "type": "page",
   "status": "current",
   "title": "title",
   "body": {
       "storage": {
           "value": "<p>test page</p><p>11</p><p>aa</p><p>aa</p><p>aa</p><p><br /></p><p><br /></p>",
           "representation": "storage",
           "_expandable": {
               "content": "/rest/api/content/PAGE_ID"
           }
       },
       "_expandable": {
           "editor": "",
           "view": "",
           "export_view": "",
           "styled_view": "",
           "anonymous_export_view": ""
       }
   },
   "extensions": {
       "position": "none"
   },
   "_links": {
       "webui": "/display/SIEM/111",
       "edit": "/pages/resumedraft.action?draftId=PAGE_ID&draftShareId=cf8b3a21-8e36-4a83-a696-51fcb4428d1c",
       "tinyui": "/x/TIAB",
       "collection": "/rest/api/content",
       "base": "http://192.0.2.45:8090",
       "context": "",
       "self": "http://192.0.2.45:8090/rest/api/content/PAGE_ID"
   },
   "_expandable": {
       "container": "/rest/api/space/SIEM",
       "metadata": "",
       "operations": "",
       "children": "/rest/api/content/PAGE_ID/child",
       "restrictions": "/rest/api/content/PAGE_ID/restriction/byOperation",
       "history": "/rest/api/content/PAGE_ID/history",
       "ancestors": "",
       "version": "",
       "descendants": "/rest/api/content/PAGE_ID/descendant",
       "space": "/rest/api/space/SIEM"
   }
}
ケースウォール
結果のタイプ 値 / 説明 タイプ(エンティティ/全般)
出力メッセージ * アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。

  • ページが見つかった場合(is_success = true):
print "Successfully fetched page information with id: <id>"

  • データが利用できない場合(is_success=false):
「次のページ ID が Atlassian Confluence Server に見つかりませんでした: <ページ ID>」と出力されます。

アクションが失敗し、ハンドブックの実行が停止します。

  • 認証情報が誤っている、サーバーへの接続がないなど、致命的なエラーの場合:
「アクション「<アクション名>」の実行中にエラーが発生しました。理由: {0}」.format(error.Stacktrace)

  • ユーザー名とパスワード、PAT の両方が指定されていない場合:
「Atlassian Confluence Server への接続に失敗しました。接続にはユーザー名とパスワード、または個人用アクセス トークンが必要です。」と出力されます。
全般

子ページを取得する

Atlassian Confluence Server ページのサブページを取得します。

パラメータ

パラメータ名 種類 デフォルト値 必須 説明
ページ ID 文字列 なし 正しい 返すページ ID を指定します。
返されるレコードの最大数 Int 10 正しい 返す子ページの制限を指定します。

実行

このアクションはエンティティに対して実行されません。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション
is_success True/False is_success:False

アクションが正常に実行された場合(ページが返され、サーバー レスポンスが 200 OK の場合)、is_successTrue に設定されます。

JSON の結果
{
   "results": [
       {
           "id": "PAGE_ID",
           "type": "page",
           "status": "current",
           "title": "test child page!",
           "extensions": {
               "position": "none"
           },
           "_links": {
               "webui": "/pages/viewpage.action?pageId=PAGE_ID",
               "edit": "/pages/resumedraft.action?draftId=PAGE_ID&draftShareId=799fd068-5053-4889-9120-c1a3c970fdbd",
               "tinyui": "/x/T4AB",
               "self": "http://192.0.2.45:8090/rest/api/content/PAGE_ID"
           },
           "_expandable": {
               "container": "/rest/api/space/SIEM",
               "metadata": "",
               "operations": "",
               "children": "/rest/api/content/PAGE_ID/child",
               "restrictions": "/rest/api/content/PAGE_ID/restriction/byOperation",
               "history": "/rest/api/content/PAGE_ID/history",
               "ancestors": "",
               "body": "",
               "version": "",
               "descendants": "/rest/api/content/PAGE_ID/descendant",
               "space": "/rest/api/space/SIEM"
           }
       }
   ],
   "start": 0,
   "limit": 1,
   "size": 1,
   "_links": {
       "self": "http://192.0.2.45:8090/rest/api/content/PAGE_ID/child/page",
       "base": "http://192.0.2.45:8090",
       "context": ""
   }
}
ケースウォール
結果のタイプ 値 / 説明 タイプ(エンティティ/全般)
出力メッセージ * アクションが失敗したり、ハンドブックの実行が停止したりすることはありません。

データが利用可能な場合(is_success = true):
「指定された Atlassian Confluence Server ページ ID <page_id> の子ページが見つかりました」と出力されます。

データが利用できない場合(is_success=false)
「指定された Atlassian Confluence Server ページ ID <page_id> の子ページが見つかりませんでした」と出力されます。

アクションが失敗し、ハンドブックの実行が停止します。

  • 返される最大レコード数に無効な値が指定されている場合:
アクション「{action name}」の実行中にエラーが発生しました。理由: 「返される最大レコード数」に無効な値 <指定された値> が指定されました。正の数値を指定する必要があります。」

  • 認証情報が誤っている、サーバーへの接続がないなど、致命的なエラーの場合:
「アクション「{アクション名}」の実行中にエラーが発生しました。理由: {0}''.format(error.Stacktrace)
  • ユーザー名とパスワード、PAT の両方が指定されていない場合:
print "Failed to connect to Atlassian Confluence Server, expecting either username and password, or personal access token to connect with!"
全般

ページのコメントを取得する

Atlassian Confluence Server ページのコメントを取得します。

パラメータ

パラメータ名 種類 デフォルト値 必須 説明
ページ ID 文字列 なし 正しい 返すページ ID を指定します。
展開 CSV body.storage 誤り expand パラメータを指定して、ページに関する追加情報を返します。このパラメータは、カンマ区切りのリストとして複数の値を受け入れます。
デフォルトでは、ページのコンテンツは body.storage で取得されます。
返されるレコードの最大数 Int 10 正しい 返す子ページの制限を指定します。

実行

このアクションはエンティティに対して実行されません。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション
is_success True/False is_success:False

アクションが正常に実行された場合(コメントが返され、サーバー レスポンスが 200 OK の場合)、is_successTrue に設定されます。

JSON の結果
{
   "results": [
       {
           "id": "ID",
           "type": "comment",
           "status": "current",
           "title": "Re: 111",
           "body": {
               "storage": {
                   "value": "<p>comment1</p>",
                   "representation": "storage",
                   "_expandable": {
                       "content": "/rest/api/content/ID"
                   }
               },
               "_expandable": {
                   "editor": "",
                   "view": "",
                   "export_view": "",
                   "styled_view": "",
                   "anonymous_export_view": ""
               }
           },
           "extensions": {
               "location": "footer",
               "_expandable": {
                   "resolution": ""
               }
           },
           "_links": {
               "webui": "/display/SIEM/111?focusedCommentId=98387#comment-ID",
               "self": "http://203.0.113.1:8090/rest/api/content/ID"
           },
           "_expandable": {
               "container": "/rest/api/content/ID",
               "metadata": "",
               "operations": "",
               "children": "/rest/api/content/ID/child",
               "restrictions": "/rest/api/content/ID/restriction/byOperation",
               "history": "/rest/api/content/ID/history",
               "ancestors": "",
               "version": "",
               "descendants": "/rest/api/content/ID/descendant",
               "space": "/rest/api/space/SIEM"
           }
       },
       ...
   ],
   "start": 0,
   "limit": 10,
   "size": 2,
   "_links": {
       "self": "http://203.0.113.1:8090/rest/api/content/ID/child/comment?expand=body.storage",
       "base": "http://203.0.113.1:8090",
       "context": ""
   }
}
ケースウォール
結果のタイプ 値 / 説明 タイプ(エンティティ/全般)
出力メッセージ * アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。

  • データが利用可能な場合(is_success = true):
「指定された Atlassian Confluence Server ページ ID <page_id> のページ コメントを正常に取得しました」と出力します。

  • データが利用できない場合(is_success=false)
「指定された Atlassian Confluence Server ページ ID <page_id> のページ コメントが見つかりませんでした」と出力されます。

アクションが失敗し、ハンドブックの実行が停止します。

  • 返される最大レコード数に無効な値が指定されている場合:
アクション「{action name}」の実行中にエラーが発生しました。理由: 「返される最大レコード数」に無効な値 <指定された値> が指定されました。正の数値を指定する必要があります。」

  • 認証情報が誤っている、サーバーへの接続がないなど、致命的なエラーの場合:
「アクション「{アクション名}」の実行中にエラーが発生しました。理由: {0}''.format(error.Stacktrace)

  • ユーザー名とパスワード、PAT の両方が指定されていない場合:
「Atlassian Confluence Server への接続に失敗しました。接続するには、ユーザー名とパスワード、または個人用アクセス トークンが必要です。」と出力されます。
全般

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。