Atlassian Confluence Server を Google SecOps と統合する

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

前提条件

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

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

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

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

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

  1. Confluence で、[Account] > [Account settings] > [Personal access tokens] に移動します。
  2. [Create token] を選択します。
  3. 作成するトークンに名前を付けます。
  4. (省略可)セキュリティを強化するため、設定した日数が経過するとトークンが自動的に期限切れになるように構成できます。
  5. [作成] をクリックします。

統合のパラメータ

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

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

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

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

操作

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

Ping

接続をテストする。

パラメータ

なし

実行

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

アクションの結果

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

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

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

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

ページの一覧表示

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

パラメータ

パラメータ名 種類 デフォルト値 必須 説明
フィルタ キー DDL 1 つ選択

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

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

実行

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

アクションの結果

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

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

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)
print "Atlassian Confluence Server で指定された条件に対応するページが見つかりませんでした"

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

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

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

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

  • 認証情報が誤っている、サーバーへの接続がないなど、致命的なエラーの場合、その他:
「アクション「{action name}」の実行エラー。Reason: {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!"
全般
Case Wall テーブル 名前: 使用可能な Confluence ページ
列:
  • ID
  • タイトル
  • スペース
  • ステータス
  • 作成済み
全般

ID でページを取得する

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

パラメータ

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

実行

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

アクションの結果

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

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

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 で見つかりませんでした: <page id>」と出力されます。

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

  • 認証情報が誤っている、サーバーへの接続がないなど、致命的なエラーの場合、その他:
「アクション「<アクション名>」の実行中にエラーが発生しました。理由: {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 を指定します。
返されるレコードの最大数 Int 10 正しい 返される子ページの制限を指定します。

実行

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

アクションの結果

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

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

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}」の実行中にエラーが発生しました。理由: 「返される最大レコード数」に無効な値 <指定された値> が指定されました。正の数を指定してください。

  • 認証情報が誤っている、サーバーへの接続がないなど、致命的なエラーの場合、その他:
「アクション「{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 False ページに関する追加情報を返すには、expand パラメータを指定します。このパラメータは、カンマ区切りのリストとして複数の値を受け入れます。
デフォルトでは、ページのコンテンツは body.storage で取得されます。
返されるレコードの最大数 Int 10 正しい 返される子ページの制限を指定します。

実行

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

アクションの結果

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

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

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}」の実行中にエラーが発生しました。理由: 「返される最大レコード数」に無効な値 <指定された値> が指定されました。正の数を指定してください。

  • 認証情報が誤っている、サーバーへの接続がないなど、致命的なエラーの場合、その他:
「アクション「{action name}」の実行エラー。Reason: {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!"
全般

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