Slack - Amazon Kendra

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Slack

Slack は、ユーザーがさまざまなパブリックチャネルやプライベートチャネルを通じてメッセージや添付ファイルを送信できる、エンタープライズコミュニケーションアプリです。を使用して Amazon Kendra 、Slack のパブリックチャネルとプライベートチャネル、ボットとアーカイブのメッセージ、ファイルと添付ファイル、ダイレクトメッセージとグループメッセージのインデックスを作成できます。また、フィルタリングする特定のコンテンツを選択することもできます。

注記

Amazon Kendra がアップグレードされた Slack コネクタをサポートするようになりました。

コンソールが自動的にアップグレードされました。コンソールで作成した新しいコネクタは、アップグレードされたアーキテクチャを使用します。API を使用する場合は、TemplateConfigurationオブジェクトではなく SlackConfiguration オブジェクトを使用してコネクタを設定する必要があります。

古いコンソールと API アーキテクチャを使用して設定されたコネクタは、引き続き設定どおりに機能します。ただし、それらを編集または更新することはできません。コネクタ設定を編集または更新する場合は、新しいコネクタを作成する必要があります。

コネクタワークフローをアップグレードされたバージョンに移行することをお勧めします。古いアーキテクチャを使用して設定されたコネクタのサポートは、2024 年 6 月までに終了する予定です。

Amazon Kendra コンソールまたは TemplateConfiguration API を使用して Slack データソース Amazon Kendra に接続できます。

Amazon Kendra Slack データソースコネクタのトラブルシューティングについては、「」を参照してくださいデータソースのトラブルシューティング

サポートされている機能

Amazon Kendra Slack データソースコネクタは、次の機能をサポートしています。

  • フィールドマッピング

  • ユーザーアクセスコントロール

  • 包含/除外フィルター

  • 完全および増分コンテンツ同期

  • 仮想プライベートクラウド (VPC)

前提条件

Amazon Kendra を使用して Slack データソースのインデックスを作成する前に、Slack と AWS アカウントでこれらの変更を行ってください。

Slack で、次の作業を行ったことを確認してください。

  • Slack Bot User OAuth トークンまたは Slack User OAuth トークンを設定しました。いずれかのトークンを選択して Slack データソース Amazon Kendra に接続できます。を認証情報として使用するには、トークンが必要です。詳しくは、アクセストークンに関する Slack のドキュメントをご覧ください。

    注記

    Slack 認証情報の一部としてボットトークンを使用する場合、ダイレクトメッセージやグループメッセージのインデックスを作成できないため、インデックスを作成するチャネルにボットトークンを追加する必要があります。

    注記

    認証情報とシークレットは、定期的に更新またはローテーションすることをお勧めします。セキュリティに必要なアクセスレベルのみを提供してください。認証情報とシークレットを、データソース、コネクタバージョン 1.0 と 2.0 (該当する場合) で再利用することは推奨しません

  • Slack ワークスペースのメインページ URL にある Slack ワークスペースチーム ID をメモすること。例えば、https://app.slack.com/client/T0123456789/...T0123456789 がチーム ID です。

  • 次の Oauth スコープ/アクセス許可を追加しました。

    ユーザートークンの範囲 ボットトークンの範囲
    • channels:history

    • channels:read

    • emoji:read

    • files:read

    • groups:history

    • groups:read

    • im:history

    • im:read

    • mpim:history

    • mpim:read

    • team:read

    • users.profile:read

    • users:read

    • users:read.email

    • channels:history

    • チャネル:管理

    • channels:read

    • conversations.connect:管理

    • conversations.connect:読み取り

    • files:read

    • groups:history

    • groups:read

    • im:history

    • im:read

    • mpim:history

    • mpim:read

    • リアクション:読み取り

    • team:read

    • usergroups:read

    • users.profile:read

    • users:read

    • users:read.email

  • 各ドキュメントが Slack および同じインデックスに使用する予定の他のデータソース間で一意であると確認すること。インデックスに使用する各データソースには、データソース全体に同じドキュメントが含まれていてはなりません。ドキュメント ID はインデックス全体に適用され、インデックスごとに一意である必要があります。

で AWS アカウント、以下があることを確認します。

  • Amazon Kendra インデックスを作成し、API を使用している場合はインデックス ID を記録しました。

  • データソースの IAM ロールを作成し、 API を使用している場合は、 IAM ロールの ARN を記録しました。

    注記

    認証タイプと認証情報を変更する場合は、 IAM ロールを更新して正しい AWS Secrets Manager シークレット ID にアクセスする必要があります。

  • Slack の認証資格情報を AWS Secrets Manager シークレットに保存し、API を使用している場合は、シークレットの ARN を記録済み。

    注記

    認証情報とシークレットは、定期的に更新またはローテーションすることをお勧めします。セキュリティに必要なアクセスレベルのみを提供してください。認証情報とシークレットを、データソース、コネクタバージョン 1.0 と 2.0 (該当する場合) で再利用することは推奨しません

