

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

# ナレッジベースに対応する Amazon S3 に接続する
<a name="s3-data-source-connector"></a>

Amazon S3 は、データをオブジェクトとしてバケットに保存するオブジェクトストレージサービスです。Amazon Bedrock の [AWSマネジメントコンソールまたは CreateDataSource API を使用して、Amazon Bedrock](https://console.aws.amazon.com/bedrock/home) ナレッジベースの Amazon S3 バケットに接続できます (「Amazon Bedrock が[サポートする SDKsAWS CLI](https://docs.aws.amazon.com/bedrock/latest/APIReference/welcome.html)」を参照）。 [CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html) 

**マルチモーダルコンテンツのサポート**  
Amazon S3 データソースは、イメージ、オーディオ、ビデオファイルなどのマルチモーダルコンテンツをサポートしています。マルチモーダルコンテンツの使用に関する包括的なガイダンスについては、「」を参照してください[マルチモーダルコンテンツのナレッジベースを構築する](kb-multimodal.md)。

Amazon S3 コンソールまたは API を使用して、ファイルの小さなバッチを Amazon S3 バケットにアップロードできます。または、 [AWS DataSync](https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html)を使用して複数のファイルを S3 に継続的にアップロードし、オンプレミス、エッジ、その他のクラウド、またはAWSストレージからスケジュールに従ってファイルを転送することもできます。

現在、汎用 S3 バケットのみがサポートされています。

クロールできるファイル数とファイルあたりの MB に制限があります。「[Quotas for knowledge bases](https://docs.aws.amazon.com/bedrock/latest/userguide/quotas.html)」を参照してください。

**Topics**
+ [サポートされている機能](#supported-features-s3-connector)
+ [前提条件](#prerequisites-s3-connector)
+ [接続設定](#configuration-s3-connector)

## サポートされている機能
<a name="supported-features-s3-connector"></a>
+ ドキュメントメタデータフィールド
+ 包含プレフィックス
+ 追加、更新、削除されたコンテンツの増分同期

## 前提条件
<a name="prerequisites-s3-connector"></a>

**Amazon S3 で、以下を確認してください。**
+ Amazon S3 バケット URI、Amazon リソースネーム (ARN)、およびバケットの所有者の AWS アカウント ID を書き留めます。URI と ARN は、Amazon S3 コンソールのプロパティセクションにあります。バケットは Amazon Bedrock ナレッジベースと同じリージョンにある必要があります。バケットにアクセスするにはアクセス許可が必要です。

**AWSアカウントで、以下を確認してください**。
+ ナレッジベースの AWS Identity and Access Management (IAM) ロール/アクセス許可ポリシーに、データソースに接続するために必要なアクセス許可を含めます。このデータソースがナレッジベースIAMロールに追加するために必要なアクセス許可については、[「データソースへのアクセス許可](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-permissions.html#kb-permissions-access-ds)」を参照してください。

**注記**  
コンソールを使用する場合、ナレッジベースを作成するステップの一部として、必要なすべてのアクセス許可を持つIAMロールを作成できます。データソースやその他の設定を行うと、必要なすべてのアクセス許可を持つ IAM ロールが特定のナレッジベースに適用されます。

## 接続設定
<a name="configuration-s3-connector"></a>

Amazon S3 バケットに接続するには、Amazon Bedrock がデータにアクセスしてクロールできるように、必要な設定情報を提供する必要があります。また、[前提条件](#prerequisites-s3-connector) に従う必要があります。

このデータソースの設定例をこのセクションに示します。

包含フィルター、ドキュメントメタデータフィールド、増分同期、およびこれらの仕組みの詳細については、次を選択してください。

### ドキュメントメタデータフィールド
<a name="ds-s3-metadata-fields"></a>

Amazon S3 データソース内の各ファイルに対して、ドキュメントのメタデータフィールド/属性を指定し、データソースのインデックスを作成してベクトルストアに保存する際にそれらを埋め込みに含めるかどうかを指定する別ファイルを含めることができます。例えば、次の形式でファイルを作成し、{{fileName.extension.metadata.json}} という名前を付けて S3 バケットにアップロードできます。

```
{
  "metadataAttributes": {
    "company": {
      "value": {
        "type": "STRING",
        "stringValue": "BioPharm Innovations"
      },
      "includeForEmbedding": true
    },
    "created_date": {
      "value": {
        "type": "NUMBER",
        "numberValue": 20221205
      },
      "includeForEmbedding": true
    },
    "author": {
      "value": {
        "type": "STRING",
        "stringValue": "Lisa Thompson"
      },
      "includeForEmbedding": true
    },
    "origin": {
      "value": {
        "type": "STRING",
        "stringValue": "Overview"
      },
      "includeForEmbedding": true
    }
  }
}
```

メタデータファイルは、関連するソースドキュメントファイルと同じ名前を使用し、ファイル名の末尾に `.metadata.json` を追加する必要があります。メタデータファイルは、Amazon S3 バケットのソースファイルと同じフォルダまたは場所に保存する必要があります。ファイルは 10 KB の制限を超えることはできません。サポートされている属性/フィールドデータ型とメタデータフィールドに適用できるフィルタリング演算子の詳細については、「[メタデータとフィルタリング](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-test-config.html)」を参照してください。

### 包含プレフィックス
<a name="ds-s3-inclusion-exclusion"></a>

Amazon S3 パスプレフィックスである包含プレフィックスを指定できます。このプレフィックスでは、バケット全体ではなく、S3 ファイルまたはフォルダを使用して S3 データソースコネクタを作成できます。

### 増分同期
<a name="ds-s3-incremental-sync"></a>

データソースコネクタは、データソースがナレッジベースと同期するたびに、新規、変更、削除されたコンテンツをクロールします。 Amazon Bedrockは、データソースのメカニズムを使用してコンテンツの変更を追跡し、前回の同期以降に変更されたコンテンツをクロールできます。データソースをナレッジベースと初めて同期すると、デフォルトですべてのコンテンツがクロールされます。

データソースをナレッジベースと同期するには、[StartIngestionJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_StartIngestionJob.html) API を使用するか、コンソールでナレッジベースを選択し、データソースの概要セクションで **[同期]** を選択します。

**重要**  
データソースから同期するすべてのデータは、データを取得する `bedrock:Retrieve` アクセス許可を持つすべてのユーザーが利用できるようになります。これには、データソースのアクセス許可が制御されているデータを含めることもできます。詳細については、「[Knowledge base permissions](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-permissions.html)」を参照してください。

------
#### [ Console ]

**Amazon S3 バケットをナレッジベースに接続する方法**

1. [Amazon Bedrock ナレッジベースでデータソースに接続してナレッジベースを作成する](knowledge-base-create.md) のステップを実行し、データソースとして **[Amazon S3]** を選択します。

1. データソースの名前を指定します。

1. Amazon S3 バケットが現在のAWSアカウントにあるか、別のAWSアカウントにあるかを指定します。バケットはナレッジベースと同じリージョンにある必要があります。

1. (オプション) Amazon S3 バケットが KMS キーで暗号化されている場合は、そのキーを含めます。詳細については、「[Amazon S3 のデータソースの AWS KMS キーを復号するアクセス許可](encryption-kb.md#encryption-kb-ds)」を参照してください。

1. (オプション) **[コンテンツの解析とチャンキング]** セクションで、データの解析とチャンキングの方法をカスタマイズできます。これらのカスタマイズの詳細については、次のリソースを参照してください。
   + 解析オプションの詳細については、「[データソースの解析オプション](kb-advanced-parsing.md)」を参照してください。
   + チャンキング戦略の詳細については、「[ナレッジベースのコンテンツのチャンキングの仕組み](kb-chunking.md)」を参照してください。
**警告**  
データソースに接続した後はチャンキング戦略を変更できません。
   + Lambda 関数を使用してデータのチャンキングとメタデータの処理をカスタマイズする方法の詳細については、「[カスタム変換 Lambda 関数を使用してデータの取り込み方法を定義する](kb-custom-transformation.md)」を参照してください。

1. **[詳細設定]** セクションでは、必要に応じて以下を設定できます。
   + **一時的なデータストレージ用の KMS キー。**– データをデフォルトAWS マネージドキーまたは独自の KMS キーを使用して埋め込みに変換しながら、一時的なデータを暗号化できます。詳細については、「[データインジェスト時の一時データストレージの暗号化](encryption-kb.md#encryption-kb-ingestion)」を参照してください。
   + **データ削除ポリシー** – デフォルトでベクトルストアに保存されているデータソースのベクトル埋め込みを削除したり、ベクトルストアデータを保持するように選択したりできます。

1. 埋め込みモデルとベクトルストアの選択を続行します。残りの手順を確認するには、「[Amazon Bedrock ナレッジベースでデータソースに接続してナレッジベースを作成する](knowledge-base-create.md)」に戻り、データソースを接続した後の手順から続行します。

------
#### [ API ]

以下は、Amazon Bedrock ナレッジベースの Amazon S3 に接続するための設定の例です。API と AWS CLIまたは Python などのサポートされている SDK を使用してデータソースを設定します。[CreateKnowledgeBase](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateKnowledgeBase.html) を呼び出した後、[CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html) を呼び出して、`dataSourceConfiguration` の接続情報を使用してデータソースを作成します。

オプションの `vectorIngestionConfiguration` フィールドを含めることで取り込みに適用できるカスタマイズの詳細については、「[データソースの取り込みをカスタマイズする](kb-data-source-customize-ingestion.md)」を参照してください。

**AWS Command Line Interface**

```
aws bedrock-agent create-data-source \
 --name "S3-connector" \
 --description "S3 data source connector for Amazon Bedrock to use content in S3" \
 --knowledge-base-id "your-knowledge-base-id" \
 --data-source-configuration file://s3-bedrock-connector-configuration.json \
 --data-deletion-policy "DELETE" \
 --vector-ingestion-configuration '{"chunkingConfiguration":{"chunkingStrategy":"FIXED_SIZE","fixedSizeChunkingConfiguration":{"maxTokens":100,"overlapPercentage":10}}}'
                    
s3-bedrock-connector-configuration.json
{
    "s3Configuration": {
	    "bucketArn": "arn:aws:s3:::bucket-name",
	    "bucketOwnerAccountId": "000000000000",
	    "inclusionPrefixes": [
	        "documents/"
	    ]
    },
    "type": "S3"	
}
```

------