View a markdown version of this page

ドキュメントレベルのアクセスコントロール - Amazon Bedrock

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

ドキュメントレベルのアクセスコントロール

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

  • accessALLOWまたは 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 フィールド名 (NameTypeAccess) を使用します。これは、インラインリクエストで使用される小文字のフィールド名 (nametypeaccess) とは異なります。

{ "metadataAttributes": {}, "accessControlList": [ { "Name": "alice@example.com", "Type": "USER", "Access": "ALLOW" }, { "Name": "bob@example.com", "Type": "USER", "Access": "DENY" } ] }

設定を確認する

カスタム ACLs は を通じてお客様が提供するためIngestKnowledgeBaseDocuments、クエリを実行する前に検証してください。

  1. aclEnabled がデータソースの connectorParameters (type) trueにあることを確認しますCUSTOM

  2. 取り込まれた各ドキュメントに accessControlListが含まれmetadata、ACL ソース (IN_LINE_ATTRIBUTEインラインの場合は 、S3 ファイルS3_LOCATIONの場合は ) metadata.typeと一致することを確認します。

  3. ACL エントリフィールドの大文字と小文字がソースと一致することを確認します。インライン ACLs の場合は小文字 name/type/access、S3 .metadata.json ファイルの場合は大文字 Name/Type/Access

  4. テストユーザーの E メールが、取得する予定のドキュメントのALLOWエントリnameの と正確に一致することを確認します。

トラブルシューティング

注記

ACL の設定ミスは、取得中に明示的なエラーを生成しません。取得がクローズに失敗する: 影響を受けるドキュメントはサイレントに省略されるため、クエリはエラーではなく少数またはゼロの結果を返します。上記の検証チェックを使用して、これらの問題を診断します。

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