

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

# ドキュメントレベルのアクセスコントロール
<a name="kb-managed-ds-custom-acl"></a>

**ACL 対応は認可ではありません**  
Bedrock マネージドナレッジベースは、セキュリティ境界ではなく、ACL 対応のフィルタリングを提供します。Bedrock マネージドナレッジベースはエンドユーザーを認証しません。アプリケーションはユーザーを認証し、検証済みの ID コンテキストを渡す責任があります。Bedrock マネージドナレッジベースは、指定したユーザーコンテキストの信頼性を検証できないため、この機能は、指定した ID に基づいて結果をフィルタリングしますが、真の認可を構成するものではありません。アップストリーム認証なしでは、この機能を唯一のアクセスコントロールメカニズムとして使用しないでください。

カスタムデータソースは、オプションでドキュメントレベルのアクセスコントロールをサポートします。クロールされたコネクタとは異なり、カスタムデータソースにはネイティブアクセス許可システムがないため、 `IngestKnowledgeBaseDocuments`オペレーションで取り込むときに各ドキュメントのアクセスコントロールリスト (ACL) を指定します。すべてのコネクタにおける ACL 対応の概要については、「」を参照してください[アクセスコントロールリストの認識の有効化](kb-managed-acl.md)。

## 仕組み
<a name="kb-managed-ds-custom-acl-how"></a>

ACL 対応のカスタムデータソースの場合、Bedrock Managed Knowledge Base は、取得前のフィルタリング中にお客様が用意したアクセスコントロールリストを適用し、クエリユーザーがアクセスできるドキュメントのみを返します。お客様が用意した ACL メタデータが信頼できるソースであるため、カスタムデータソースではリアルタイムの ACL 検証はサポートされていません。

## ACL 対応を有効にする
<a name="kb-managed-ds-custom-acl-enable"></a>

カスタムデータソースの ACL 対応を有効にするには、データソースを作成または更新`connectorParameters`するときに、 `true`で を `aclEnabled`に設定します。データソース設定構造については、「」を参照してください[カスタム](kb-managed-ds-custom.md)。

```
"connectorParameters": {
    "type": "CUSTOM",
    "version": "1",
    "aclEnabled": true
}
```

## ドキュメントを取り込むときにアクセスコントロールを提供する
<a name="kb-managed-ds-custom-acl-ingest"></a>

ドキュメントの 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)
<a name="kb-managed-ds-custom-acl-inline"></a>

インラインメタデータ属性とともにリクエスト本文`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)
<a name="kb-managed-ds-custom-acl-s3"></a>

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 データソースの[ドキュメントごとのメタデータファイル](kb-managed-ds-s3-acl.md#kb-managed-ds-s3-acl-perdoc)と同じ形式を使用します。このファイルは、大文字の 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"
        }
    ]
}
```

## 設定を確認する
<a name="kb-managed-ds-custom-acl-verify"></a>

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

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

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

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

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

## トラブルシューティング
<a name="kb-managed-ds-custom-acl-troubleshooting"></a>

**注記**  
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。 | 