翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ドキュメントレベルのアクセスコントロール
ACL 対応は認可ではありません
Bedrock マネージドナレッジベースは、セキュリティ境界ではなく、ACL 対応のフィルタリングを提供します。Bedrock マネージドナレッジベースはエンドユーザーを認証しません。アプリケーションはユーザーを認証し、検証済みの ID コンテキストを渡す責任があります。Bedrock マネージドナレッジベースは、指定したユーザーコンテキストの信頼性を検証できないため、この機能は、指定した ID に基づいて結果をフィルタリングしますが、真の認可を構成するものではありません。アップストリーム認証なしでは、この機能を唯一のアクセスコントロールメカニズムとして使用しないでください。
カスタムデータソースは、オプションでドキュメントレベルのアクセスコントロールをサポートします。クロールされたコネクタとは異なり、カスタムデータソースにはネイティブアクセス許可システムがないため、 IngestKnowledgeBaseDocumentsオペレーションで取り込むときに各ドキュメントのアクセスコントロールリスト (ACL) を指定します。すべてのコネクタにおける ACL 対応の概要については、「」を参照してくださいアクセスコントロールリストの認識の有効化。
仕組み
ACL 対応のカスタムデータソースの場合、Bedrock Managed Knowledge Base は、取得前のフィルタリング中にお客様が用意したアクセスコントロールリストを適用し、クエリユーザーがアクセスできるドキュメントのみを返します。お客様が用意した ACL メタデータが信頼できるソースであるため、カスタムデータソースではリアルタイムの ACL 検証はサポートされていません。
ACL 対応を有効にする
カスタムデータソースの ACL 対応を有効にするには、データソースを作成または更新connectorParametersするときに、 trueで を aclEnabledに設定します。データソース設定構造については、「」を参照してくださいカスタム。
"connectorParameters": { "type": "CUSTOM", "version": "1", "aclEnabled": true }
ドキュメントを取り込むときにアクセスコントロールを提供する
ドキュメントの ACL は、IngestKnowledgeBaseDocumentsリクエストmetadata内のドキュメントの の accessControlList フィールドを通じて指定します。ACL ソースはmetadata.type、メタデータ属性の送信元を制御するのと同じフィールドである によって決定されます。
-
IN_LINE_ATTRIBUTE— ACL はリクエスト本文のaccessControlList配列から読み取られます。 -
S3_LOCATION— ACL は、Amazon S3 のドキュメントの.metadata.jsonファイル内のaccessControlList配列から読み取られます。 Amazon S3
accessControlList は の最上位フィールドとしてmetadataではなく に存在するためKnowledgeBaseDocument、ドキュメントには によって制御される単一の ACL ソースがありますmetadata.type。これにより、競合する ACLs が同じドキュメント (たとえば、リクエストのインライン ACL と S3 ファイル内の ACL) に提供されるのを防ぐことができます。トレードオフは、インライン ACL を S3-basedメタデータ属性と組み合わせたり、S3-based ACL をインラインメタデータ属性と組み合わせたりできないことです。
各accessControlListエントリには以下が含まれます。
name— ユーザーの E メールアドレス。type— である必要がありますUSER。access—ALLOWまたはDENYのいずれか。オーバーライドの許可を拒否します。
インライン ACL (metadata.type = IN_LINE_ATTRIBUTE)
インラインメタデータ属性とともにリクエスト本文accessControlListに直接 を指定します。
PUT /knowledgebases/KB12345678/datasources/DS12345678/documents HTTP/1.1 Content-type: application/json { "documents": [ { "content": { "dataSourceType": "CUSTOM", "custom": { "customDocumentIdentifier": { "id": "hr-policy-2026" }, "inlineContent": { "textContent": { "data": "Annual leave policy: All full-time employees are entitled to..." }, "type": "TEXT" }, "sourceType": "IN_LINE" } }, "metadata": { "type": "IN_LINE_ATTRIBUTE", "inlineAttributes": [ { "key": "department", "value": { "stringValue": "HR", "type": "STRING" } } ], "accessControlList": [ { "name": "alice@example.com", "type": "USER", "access": "ALLOW" }, { "name": "bob@example.com", "type": "USER", "access": "DENY" } ] } } ] }
S3-based ACL (metadata.type = S3_LOCATION)
Amazon S3 の.metadata.jsonファイルにドキュメントのメタデータをポイントします。メタデータ属性と の両方accessControlListがそのファイルから読み取られます。
"metadata": { "type": "S3_LOCATION", "s3Location": { "uri": "s3://amzn-s3-demo-bucket/hr-policy-2026.metadata.json" } }
.metadata.json ファイルは、Amazon S3 データソースのドキュメントごとのメタデータファイルと同じ形式を使用します。このファイルは、大文字の ACL フィールド名 (Name、Type、Access) を使用します。これは、インラインリクエストで使用される小文字のフィールド名 (name、type、access) とは異なります。
{ "metadataAttributes": {}, "accessControlList": [ { "Name": "alice@example.com", "Type": "USER", "Access": "ALLOW" }, { "Name": "bob@example.com", "Type": "USER", "Access": "DENY" } ] }
設定を確認する
カスタム ACLs は を通じてお客様が提供するためIngestKnowledgeBaseDocuments、クエリを実行する前に検証してください。
aclEnabledがデータソースのconnectorParameters(type)trueにあることを確認しますCUSTOM。取り込まれた各ドキュメントに
accessControlListが含まれmetadata、ACL ソース (IN_LINE_ATTRIBUTEインラインの場合は 、S3 ファイルS3_LOCATIONの場合は )metadata.typeと一致することを確認します。ACL エントリフィールドの大文字と小文字がソースと一致することを確認します。インライン ACLs の場合は小文字
name/type/access、S3.metadata.jsonファイルの場合は大文字Name/Type/Access。テストユーザーの E メールが、取得する予定のドキュメントの
ALLOWエントリnameの と正確に一致することを確認します。
トラブルシューティング
注記
ACL の設定ミスは、取得中に明示的なエラーを生成しません。取得がクローズに失敗する: 影響を受けるドキュメントはサイレントに省略されるため、クエリはエラーではなく少数またはゼロの結果を返します。上記の検証チェックを使用して、これらの問題を診断します。
| 症状 | 考えられる原因 | Fix |
|---|---|---|
| 取得は、アクセス権を持つ必要があるユーザーの結果を 0 回返します。 | E userIdメールがaccessControlListエントリと一致しません。 |
ユーザーの E メールを ALLOWエントリnameの に合わせます。 |
| インライン ACL が拒否または無視されます。 | フィールドの大文字と小文字が間違っているか、 metadata.typeではありませんIN_LINE_ATTRIBUTE。 |
小文字の name/type/access を使用し、 metadata.typeを に設定しますIN_LINE_ATTRIBUTE。 |
| S3-based ACL は適用されません。 | metadata.type が ではないかS3_LOCATION、.metadata.jsonファイルが がありませんaccessControlList。 |
metadata.type を に設定S3_LOCATIONし、 accessControlListファイルを を含めます。 |
| ドキュメントは誰にも返されません。 | ドキュメントは なしで取り込まれましたaccessControlList。 |
を使用してドキュメントを再取り込みしますaccessControlList。 |