Microsoft Exchange - Amazon Kendra

Microsoft Exchange

Microsoft Exchange は、メッセージング、会議、ファイル共有のためのエンタープライズコラボレーションツールです。Microsoft Exchange ユーザーの場合は、Amazon Kendraを使用して Microsoft Exchange データソースのインデックスを作成できます。

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

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

サポートされている機能

  • フィールドマッピング

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

  • 包含/除外フィルター

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

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

前提条件

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

Microsoft Exchange で以下を確認してください。

  • Office 365 で Microsoft Exchange アカウントを作成しました。

  • Microsoft 365 のテナント ID を記録しました。テナント ID は Azure Active Directory ポータルのプロパティまたは OAuth アプリケーションで確認できます。

  • Azure portal で OAuth アプリケーションを設定し、クライアント ID、クライアントシークレット、またはクライアント認証情報を書き留めました。詳細については、Microsoft のチュートリアルアプリケーションの登録の例を参照してください。

    注記

    Azure portal でアプリを作成または登録すると、シークレット ID は実際のシークレット値を表します。シークレットとアプリを作成するときに、実際のシークレット値を書き留めるか保存しておく必要があります。シークレットにアクセスするには、Azure portal でアプリケーションの名前を選択し、証明書とシークレットのメニューオプションに移動します。

    クライアント ID にアクセスするには、Azure portal でアプリケーションの名前を選択し、概要ページに移動します。アプリケーション (クライアント) ID は、クライアント ID です。

    注記

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

  • コネクタアプリケーションに次のアクセス許可を追加しました。

    Microsoft Graph Office 365 Exchange Online
    • Mail.Read (アプリケーション)

    • Mail.ReadBasic (アプリケーション)

    • Mail.ReadBasic.All (アプリケーション)

    • Calendars.Read (アプリケーション)

    • User.Read.All (アプリケーション)

    • Contacts.Read (アプリケーション)

    • Notes.Read.All (アプリケーション)

    • Directory.Read.All (アプリケーション)

    • EWS.AccessAsUser.All (委任)

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

AWS アカウント で以下を確認してください。

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

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

    注記

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

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

    注記

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

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

接続手順

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

Console

Amazon Kendra を Microsoft Exchange に接続するには

  1. AWS マネジメントコンソール にサインインして、Amazon Kendra コンソール を開きます。

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

    注記

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

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

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

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

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

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

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

    4. [タグ][新しいタグを追加] - リソースの検索とフィルタリングや、AWS コストの追跡を行うためのオプションのタグを含めることができます。

    5. [Next] (次へ) を選択します。

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

    1. [テナント ID] - Microsoft 365 のテナント ID を入力します。テナント ID は Azure Active Directory ポータルのプロパティまたは OAuth アプリケーションで確認できます。

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

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

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

        1. [シークレット名] - シークレットの名前。プレフィックス 'AmazonKendra-Microsoft Exchange

        2. [クライアント ID][クライアントシークレット] - Azure portal の Microsoft Exchange で設定した認証情報を入力します。

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

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

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

      注記

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

    6. [Next] (次へ) を選択します。

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

    1. [ユーザー ID] - 特定の E メールでコンテンツをフィルタリングする場合は、ユーザーの E メールを指定します。

    2. [追加設定] - クロールするコンテンツタイプを指定します。

      • [エンティティタイプ] — カレンダー、OneNotes、または連絡先のコンテンツをクロールするかを選択できます。

      • [カレンダーのクローリング] — 特定の日付間のコンテンツをクロールするように、開始日と終了日を入力します。

      • [E メールを含める] — クロールする特定の E メールをフィルタリングする場合は、[宛先]、[差出人]、および E メールの件名を入力します。

      • [共有フォルダアクセス] — Microsoft Exchange データソースのアクセスコントロールのアクセスコントロールリストをクローリングする場合に選択します。

      • [ドメインの正規表現] - 特定の E メールドメインを含める、または除外するための正規表現パターンを追加します。

      • [正規表現パターン] - 特定のファイルを含めるまたは除外する正規表現パターンを追加します。

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

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

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

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

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

    5. [Next] (次へ) を選択します。

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

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

      注記

      Amazon Kendra Microsoft Exchange データソースコネクタは、カスタムフィールドマッピングをサポートしていません。

    2. [Next] (次へ) を選択します。

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

API

Amazon Kendra を Microsoft Exchange に接続するには

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

  • [データソース]TemplateConfiguration JSON スキーマを使用する場合は、データソースタイプを MSEXCHANGE と指定します。また、CreateDataSource API を呼び出す場合は、データソースを TEMPLATE と指定します。

  • テナント ID - テナント ID は Azure Active Directory ポータルのプロパティまたは OAuth アプリケーションで確認できます。

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

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

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

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

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

    { "clientId": "client ID", "clientSecret": "client secret" }
  • [IAM ロール] - CreateDataSource を呼び出す際に RoleArn を指定して、Secrets Manager シークレットへのアクセス許可を IAM ロールに提供し、Microsoft Exchange コネクタと Amazon Kendra に必要なパブリック API を呼び出します。詳細については、「IAM roles for Microsoft Exchange data sources」を参照してください。

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

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

  • 包含フィルターと除外フィルター - 特定のコンテンツを含めるか除外するかを指定します。

    注記

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

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

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

    注記

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

設定が必要なその他の重要な JSON キーのリストについては、「Microsoft Exchange テンプレートスキーマ」を参照してください。

詳細

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

メモ

  • アクセスコントロール (ACL) が有効になっている場合、Microsoft Exchange API の制限により、[新規または変更されたコンテンツのみを同期] オプションを使用できません。この同期モードを使用する必要がある場合は、代わりに「完全同期」または「新規、変更済み、または削除済みコンテンツ同期」モードを使用するか、ACL を無効にすることをお勧めします。