2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

30分で始める!AWS Kendra × Slack 社内ナレッジ検索

Last updated at Posted at 2025-12-18

記事を書いた人

こんにちは!
株式会社マーズフラッグの城倉です。
現在、SREを担当しております。
社内での業務に取り組みながら、知識の拡充を目指して日々成長を追求しています。
この記事が皆さんのKendra活用の一歩になれば幸いです!

記事の構成

はじめに

Slackで過去のやり取りを探すとき、こんな経験ありませんか?

  • キーワードを変えて何度も検索
  • 複数のチャンネルを行ったり来たり
  • 結局見つからず諦める

AWS Kendraを使えば、「あのとき話してた〇〇の件」みたいな曖昧な記憶からでも、関連する会話を見つけられます。

この記事では、KendraとSlackを連携させる手順を解説します。

読んでほしい人

  • Slackの情報検索に時間がかかっている人
  • AWS Kendraに興味がある人

必要なもの

  • AWSアカウント
  • Slack workspaceの管理者権限

AWS Kendraについて

機械学習を使った検索サービスです。

特徴

  • 質問文での検索に対応
  • 文脈を理解して関連情報を提示
  • 検索結果を重要度順に並べる

Slack連携のメリット

  • 過去の議論をまとめて検索
  • チャンネルをまたいだ情報収集
  • 「誰がいつ言ったか」まで記録

まずは全体像を理解しよう!

今回やることは、シンプルに3ステップ:

  1. Slack側の準備:アプリを作成してトークンを取得
  2. AWS側の準備:Kendraインデックスを作成
  3. 接続と検索:SlackとKendraを繋いで検索

手順1:Slack側の準備

Slackアプリを作成して、Kendraからアクセスできるようにします。

アプリの新規作成

https://api.slack.com/apps を開いて:

  1. 「Create New App」をクリック
  2. 「From scratch」を選ぶ
  3. アプリ名と対象workspaceを入力
  4. 「Create App」で作成

権限の付与

「OAuth & Permissions」メニューから「Scopes [Bot Token Scopes]」へ。

以下の権限を追加します:

基本となる権限

  • channels:history channels:read
  • groups:history groups:read
  • users:read users:read.email users.profile:read
  • team:read usergroups:read

追加で必要な権限

  • im:history im:read
  • mpim:history mpim:read
  • emoji:read files:read

トークンの発行

  1. 「OAuth & Permissions」メニューから「OAuth Tokens」へ移動
  2. 「Install to Workspace」を実行
  3. 権限確認画面で承認
  4. 「Bot User OAuth Token」をコピー

メモxoxb-から始まる文字列です。後で使うので保存しておきましょう。

チャンネルへの追加

作成したアプリは、追加したチャンネルのみ読み取れます。

やり方

  • チャンネル内で @アプリ名 とメンション
  • 「追加しますか?」と聞かれるので承認

これで対象チャンネルの情報が取得可能になります。


手順2:Kendra側の準備

インデックスを作る

Kendraコンソールを開いて:

  1. 「Create an index」を選択
  2. 名前を入力(例:slack-index)
  3. エディションは「Developer edition」
  4. IAMロールは新規作成
  5. 作成を実行

待ち時間:15分ほどかかります。ステータスが「Active」になるまで待ちましょう。

データソースを追加

インデックスができたら:

  1. 「Data sources」タブを開く
  2. 「Add data source」をクリック
  3. 一覧から「Slack」を探して選択

接続情報の入力

名前と言語

  • データソース名を決める
  • 言語は「Japanese」

Workspace情報

  • Team ID:SlackのURLから確認できます
    https://app.slack.com/client/T12345678/...
    この T12345678 の部分
    

トークンの保存

  • 「Create and add new secret」を押す
  • Secret nameを入力
  • Valueに先ほどのトークンを設定
{
  "token": "xoxb-..."
}

IAMロール

  • 新規作成を選択
  • 名前を付けて次へ

同期の設定

取得対象

  • Public channelsにチェック
  • 特定チャンネルを指定するか全体か選択

オプション

  • ボットのメッセージも含めるか
  • アーカイブ済みも含めるか

スケジュール

  • 最初は「Run on demand」(手動)がおすすめ
  • 後から定期実行に変更可能

同期範囲

  • どこまで過去に遡るか指定

設定を確認して「Add data source」で完了。


手順3:同期と検索

最初の同期

データソース一覧で「Sync now」を実行。

進捗が見られるので、完了するまで待ちます(数分程度)。

「Documents」の数字が増えていれば成功です。

検索を試す

  1. インデックス画面で「Search indexed content」
  2. 言語を「Japanese」に設定
  3. 検索ボックスに質問を入力

試してみよう

キーワードより文章で聞いた方が精度が上がります:

良い例:
「先月の障害対応でどんな対策を取った?」
「新機能のリリース予定はいつ?」
「AWSコストの話題が出たのはいつ?」

あまり良くない例:
「障害」
「AWS」

結果には投稿者やチャンネル、日時も表示されます。


おわりに

これでSlackの過去ログを自然言語で検索できるようになりました。

できるようになったこと

  • 曖昧な記憶から情報を探せる
  • 複数チャンネルをまとめて検索
  • 重要度順に結果が並ぶ

発展させるなら

  • PrivateチャンネルやDMも対象にする
  • Google DriveやNotionも連携
  • 独自の検索UIを作る

Slackは情報の宝庫です。Kendraで掘り起こしてみてください。


参考資料

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?