Salesforce コネクタ V1.0 - Amazon Kendra

Salesforce コネクタ V1.0

Salesforce は、サポート、営業、マーケティングの各チームを管理するための顧客関係管理 (CRM) ツールです。Amazon Kendra を使用して Salesforce 標準オブジェクトやカスタムオブジェクトにインデックスを付けることができます。

重要

Amazon Kendra は Salesforce API バージョン 48 を使用しています。Salesforce API は、1 日あたりに可能なリクエストの数を制限します。Salesforce がこれらのリクエストを超えると、続行できるまで再試行されます。

注記

Salesforce コネクタ V1.0 / SalesforceConfiguration API のサポートは 2023 年に終了しました。Salesforce コネクタ V2.0/TemplateConfiguration API に移行するか、こちらを使用することをお勧めします。

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

サポートされている機能

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

  • フィールドマッピング

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

  • 包含/除外フィルター

前提条件

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

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

  • Salesforce アカウントを作成し、Salesforce への接続に使用するユーザー名とパスワードをメモすること。

  • OAuth を有効にした Salesforce 接続アプリケーションアカウントを作成し、Salesforce 接続アプリケーションに割り当てられたコンシューマーキー (クライアント ID) とコンシューマーシークレット (クライアントシークレット) をコピーすること。クライアント ID とクライアントシークレットは、AWS Secrets Manager のシークレットに保存される認証情報として使用されます。詳細については、接続アプリケーションに関する Salesforce のドキュメントを参照してください。

    注記

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

  • Salesforce への接続に使用されるアカウントに関連付けられた Salesforce セキュリティトークンをコピーすること。

  • インデックスを作成する Salesforce インスタンスの URL をコピーすること。通常、URL は https://<company>.salesforce.com/ です。サーバーは Salesforce 接続アプリケーションを実行している必要があります。

  • ReadOnly プロファイルのクローンを作成し、すべてのデータの表示権限および記事の管理権限を追加して、Salesforce への読み取り専用アクセス権を持つユーザーに対する認証情報を Salesforce サーバーに追加すること。これらの認証情報は、接続を行うユーザーと Amazon Kendra が接続する Salesforce 接続アプリケーションを識別します。

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

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

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

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

    注記

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

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

    注記

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

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

接続手順

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

Console

Salesforce に Amazon Kendra を接続するには

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

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

    注記

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

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

  4. [データソースを追加する] ページで [Salesforce コネクタ V1.0] を選択し、[コネクタを追加] を選択します。

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

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

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

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

    4. [新しいタグを追加] - リソースの検索とフィルタリング、共有コストの追跡を行うためのタグ。

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

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

    1. [Salesforce URL] - インデックスを作成する Salesforce サイトのインスタンス URL を入力します。

    2. [認証のタイプ][既存] または [新規] を選択して Salesforce 認証情報を保存します。新しいシークレットの作成を選択すると、AWS Secrets Manager シークレットウィンドウが開きます。

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

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

        2. [ユーザー名][パスワード][セキュリティトークン][コンシューマーキー][コンシューマーシークレット][認証 URL] - Salesforce アカウントで作成した認証情報の値を入力します。

        3. [認証を保存] を選択します。

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

      注記

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

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

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

    1. [添付ファイルのクロール] - 選択すると、添付されたすべてのオブジェクト、記事、フィードがクロールされます。

    2. [標準オブジェクト][ナレッジ記事][Chatter フィード] - クロールする Salesforce エンティティまたはコンテンツタイプを選択します。

      注記

      インデックス作成には、標準オブジェクト、ナレッジ記事、または Chatter フィードのうち少なくとも 1 つの設定情報を入力する必要があります。[ナレッジ記事] をクロールすると選択した場合は、インデックスを作成するナレッジ記事のタイプ、記事の名前、すべてのナレッジ記事の標準フィールドをインデックス化するのか、カスタム記事タイプのフィールドのみをインデックス化するのかを指定する必要があります。カスタム記事のインデックスを作成する場合は、記事タイプの内部名を指定する必要があります。最大 10 個の記事タイプを指定できます。

    3. [頻度] - Amazon Kendra がデータソースと同期する頻度。

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

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

    1. [標準ナレッジ記事][標準オブジェクト添付ファイル][その他の推奨フィールドマッピング] - Amazon Kendra が生成するデフォルトのデータソースフィールドから、インデックスにマッピングするものを選択します。

      注記

      _document_body へのインデックスマッピングが必要です。Salesforce ID フィールドと Amazon Kendra _document_id フィールド間のマッピングは変更できません。

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

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

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

API

Salesforce に Amazon Kendra を接続するには

SalesforceConfiguration API では以下を指定する必要があります。

  • サーバー URL - インデックスを作成する Salesforce サイトのインスタンス URL。

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

    { "authenticationUrl": "OAUTH endpoint that Amazon Kendra connects to get an OAUTH token", "consumerKey": "Application public key generated when you created your Salesforce application", "consumerSecret": "Application private key generated when you created your Salesforce application.", "password": "Password associated with the user logging in to the Salesforce instance", "securityToken": "Token associated with the user account logging in to the Salesforce instance", "username": "User name of the user logging in to the Salesforce instance" }
  • [IAM ロール] - CreateDataSource を呼び出す際に RoleArn を指定して、Secrets Manager シークレットへのアクセス許可を IAM ロールに提供し、Salesforce コネクタと Amazon Kendra に必要なパブリック API を呼び出します。詳細については、「Salesforce データソースの IAM ロール」を参照してください。

  • インデックス作成には、標準オブジェクト、ナレッジ記事、または Chatter フィードのうち少なくとも 1 つの設定情報を入力する必要があります。

    • 標準オブジェクト - [標準オブジェクト] のクロールを選択した場合は、標準オブジェクトの名前と、ドキュメントコンテンツを含む標準オブジェクトテーブル内のフィールドの名前を指定する必要があります。

    • ナレッジ記事 - [ナレッジ記事] をクロールすると選択した場合は、インデックスを作成するナレッジ記事のタイプ、インデックスを作成するナレッジの状態、すべてのナレッジ記事の標準フィールドをインデックス化するのか、カスタム記事タイプのフィールドのみをインデックス化するのかを指定する必要があります。

    • Chatter フィード - [Chatter フィード] のクロールを選択した場合は、インデックスを作成するコンテンツが含まれている Salesforce FeedItem テーブルの列の名前を指定する必要があります。

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

  • 包含フィルターと除外フィルター - 特定の添付ファイルを含めるか除外するかを指定します。

    注記

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

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

    注記

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

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