ServicServiceNow CMDB Tanium Change Request自動化 Flow Designer連携テンプレート の設計例

全体アーキテクチャ概要

Tanium(Asset / Patch / Threat Response)
       │
       ▼
REST API / Service Graph Connector
       │(定期スケジュールまたはイベントトリガ)
       ▼
ServiceNow CMDB(構成アイテム更新)
       │
       ▼
Flow Designer Flow:
  - Trigger: CMDB変更イベント
  - Condition: 重要CI変更 or 脆弱性検出
  - Actions:
      1. CI情報取得(Get Record)
      2. Change Request自動生成
      3. 承認ワークフロー呼び出し
      4. Taniumへ修復コマンド送信(PATCH API)

Flow Designer テンプレート構成

Trigger(トリガー)の構成

| 項目       | 内容                                                                       |
| -------- | ------------------------------------------------------------------------ |
| タイプ      | **Record Updated**                                                       |
| テーブル     | `cmdb_ci_computer`(または関連CIクラス)                                           |
| 条件       | `[Last Updated Source] = "Tanium"` AND `[Operational Status] = "Active"` |
| トリガー後の変数 | `current`(更新対象CIのsys_id)                                                 |

アクション 1:CI情報取得

Action: Get Record
Table: cmdb_ci_computer
Input: Sys ID = {{current.sys_id}}
Output: ci_record

目的: Taniumから更新されたCIの詳細(ホスト名・OS・IP・所有部門など)を取得。

アクション 2:脆弱性・変更検出条件

If (ci_record.os_version contains "vulnerable_version") OR
   (ci_record.last_scan_date < now() - 30 days)

目的: Tanium側で検出された古いパッチ・脆弱性をトリガーに変更要求を発行。

アクション 3:Change Request 自動生成

Action: Create Record
Table: change_request
Fields:
  short_description: "Tanium検出: {{ci_record.name}} の脆弱性対応"
  category: "Software"
  priority: "2 - High"
  cmdb_ci: {{ci_record.sys_id}}
  assignment_group: "IT Operations"
  description: |
    Taniumより脆弱性情報を受信しました。
    対象: {{ci_record.name}}
    OS: {{ci_record.os_version}}
    最終スキャン日: {{ci_record.last_scan_date}}

アクション 4:承認フロー呼び出し(オプション)

Action: Subflow
Subflow: "Change Management - Normal Flow"
Inputs:
  change_request: {{steps.Create_Change_Request.record_sys_id}}

アクション 5:Tanium Patch 実行(オプション)

Tanium Spoke または REST ステップを使用
(Tanium API v2 / Endpoint 「/api/v2/packages/deployments」

Action: REST Step
Method: POST
Endpoint: https://<tanium-host>/api/v2/packages/deployments
Headers:
  Authorization: Bearer {{tanium_token}}
Body:
  {
    "package_spec": "Apply_Patch_Latest",
    "target_group": "{{ci_record.name}}"
  }

結果を変数 patch_response に格納し、成功時に Change Request を「実施中」へ更新。

変数構成(Flow変数)

| 変数名              | 型      | 説明                                     |
| ---------------- | ------ | -------------------------------------- |
| `ci_record`      | Object | CMDB CI 情報                             |
| `tanium_token`   | String | Tanium API 認証トークン(Connection Aliasで管理) |
| `patch_response` | Object | TaniumからのREST応答                        |
| `change_id`      | String | 作成されたChange Requestのsys_id             |

運用スケジュール例

| 項目               | 内容                                |
| ---------------- | --------------------------------- |
| Tanium データ同期     | 1時間ごと(Service Graph Connectorジョブ) |
| Flow Designer 実行 | CMDB更新時自動発火                       |
| Change 承認フロー     | 1次(担当者)→2次(管理者)                   |
| Tanium修復API呼び出し  | 承認完了後自動実行                         |

 

IT

Posted by arkgame