既存の IAM ロールまたはシークレットがない場合は、Slack データソースを に接続するときに、コンソールを使用して新しい IAM ロールとシーク Secrets Manager レットを作成できます Amazon Kendra。API を使用している場合は、既存の IAM ロールと Secrets Manager シークレットの ARN とインデックス ID を指定する必要があります。

接続手順

Slack データソース Amazon Kendra に接続するには、 がデータ Amazon Kendra にアクセスできるように Slack データソースの必要な詳細を指定する必要があります。に Slack をまだ設定していない場合は Amazon Kendra、「」を参照してください前提条件

Console

Slack Amazon Kendra に接続するには

  1. にサインイン AWS Management Console し、Amazon Kendra コンソール を開きます。

  2. 左側のナビゲーションペインで、[インデックス] を選択し、インデックスのリストから使用するインデックスを選択します。

    注記

    [インデックスの設定] で、[ユーザーアクセスコントロール] 設定を設定または編集できます。

  3. [使用開始] ページで、[データソースを追加] を選択します。

  4. データソースの追加ページで、Slack コネクタ を選択し、コネクタの追加 を選択します。バージョン 2 (該当する場合) を使用している場合は、「V2.0」タグが付いた Slack コネクタを選択します。

  5. [データソースの詳細を指定] ページで、次の情報を入力します。

    1. [名前と説明][データソース名] に、データソースの名前を入力します。ハイフン (-) は使用できますが、スペースは使用できません。

    2. (オプション) [説明] - オプションで、データソースの説明を入力します。

    3. デフォルト言語 - ドキュメントをフィルタリングしてインデックスを作成する言語を選択します。特に指定しない限り、言語はデフォルトで英語に設定されます。ドキュメントのメタデータで指定された言語は、選択した言語よりも優先されます。

    4. タグ で、新しいタグを追加 — リソースを検索およびフィルタリングしたり、 AWS コストを追跡したりするためのオプションのタグを含めます。

    5. [次へ] をクリックします。

  6. [アクセスとセキュリティの定義] ページで、次の情報を入力します。

    1. Slack ワークスペースチーム ID の場合 — Slack ワークスペースのチーム ID。チーム ID は Slack ワークスペースのメインページの URL にあります。例えば、https://app.slack.com/client/T0123456789/...T0123456789 がチーム ID です。

    2. 承認 — ACL があり、アクセスコントロールに使用する場合は、ドキュメントのアクセスコントロールリスト (ACL) 情報をオンまたはオフにします。ACL は、ユーザーとグループがアクセスできるドキュメントを指定します。ACL 情報は、ユーザーまたはそのグループのドキュメントへのアクセスに基づいて、検索結果をフィルタリングするために使用されます。詳細については、「User context filtering」を参照してください。

    3. AWS Secrets Manager secret — 既存のシークレットを選択するか、新しいシーク Secrets Manager レットを作成して Slack 認証情報を保存します。新しいシークレットの作成を選択すると、 AWS Secrets Manager シークレットウィンドウが開きます。

      1. [ AWS Secrets Manager シークレットウィンドウを作成] に次の情報を入力します。

        1. [シークレット名] - シークレットの名前。シークレット名には、プレフィックスAmazonKendra「-Slack-」が自動的に追加されます。

        2. Slack トークンの場合 — Slack を設定した認証情報値を入力します。

      2. シークレットを保存して追加します。

    4. [仮想プライベートクラウド (VPC)] - VPC の使用を選択できます。選択する場合は、[サブネット][VPC セキュリティグループ] を追加する必要があります。

    5. ID クローラー — Amazon Kendraの ID クローラーを有効にするかどうかを指定します。ID クローラーは、ドキュメントのアクセスコントロールリスト (ACL) 情報を使用して、ユーザーまたはそのグループのドキュメントへのアクセスに基づいて検索結果をフィルタリングします。ドキュメントの ACL があり、ACL を使用することを選択した場合は、 Amazon Kendraの ID クローラーをオンにして、検索結果のユーザーコンテキストフィルタリングを設定することもできます。それ以外の場合、ID クローラーがオフになっていると、すべてのドキュメントをパブリックに検索できます。ドキュメントのアクセスコントロールを使用し、ID クローラーがオフになっている場合は、代わりに PutPrincipalMapping API を使用してユーザーコンテキストフィルタリング用のユーザーおよびグループのアクセス情報をアップロードできます。

    6. IAM ロール — 既存の IAM ロールを選択するか、新しい IAM ロールを作成してリポジトリ認証情報にアクセスし、コンテンツにインデックスを作成します。

      注記

      IAM インデックスに使用される ロールは、データソースには使用できません。インデックスやよくある質問に既存のロールが使用されているかどうかが不明な場合は、エラーを避けるため、[新しいロールを作成] を選択してください。

    7. [次へ] をクリックします。

  7. [同期設定の構成] ページで、次の情報を入力します。

    1. コンテンツのタイプの選択 — クロールする Slack エンティティまたはコンテンツタイプを選択します。すべてのチャネル、パブリックチャネル、プライベートチャネル、グループメッセージ、プライベートメッセージから選択できます。

    2. クロール開始日の選択 — コンテンツのクロールを開始する日付を入力します。

    3. 追加設定 - ボットとアーカイブされたメッセージを含めるように選択し、正規表現パターンを使用して特定のコンテンツを含めるか除外します。

      注記

      チャンネル IDs とチャンネル名の両方に を含めることを選択した場合、 Amazon Kendra Slack コネクタはチャンネル名よりもチャンネル IDsを優先します。

      特定のプライベートメッセージとグループメッセージを含めることを選択した場合、 Amazon Kendra Slack コネクタはすべてのプライベートメッセージとグループメッセージを無視し、指定したプライベートメッセージとグループメッセージのみをクロールします。

    4. [同期モード] - データソースのコンテンツが変更されたときのインデックスの更新方法を選択します。データソースを Amazon Kendra と初めて同期すると、デフォルトですべてのコンテンツがクロールされ、インデックスが作成されます。同期モードオプションとしてフル同期を選択しなくても、最初の同期が失敗した場合は、データのフル同期を実行する必要があります。

      • 完全同期: すべてのコンテンツを新しくインデックス化し、データソースがインデックスと同期するたびに既存のコンテンツを置き換えます。

      • 新規、変更、削除された同期: データソースがインデックスと同期するたびに、新規、変更、削除されたコンテンツのインデックスのみを作成します。 Amazon Kendra は、データソースのメカニズムを使用して、コンテンツの変更を追跡し、前回の同期以降に変更されたコンテンツのインデックスを作成できます。

    5. 同期実行スケジュール で、頻度 — データソースコンテンツを同期してインデックスを更新する頻度を選択します。

    6. [次へ] をクリックします。

  8. [フィールドマッピングを設定] ページで、次の情報を入力します。

    1. デフォルトのデータソースフィールド — インデックスにマッピングする Amazon Kendra 生成されたデフォルトのデータソースフィールドから選択します。

    2. [フィールドを追加] - カスタムデータソースフィールドを追加して、マッピング先のインデックスフィールド名とフィールドデータタイプを作成します。

    3. [次へ] をクリックします。

  9. [確認と作成] ページで、入力した情報が正しいことを確認し、[データソースを追加] を選択します。このページで情報の編集を選択することもできます。データソースが正常に追加されると、データソースが [データソース] ページに表示されます。

