CSE Automation で Slack 連携してみた

 2024.03.11  AI

こんにちは(‾◡◝)

技術統括部のAIです。相変わらず人間です。

今回は下記の記事で説明したCSE AutomationとSlackを連携してみました。
Sumo Logic の CSE Automation でメール通知したい

目的はインサイトが生成されたタイミングでインサイト情報をSlackに通知させます。
下記を実行するイメージです。

  1. Slackにインサイト名のチャンネルを作成
  2. インサイトにアサインされた人がいれば、チャンネルにインバイト
  3. アサインされていない場合、特定の人をインバイト
  4. チャンネルにインサイトのURLを送る

また今回はSlack側の設定をしていくのと、CSE Automation のPlaybookを1から作るのではなく、メーカ提供のサンプルPlaybookを使います。

サンプルPlaybookでは1と2はすでに設定されているため、記事後半では3と4を実装していきます。

前提条件

下記を前提で記事を記載しております。

  • CSEが利用可能な環境であること
  • Slackの管理者権限を持つアカウントが利用可能であること

Slackの設定

下記の記事をもとに設定を進めていきます。
Sumo Logic Slack連携設定

まずはこちらに接続します。
Slackにログインしていない場合、[sign in to your Slack account] からログインします。
01-1-1

ログイン後、SlackにAppを作りますので、[From scratch]をクリックします。
このAppはSlackでチャンネルを作成したりメッセージを送ったりする役目を持ちます。
02-1-1
04-1-1

[App Name] と Slackのワークスペースを選択し、[Create App] をクリックします。
05-1-1

Appが作成されると、Basic Information画面が表示されるので、[Permissions] から権限を付与していきます。
06-1-1

[OAuth & Permissions] メニューの[Bot Token Scopes] と [User Token Scopes]に下記の表で〇になっている権限を付与します。
※今回の説明では使用しない権限も含めておりますので、必要に応じて権限の取捨選択をお願いいたします。

OAuth Scopes [Bot Token Scopes] [User Token Scopes]
channels:history
channels:manage ×
channels:read
channels:write ×
chat:write
groups:history
groups:read
groups:write
users:read
users:read.email
search:read ×

各権限に関する説明はこちらのヘルプページの手順#8をご参照ください。

権限の設定ができましたら、Slackのワークスペースにインストールするため[Install to Workspace]ボタンをクリックします。
09-1-1

AppをインストールするとTokenが生成されます。今回は[Bot User OAuth Token]を使うため、こちらをコピーします。
10-1-3

以上でSlack側の設定は完了です。

次はCSE Automation側で生成したTokenを使ってSlackを連携します!

CSE Automation の設定

CSE Automation側でSlackと連携するための設定をしていきます。

まずはSumo Logicにログイン後、[Cloud SIEM Enterprise] -> [Configration] -> [INTEGRATIONS / Automation] -> [Manage Playbooks] の順に画面を遷移します。

デフォルトのままではAutomationでSlackを使うことはできないため、Sumo Logic上でSlackをダウンロードします。
12-1-2

[App Central]タブからSlackを検索し、[Slack]をクリックします。
11-2-1

[INSTALL]をクリックするとダウンロードとインストールが開始されます。
13-1-1

完了すると一覧画面で[INSTALLED]と表示されます。
14-2

[Integrations]タブからSlackが追加されたので、[+ Resources]から前節で生成したTokenを利用するリソースを追加します。
15-1-1

[Label] と [Bot/User OAuth Token] を入力します。
今回はBotとしても動作させたいため、前節で生成した[Bot User OAuth Token]を使用します。
16-1

事前にTokenが使用可能か確認したい場合は[TEST]ボタンを押してください。
設定を保存する場合は[SAVE]をクリックします。

これでCSE AutomationでSlackを使えるようになりました。

次はSlackのサンプルPlaybookをもとにフローを作っていきます!

SlackのPlaybook作成

引き続きPlaybookの画面で操作していきます。

まずは[App Central]タブで[PLAYBOOKS]メニューを選択し、Slackを検索します。
[519 - Send Insight Slack Notification]をクリックし、案内に従ってインストールします。
17-1-1

