翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon S3
Amazon S3 は、データをオブジェクトとしてバケットに保存するオブジェクトストレージサービスです。Amazon S3 バケットをマネージドナレッジベースのデータソースとして接続して、そこに保存しているオブジェクトを取り込むことができます。
サポートされている機能
-
個別のメタデータファイルを使用してメタデータフィールドを文書化する
-
ファイルパターンと S3 キープレフィックスを使用した包含コンテンツフィルターと除外コンテンツフィルター
-
追加、更新、削除されたコンテンツの増分コンテンツ同期
-
クロスアカウント Amazon S3 バケットアクセス
-
お客様が用意した ACLs ファイルを使用したドキュメントレベルのアクセスコントロール (ACL)
前提条件
Amazon S3 で、以下を確認してください。
-
Amazon S3 バケット名とバケット所有者の AWS アカウント ID を書き留めます。バケットは、ナレッジベースと同じ AWS リージョンにある汎用バケットであり、バケットにアクセスするアクセス許可を持っている必要があります。
-
バケットがナレッジベースとは異なる AWS アカウントにある場合、またはカスタマーマネージド KMS キーで暗号化されている場合は、ナレッジベースサービスロールからのアクセスを許可するようにバケットポリシーと (該当する場合) KMS キーポリシーを設定します。「クロスアカウントおよび KMS 暗号化アクセスのバケットポリシー」を参照してください。
AWS アカウントで、以下を確認してください。
-
ナレッジベースの AWS Identity and Access Management (IAM) ロール/アクセス許可ポリシーに、データソースに接続するために必要なアクセス許可を含めます。必要なアクセス許可の詳細については、「」を参照してくださいデータソースにアクセスするためのアクセス許可。
クロスアカウントおよび KMS 暗号化アクセスのバケットポリシー
Amazon S3 バケットがナレッジベースとは異なる AWS アカウントにある場合、またはカスタマーマネージド KMS キーで暗号化されている場合は、リソースベースのポリシーを追加してナレッジベースのサービスロールにアクセス権を付与します。次の例は、必要な最小ステートメントを示しています。
クロスアカウントバケットポリシー
Amazon S3 バケットを所有するアカウントで、バケットポリシーに次のステートメントを追加します。kb-account-id をナレッジベースが作成されたアカウント ID に、kb-service-role をナレッジベースサービスロールの名前に、bucket-name をバケット名に置き換えます。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowBedrockKnowledgeBaseAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::kb-account-id:role/kb-service-role" }, "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] } ] }
一般的なガイダンスについては、Amazon S3バケットへのアクセスを設定する」を参照してください。
暗号化されたバケットの KMS キーポリシー
Amazon S3 バケットがカスタマーマネージド KMS キーで暗号化されている場合は、キーポリシーに次のステートメントを追加します。クロスアカウントバケットポリシーと同じプレースホルダーを使用します。キーポリシーの変更が反映されるまで数分かかります。
{ "Sid": "AllowBedrockKnowledgeBaseKmsAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::kb-account-id:role/kb-service-role" }, "Action": [ "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*" }
"Resource": "*" ここでのスコープは、ポリシーがアタッチされているキーです。
Amazon S3 データソースをセットアップする方法
Amazon S3 データソースのセットアップには、次のステップが含まれます。
-
バケットを準備します。バケット名、アカウント ID、およびバケットポリシー (クロスアカウントアクセスの場合) を確認します。ドキュメントメタデータを使用する場合は、
.metadata.jsonファイルが保存されている Amazon S3 プレフィックスを決定します。 -
データソースを接続します。 AWS マネジメントコンソール または API を使用して、ナレッジベースに Amazon S3 データソースを作成します。「データソースを作成する」を参照してください。
-
(オプション) ドキュメントレベルのアクセスコントロールを有効にします。お客様が用意した ACL ファイルで定義されたユーザーアクセス許可でクエリ結果をフィルタリングします。「ドキュメントレベルのアクセスコントロール」を参照してください。
データソースを作成する
コネクタパラメータ
データソース設定では、次のコネクタパラメータを使用します。Amazon S3 に接続するには、 でコネクタタイプS3として を指定しますconnectorParameters。ラップするフィールド connectorParameters ( deletionProtectionConfigurationや などmediaExtractionConfiguration) については、「」を参照してくださいデータソースを接続する。
| フィールド | 必要 | 説明 |
|---|---|---|
bucketName |
はい | Amazon S3 バケットの名前です。 |
bucketOwnerAccountId |
条件付き | バケット所有者の AWS アカウント ID。クロスアカウントアクセスに必要です。 |
| フィールド | 必要 | 説明 |
|---|---|---|
inclusionPrefixes |
いいえ | 含める Amazon S3 キープレフィックスのリスト (例: documents/)。 |
exclusionPrefixes |
いいえ | 除外する Amazon S3 キープレフィックスのリスト (例: archive/)。 |
inclusionPatterns |
いいえ | 正規表現のリスト。キーが少なくとも 1 つのパターンに一致するオブジェクトのみが取り込まれます。 |
exclusionPatterns |
いいえ | 正規表現のリスト。いずれかのパターンに一致するキーを持つオブジェクトは取り込まれません。 |
maxFileSizeInMegaBytes |
いいえ | コネクタが取り込む 1 つのファイルの最大サイズ、メガバイト単位。数値文字列として を指定します (例: "500")。デフォルトは "500" です。 |
| フィールド | 必要 | 説明 |
|---|---|---|
metadataFilesPrefix |
いいえ | ドキュメントメタデータファイル (.metadata.json) が保存される Amazon S3 プレフィックス。 |
aclEnabled |
いいえ | ドキュメントレベルのアクセスコントロールを有効にするtrueには、 に設定します。データソースの作成後にこの設定を変更することはできません。詳細については、「ドキュメントレベルのアクセスコントロール」を参照してください。 |
aclConfiguration |
条件付き | 含む globalAccessControlListS3Uri — キープレフィックスをアクセスコントロールエントリにマッピングする JSON ファイルの Amazon S3 URI。aclEnabled が の場合は必須ですtrue。 が の場合、 aclEnabledは無視されますfalse。「ドキュメントレベルのアクセスコントロール」を参照してください。 |
ドキュメントメタデータファイル
サイドカーファイルをアップロードすることで、各ドキュメントにメタデータをアタッチできます。ドキュメントごとに、同じ Amazon S3 パスに という名前のファイルを作成します。メタデータファイルは 10 KB を超えることはできません。たとえば、 と一緒にfilename.extension.metadata.jsonreport.pdf、次の内容report.pdf.metadata.jsonでアップロードします。
{ "metadataAttributes": { "company": { "value": { "type": "STRING", "stringValue": "BioPharm Innovations" } }, "created_date": { "value": { "type": "NUMBER", "numberValue": 20221205 } }, "author": { "value": { "type": "STRING", "stringValue": "Lisa Thompson" } } } }
サポートされている属性データ型とクエリ時に適用できるフィルタリング演算子については、「メタデータとフィルタリング」を参照してください。