API

Slack Amazon Kendra に接続するには

TemplateConfiguration API を使用してデータソーススキーマの JSON を指定する必要があります。これには、以下の情報を入力する必要があります。

  • データソース — JSON スキーマSLACKを使用する場合は、データソースタイプを TemplateConfiguration として指定します。また、CreateDataSourceAPI を呼び出すTEMPLATEときにデータソースを として指定します。

  • Slack ワークスペースチーム ID - Slack のメインページ URL からコピーした Slack チーム ID。

  • 開始日 — Slack ワークスペースチームからのデータのクロールを開始する日付。日付は次の形式に従う必要があります yyyy-mm-dd。

  • 同期モード — データソースコンテンツが変更されたときに Amazon Kendra がインデックスを更新する方法を指定します。データソースを と Amazon Kendra 初めて同期すると、デフォルトですべてのコンテンツがクロールされ、インデックスが作成されます。同期モードオプションとしてフル同期を選択しなくても、最初の同期が失敗した場合は、データのフル同期を実行する必要があります。以下のいずれかから選択できます。

    • FORCED_FULL_CRAWL データソースがインデックスと同期するたびに既存のコンテンツを置き換え、すべてのコンテンツに新しいインデックスを付けます。

    • FULL_CRAWL は、データソースがインデックスと同期するたびに、新規、変更、削除されたコンテンツのみのインデックスを作成します。 Amazon Kendra は、データソースのメカニズムを使用して、コンテンツの変更を追跡し、前回の同期以降に変更されたコンテンツをインデックスできます。

    • CHANGE_LOG は、データソースがインデックスと同期するたびに、新しいコンテンツと変更されたコンテンツのみのインデックスを作成します。 Amazon Kendra は、データソースのメカニズムを使用して、コンテンツの変更を追跡し、前回の同期以降に変更されたコンテンツをインデックスできます。

  • ID クローラー — Amazon Kendraの ID クローラーを有効にするかどうかを指定します。ID クローラーは、ドキュメントのアクセスコントロールリスト (ACL) 情報を使用して、ユーザーまたはそのグループのドキュメントへのアクセスに基づいて検索結果をフィルタリングします。ドキュメントの ACL があり、ACL を使用することを選択した場合は、 Amazon Kendraの ID クローラーをオンにして、検索結果のユーザーコンテキストフィルタリングを設定することもできます。それ以外の場合、ID クローラーがオフになっていると、すべてのドキュメントをパブリックに検索できます。ドキュメントのアクセスコントロールを使用し、ID クローラーがオフになっている場合は、代わりに PutPrincipalMapping API を使用してユーザーコンテキストフィルタリング用のユーザーおよびグループのアクセス情報をアップロードできます。

  • シークレット Amazon リソースネーム (ARN) — Slack アカウントの認証情報を含む Secrets Manager シークレットの Amazon リソースネーム (ARN) を指定します。シークレットは、次のキーを含む JSON 構造に保存されます。

    { "slackToken": "token" }
  • IAM role — を呼び出しCreateDataSourceて、 Secrets Manager シークレットにアクセスするためのアクセス許可を IAM ロールに提供し、Slack コネクタと に必要なパブリック APIs を呼び出すRoleArnタイミングを指定します Amazon Kendra。詳細については、「Slack データソースのIAM ロール」を参照してください。