[Playbooks]タブから[519]のPlaybookが追加れさています。
18-1

上記のPlaybookをそのまま編集いただくこともできますが、今回は複製(Duplicate)したものを編集します。19-1-2

冒頭で記載したとおり、インサイト名のチャンネル作成とアサインされた人をインバイトする処理は含まれているため、今回は下記2点を実装します。

  1. アサインされていない場合、特定の人をインバイト
  2. チャンネルにインサイトのURLを送る

では分かりやすくするために見出しを変えますね!

追加処理1:特定の人をチャンネルにインバイト

まず全体の処理フローは下記のようになっています。

  1. インサイトのセベリティ(Severity)が高い(High)かどうか判断
    1. 条件に一致する場合、2.に進む
    2. 条件に不一致の場合、処理を終了
  2. インサイト名(readableId)のチャンネルを作成
    readableIdとは、「INSIGHT-*」から始まるものです。*には数字が入ります。
  3. インサイトにアサインされた人がいないか判断
    1. 条件に一致する場合(アサインしていない)、6.に進む
    2. 条件に不一致の場合(アサインされている)、4.に進む
  4. アサインされた人のメールアドレスをもとにユーザーを検索
  5. 検索したユーザーを作成したチャンネルにインバイト
  6. チャンネルにメッセージを送る
  7. 処理終了

今回は上記の3-1でアサインされた人がいない場合、特定の人をインバイトさせる処理を追加します。

[Search User]のアクションを複製したものを上に移動し、[CONDITION]の上側のリンクを削除します。21-1-122-1-1

[CONDITION]と複製したアクションをつなげた後、アクションの中身を編集します。23-1

[Search (User)]のゴミ箱マークで設定値を消し、アサインしたいユーザーのメールアドレスを直接入力し、設定を更新します。24-1

先ほどと同様に、[Invite To Channel]のアクションも複製し、[Search User] と [Send Message] とつなげます。25-1

複製した[Invite To Channel]ですが、一度編集して[User IDs]を選択しなおしてください。26-1

※複製したアクションをクリックすると詳細を確認できますが、[User IDs]が空欄になっている場合、上記の手順を踏んでください。
27-1-1

これでインサイトにアサインされた人がいない場合、特定の人をインバイトさせる処理が追加できました。

次はチャンネルに送るメッセージを修正して、インサイトのリンクを追加したいと思います!

追加処理2:メッセージの編集

ここではチャンネルに送るメッセージの中にインサイトのリンクを追加し、Slackのチャンネルからインサイトに接続できるようにします。

まず[Send Message]のアクションを編集します。
28-1-1

[Text]部分に下記の文章を追記します。
Link: https://service.sumologic.com/sec/insight/

※URLはサブドメインを設定している場合やリージョンによって変わりますので、ご利用の環境に合ったURLをご入力ください。
 今回はサブドメインを登録していない日本リージョンの環境を想定しております。

上記の末尾にPlaybookのパラメーターを定義し、設定を更新します。
29-1-1

これでPublishすれば完成です!

ここで作成したPlaybookをCSE側で使えるようにする方法は、下記記事から「CSEとPlaybookの連携方法」に手順をまとめているので、こちらをご確認ください。
Sumo Logic の CSE Automation でメール通知したい

動作確認(簡易)

別のAppを使っていますが、今回作成したPlaybookを実行すると、チャンネルとメッセージを確認できました。

30-1-2

まとめ

CSE AutomationとSlackの連携についていかがでしたか。

Slackを業務利用されている環境ではメールより確認しやすいということもあるかもしれません。
気になった方はぜひメーカ提供のPlaybookを使ってSlack連携してみてください。

以上、CSE AutomationとSlack連携でした!


RECENT POST「Sumo Logic」の最新記事


Sumo Logic

Sumologicで目にするOpen Telemetry Collectorとは(前編)

Sumo Logic

Sumo Logic ダッシュボードやフォルダ共有について

Sumo Logic

Sumo Logicに関するサポート内容のご紹介

Sumo Logic

Insight Trainerの活用方法 ~Sumo Logic CSEチューニングをより簡単に~

CSE Automation で Slack 連携してみた