Amazon S3
Amazon S3 は、データをオブジェクトとしてバケットに保存するオブジェクトストレージサービスです。Amazon Kendra を使用して、ドキュメントの Amazon S3 バケットリポジトリにインデックスを作成することができます。
Amazon Kendra では、Amazon Kendra プリンシパルによる S3 バケットの操作を許可するバケットポリシーを使用しません。代わりに IAM ロールを使用します。誤って任意のプリンシパルに許可を付与することによるデータセキュリティ上の問題を避けるため、Amazon Kendra が信頼できるメンバーとしてバケットポリシーに含まれていないことを確認してください。ただしバケットポリシーを追加すれば、異なるアカウント間で Amazon S3 バケットを使用できます。詳細については、「Amazon S3 アカウントで使用するポリシー」(S3 IAM ロールタブの [データソースの IAM ロール]) を参照してください。S3 データソースの IAM ロールについては、「IAM ロール」を参照してください。
Amazon Kendra はアップグレードされた Amazon S3 コネクタをサポートするようになりました。
コンソールは自動的にアップグレードされています。コンソールで新しくコネクタを作成すると、コネクタにはアップグレードされたアーキテクチャが使用されます。API を使用する場合は、S3DataSourceConfiguration オブジェクトではなく TemplateConfiguration オブジェクトを使用してコネクタを設定する必要があります。
古いコンソールと API アーキテクチャを使用して設定されたコネクタは、引き続き設定どおりに機能します。ただし、それらを編集したり更新したりすることはできません。コネクタ設定を編集または更新する場合は、新しいコネクタを作成する必要があります。
コネクタワークフローをアップグレードされたバージョンに移行することをお勧めします。古いアーキテクチャを使用して設定されたコネクタのサポートは、2024 年 6 月までに終了する予定です。
Amazon S3 データソースに接続するには、Amazon Kendra コンソールまたは TemplateConfiguration API を使用します。
Amazon Kendra S3 データソースコネクタのトラブルシューティングについては、「データソースのトラブルシューティング」を参照してください。
サポートされている機能
-
フィールドマッピング
-
ユーザーアクセスコントロール
-
包含/除外フィルター
-
完全および増分コンテンツ同期
-
仮想プライベートクラウド (VPC)
前提条件
Amazon Kendra を使用して S3 データソースのインデックスを作成する前に、S3 および AWS アカウントでこれらの変更を行ってください。
S3 で以下を確認してください。
AWS アカウントで、次のものが揃っていることを確認してください。
既存の IAM ロールがない場合は、S3 データソースを Amazon Kendra に接続するときに、コンソールを使用して新しい IAM ロールを作成できます。API を使用している場合は、既存の IAM ロールインデックス ID を指定する必要があります。
接続手順
Amazon Kendra を S3 データソースに接続するには、Amazon Kendra がデータにアクセスできるように S3 データソースの必要な詳細情報を入力する必要があります。Amazon Kendra の S3 をまだ設定していない場合は、「前提条件」を参照してください。
- Console
-
Amazon Kendra を Amazon S3 に接続するには
-
AWS マネジメントコンソール にサインインして、Amazon Kendra コンソール を開きます。
-
左側のナビゲーションペインで、[インデックス] を選択し、インデックスのリストから使用するインデックスを選択します。
[インデックスの設定] で、[ユーザーアクセスコントロール] 設定を設定または編集できます。
-
[使用開始] ページで、[データソースを追加] を選択します。
-
[データソースを追加] ページで [S3 コネクタ] を選択し、[コネクタを追加] を選択します。バージョン 2 (該当する場合) を使用している場合は、「V2.0」タグが付いた [S3 コネクタ] を選択します。
-
[データソースの詳細を指定] ページで、次の情報を入力します。
-
[名前と説明] の [データソース名] に、データソースの名前を入力します。ハイフン (-) は使用できますが、スペースは使用できません。
-
(オプション) [説明] - オプションで、データソースの説明を入力します。
-
[デフォルト言語] - インデックス用にドキュメントをフィルターするための言語。特に指定しない限り、言語はデフォルトで英語に設定されます。ドキュメントのメタデータで指定された言語は、選択した言語よりも優先されます。
-
[タグ] の [新しいタグを追加] - リソースの検索とフィルタリングや、AWS コストの追跡を行うためのオプションのタグを含めることができます。
-
[Next] (次へ) を選択します。
-
[アクセスとセキュリティの定義] ページで、次のオプション情報を入力します。
-
[IAM ロール] - 既存の IAM ロールを選択するか、新しい IAM ロールを作成して、リポジトリの認証情報とインデックスコンテンツにアクセスします。
インデックスに使用される IAM ロールは、データソースには使用できません。インデックスやよくある質問に既存のロールが使用されているかどうかが不明な場合は、エラーを避けるため、[新しいロールを作成] を選択してください。
-
[仮想プライベートクラウド (VPC)] - VPC の使用を選択できます。選択する場合は、[サブネット] と [VPC セキュリティグループ] を追加する必要があります。
-
[Next] (次へ) を選択します。
-
[同期設定の構成] ページで、次の情報を入力します。
-
[データソースの場所] - データが保存されている Amazon S3 バケットへのパスを指定します。[S3 をブラウズ] を選択し、S3 バケットを選択します。
-
[最大ファイルサイズ] - 特定のファイルサイズ未満のファイルのみをクロールするには、MB 単位で上限値を指定します。Amazon Kendra で許容されているファイルの最大サイズは 50 MB です。
-
(オプション) [メタデータファイルのプレフィックスフォルダの場所] - フィールド/属性、およびその他のドキュメントメタデータが保存されているフォルダへのパスを指定します。[S3 をブラウズ] を選択してメタデータフォルダを探します。
-
(オプション) [アクセスコントロールリスト設定ファイルの場所] — ユーザーの JSON 構造とドキュメントへのアクセスを含むファイルへのパスを指定します。[S3 をブラウズ] を選択して ACL ファイルを探します。
-
(オプション) [復号キーを選択] - 復号キーを使用する場合は選択します。既存の AWS KMS キーの使用も選択できます。
-
(オプション) [追加設定] - 特定のファイルを含めるか除外するパターンを追加します。すべてのパスは、データソースの場所の S3 バケットに相対的です。
-
[同期モード] - データソースのコンテンツが変更されたときのインデックスの更新方法を選択します。Amazon Kendra でデータソースを初めて同期すると、デフォルトですべてのコンテンツがクロールされ、インデックスが作成されます。同期モードオプションとして完全同期を選択していない場合でも、最初の同期が失敗した場合は、データの完全同期を実行する必要があります。
-
完全同期: データソースがインデックスと同期されるたびに、既存のコンテンツを置き換えて、すべてのコンテンツのインデックスを新たに作成します。
-
新規作成、変更、削除の同期: データソースがインデックスと同期するたびに、新規作成、変更、削除されたコンテンツのみのインデックスを作成します。Amazon Kendra は、データソースのメカニズムを利用してコンテンツの変更を追跡し、前回の同期以降に変更されたコンテンツのインデックスを作成することができます。
-
[同期実行スケジュール] の [頻度] - データソースコンテンツを同期してインデックスを更新する頻度を選択します。
-
[Next] (次へ) を選択します。
-
[フィールドマッピングを設定] ページで、次のオプション情報を入力します。
-
[デフォルトのフィールドマッピング] - Amazon Kendra が生成するデフォルトのデータソースフィールドから、インデックスにマッピングするものを選択します。
-
[フィールドを追加] - カスタムデータソースフィールドを追加して、マッピング先のインデックスフィールド名とフィールドデータタイプを作成します。
-
[Next] (次へ) を選択します。
-
[確認と作成] ページで、入力した情報が正しいことを確認し、[データソースを追加] を選択します。このページで情報の編集を選択することもできます。データソースが正常に追加されると、データソースが [データソース] ページに表示されます。
- API
-
Amazon Kendra を Amazon S3 に接続するには
TemplateConfiguration API を使用してデータソーススキーマの JSON を指定する必要があります。これには、以下の情報を入力する必要があります。
-
[データソース] — TemplateConfiguration JSON スキーマを使用する場合は、データソースタイプを S3 と指定します。また、CreateDataSource API を呼び出す場合は、データソースを TEMPLATE と指定します。
-
BucketName - ドキュメントが含まれているバケットの名前。
-
[同期モード] - データソースのコンテンツが変更されたときに、Amazon Kendra がインデックスを更新する方法を指定します。Amazon Kendra でデータソースを初めて同期すると、デフォルトですべてのコンテンツがクロールされ、インデックスが作成されます。同期モードオプションとして完全同期を選択していない場合でも、最初の同期が失敗した場合は、データの完全同期を実行する必要があります。以下のいずれかから選択できます。
-
FORCED_FULL_CRAWL は、データソースがインデックスと同期されるたびに、既存のコンテンツを置き換えて、すべてのコンテンツのインデックスを新たに作成します。
-
FULL_CRAWL は、データソースがインデックスと同期するたびに、新規作成、変更、削除されたコンテンツのみのインデックスを作成します。Amazon Kendra は、データソースのメカニズムを利用してコンテンツの変更を追跡し、前回の同期以降に変更されたコンテンツのインデックスを作成することができます。
-
[IAM ロール] - CreateDataSource を呼び出す際に RoleArn を指定して、Secrets Manager シークレットへのアクセス許可を IAM ロールに提供し、S3 コネクタと Amazon Kendra に必要なパブリック API を呼び出します。詳細については、「S3 データソースの IAM ロール」を参照してください。
オプションで、次の機能を追加することもできます。
-
[仮想プライベートクラウド (VPC)] - VpcConfiguration で CreateDataSource を呼び出すタイミングを指定します。詳細については、「Amazon VPC を使用するための Amazon Kendra の設定」を参照してください。
-
[包含フィルターと除外フィルター] - 特定のファイル名、ファイルタイプ、ファイルパスを含めるか除外するかを指定します。glob パターン (ワイルドカードパターンを指定したパターンに一致するパス名のリストに展開できるパターン) を使用します。詳細については、「AWS CLI コマンドリファレンス」の「Use of Exclude and Include Filters」を参照してください。
-
[ドキュメントのメタデータとアクセスコントロールの設定] - ソース URI、ドキュメントの作成者、カスタムドキュメントの属性/フィールド、およびユーザーとユーザーがアクセス可能なドキュメントなどの情報が含まれている、ドキュメントのメタデータとアクセスコントロールファイルを追加します。各メタデータファイルには、1 つのドキュメントに関するメタデータが含まれています。
-
フィールドマッピング - 選択すると、S3 データソースフィールドを Amazon Kendra インデックスフィールドにマッピングします。詳細については、「データソースフィールドのマッピング」を参照してください。
Amazon Kendra がドキュメントを検索するには、ドキュメント本文フィールドまたはドキュメントと同等のドキュメント本文が必要です。データソースのドキュメント本文フィールド名をインデックスフィールド名 _document_body にマッピングする必要があります。その他のすべてのフィールドはオプションです。
設定が必要なその他の重要な JSON キーのリストについては、「S3 template schema」を参照してください。
詳細
S3 Amazon Kendra データソースとの統合について詳しくは、以下を参照してください。