オプションで、次の機能を追加することもできます。

  • [仮想プライベートクラウド (VPC)] - VpcConfigurationCreateDataSource を呼び出すタイミングを指定します。詳細については、「を使用する Amazon Kendra ための の設定 Amazon VPC」を参照してください。

  • 特定のチャネル — パブリックチャネルまたはプライベートチャネルでフィルタリングし、ID で特定のチャネルを指定します。

  • チャネルとメッセージのタイプ — Amazon Kendra がパブリックチャネルとプライベートチャネル、グループメッセージとダイレクトメッセージ、ボットメッセージとアーカイブメッセージのインデックスを作成するかどうか。Slack 認証情報の一部としてボットトークンを使用する場合、インデックスを作成するチャネルにボットトークンを追加する必要があります。ボットトークンを使用してダイレクトメッセージやグループメッセージのインデックスを作成することはできません。

  • ルックバック — Slack コネクタが、最後のコネクタ同期の指定時間前に更新または削除されたコンテンツをクロールするように、lookBackパラメータを設定できます。

  • 包含フィルターと除外フィルター — 特定の Slack コンテンツを含めるか除外するかを指定します。Slack 認証情報の一部としてボットトークンを使用する場合、インデックスを作成するチャネルにボットトークンを追加する必要があります。ボットトークンを使用してダイレクトメッセージやグループメッセージのインデックスを作成することはできません。

    注記

    ほとんどのデータソースは、フィルターと呼ばれる包含または除外パターンである正規表現パターンを使用しています。包含フィルターを指定すると、包含フィルターに一致するコンテンツのみのインデックスが作成されます。包含フィルターに一致しないドキュメントのインデックスは作成されません。包含フィルターと除外フィルターを指定した場合、除外フィルターに一致するドキュメントは、包含フィルターと一致してもインデックスは作成されません。

  • フィールドマッピング - 選択すると、Slack データソースフィールドを Amazon Kendra インデックスフィールドにマッピングします。詳細については、データソースフィールドのマッピングを参照してください。

    注記

    がドキュメント Amazon Kendra を検索するには、ドキュメント本文フィールドまたはドキュメントと同等のドキュメント本文が必要です。データソースのドキュメント本文フィールド名をインデックスフィールド名 にマッピングする必要があります_document_body。その他のすべてのフィールドはオプションです。

設定が必要なその他の重要な JSON キーのリストについては、「Slack template schema」を参照してください。

詳細はこちら

Amazon Kendra と Slack データソースとの統合の詳細については、以下を参照してください。