

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

# ナレッジベースリソースの暗号化
<a name="encryption-kb"></a>

Amazon Bedrock はナレッジベースに関連するリソースを暗号化します。デフォルトでは、Amazon Bedrock は AWS所有のキーを使用してこのデータを暗号化します。オプションで、カスタマーマネージドキーを使用して、モデルアーティファクトを暗号化することもできます。

**フルマネージドナレッジベース**

KMS キーによる暗号化は、以下のプロセスで行うことができます。
+ データソースの取り込み中の一時的なデータストレージ
+ データソースの保存中の永続的データストレージ
+ ナレッジベースへのクエリの実行

ナレッジベースが使用する以下のリソースは KMS キーで暗号化できます。暗号化する場合は、KMS キーを復号するためのアクセス許可を追加する必要があります。
+ Amazon S3 バケットに保存されているデータソース

**カスタムナレッジベース (ベクトルストア)**

KMS キーによる暗号化は、以下のプロセスで行うことができます。
+ データソースの取り込み中の一時的なデータストレージ
+ Amazon Bedrock にベクトルデータベースをセットアップさせた場合の情報の OpenSearch サービスへの提供
+ ナレッジベースへのクエリの実行

ナレッジベースが使用する以下のリソースは KMS キーで暗号化できます。暗号化する場合は、KMS キーを復号するためのアクセス許可を追加する必要があります。
+ Amazon S3 バケットに保存されているデータソース
+ サードパーティーのベクトルストア

詳細については AWS KMS keys、「 *AWS Key Management Service デベロッパーガイド*」の[「カスタマーマネージドキー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)」を参照してください。

**注記**  
Amazon Bedrock ナレッジベースは、転送中の TLS 暗号化をプロバイダーが許可およびサポートするサードパーティーのデータソースコネクタおよびベクトルストアとの通信に TLS 暗号化を使用します。

**Topics**
+ [フルマネージドナレッジベースのデータストレージの暗号化](#encryption-kb-managed-ingestion)
+ [ナレッジベース取得の暗号化](#encryption-kb-runtime)
+ [データインジェスト時の一時データストレージの暗号化](#encryption-kb-ingestion)
+ [Amazon OpenSearch Service に渡される情報の暗号化](#encryption-kb-oss)
+ [Amazon S3 Vectors に渡される情報の暗号化](#encryption-kb-s3-vector)
+ [Amazon S3 のデータソースの AWS KMS キーを復号するアクセス許可](#encryption-kb-ds)
+ [ナレッジベースを含むベクトルストアの AWS Secrets Manager シークレットを復号するアクセス許可](#encryption-kb-3p)
+ [AWS KMS 暗号化を使用した Bedrock Data Automation (BDA) のアクセス許可](#encryption-kb-bda)

## フルマネージドナレッジベースのデータストレージの暗号化
<a name="encryption-kb-managed-ingestion"></a>

フルマネージドナレッジベースを作成すると、カスタム KMS キーを使用してデータを暗号化できます。KMS キーはナレッジベースの作成時に指定され、取り込み中の一時的なデータストレージとインデックス作成用の永続的なデータストレージの両方に適用されます。

Amazon Bedrock は、ナレッジベースの作成時に指定する単一の KMS キーを使用して、ナレッジベースのすべてのデータを暗号化します。これには、データソースの取り込み中の一時的なデータと、インデックス作成と取得のために保存される永続的なデータが含まれます。

カスタマーマネージドキーを使用してフルマネージドナレッジベースを作成すると、Amazon Bedrock はキーを使用できることを確認し、キーに対する許可を作成します。Amazon Bedrock はこの権限を使用して、取り込み、インデックス作成、取得中にデータを暗号化および復号し、ナレッジベースを削除すると権限を廃止します。

これらのアクセス許可は、次の例に示すように、ナレッジベースを作成する IAM ID の AWS KMS キーポリシーで指定します。サンプル値を、独自の AWS リージョン、アカウント ID、ナレッジベースを作成する IAM ロールまたはユーザーに置き換えます。ナレッジベースに関連付けられている IAM サービスロール (Amazon Bedrock がデータソースの読み取りに使用するロール) には、KMS キーに対するアクセス許可は必要ありません。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/{{role-name}}"
            },
            "Action": [
                "kms:CreateGrant"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "kms:ViaService": "bedrock.{{region}}.amazonaws.com"
                },
                "ForAllValues:StringEquals": {
                    "kms:GrantOperations": [
                        "CreateGrant",
                        "GenerateDataKey",
                        "GenerateDataKeyWithoutPlaintext",
                        "DescribeKey",
                        "Encrypt",
                        "Decrypt"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/{{role-name}}"
            },
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "kms:ViaService": "bedrock.{{region}}.amazonaws.com"
                }
            }
        }
    ]
}
```

### フルマネージドナレッジベースの暗号化キーをモニタリングする
<a name="encryption-kb-managed-monitor"></a>

ナレッジベースで AWS KMS カスタマーマネージドキーを使用する場合、 [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)または [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) を使用して、Amazon Bedrock が送信するリクエストを追跡できます AWS KMS。

以下は、フルマネージドナレッジベースを作成するときに Amazon Bedrock が AWS KMS キーに作成する許可を示す の AWS CloudTrail イベントの例です。

```
{
    "eventVersion": "1.09",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AROAIGDTESTANDEXAMPLE:SampleUser01",
        "arn": "arn:aws:sts::111122223333:assumed-role/SampleRole/SampleUser01",
        "accountId": "111122223333",
        "accessKeyId": "EXAMPLE",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AROAIGDTESTANDEXAMPLE",
                "arn": "arn:aws:iam::111122223333:role/SampleRole",
                "accountId": "111122223333",
                "userName": "SampleRole"
            },
            "attributes": {
                "creationDate": "2024-05-07T21:46:28Z",
                "mfaAuthenticated": "false"
            }
        },
        "invokedBy": "bedrock.amazonaws.com"
    },
    "eventTime": "2024-05-07T21:49:44Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "CreateGrant",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "bedrock.amazonaws.com",
    "userAgent": "bedrock.amazonaws.com",
    "requestParameters": {
        "granteePrincipal": "bedrock.amazonaws.com",
        "retiringPrincipal": "bedrock.amazonaws.com",
        "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE",
        "operations": [
            "Decrypt",
            "GenerateDataKey"
        ]
    },
    "responseElements": {
        "grantId": "0ab0ac0d0b000f00ea00cc0a0e00fc00bce000c000f0000000c0bc0a0000aaafSAMPLE",
        "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
    },
    "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "readOnly": false,
    "resources": [
        {
            "accountId": "111122223333",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management"
}
```

## ナレッジベース取得の暗号化
<a name="encryption-kb-runtime"></a>

ナレッジベースに KMS キーでクエリを実行することにより、レスポンスを生成するセッションを暗号化することができます。そのためには、[RetrieveAndGenerate](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html) リクエストを行うときに KMS キーの ARN を `kmsKeyArn` フィールドに入力します。次のポリシーをアタッチし、サンプル値を独自の AWS リージョン、アカウント ID、 AWS KMS キー ID に置き換えて、Amazon Bedrock がセッションコンテキストを暗号化できるようにします。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "bedrock.amazonaws.com"
            },
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": "arn:aws:kms:{{us-east-1}}:{{123456789012}}:key/{{key-id}}"
        }
    ]
}
```

------

## データインジェスト時の一時データストレージの暗号化
<a name="encryption-kb-ingestion"></a>

カスタムナレッジベースのデータ取り込みジョブを設定すると、カスタム KMS キーを使用してジョブを暗号化できます。

データソースの取り込みプロセスで一時データストレージの AWS KMS キーを作成できるようにするには、Amazon Bedrock サービスロールに次のポリシーをアタッチします。サンプル値を独自の AWS リージョン、アカウント ID、および AWS KMS キー ID に置き換えます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:{{us-east-1}}:{{123456789012}}:key/{{key-id}}"
            ]
        }
    ]
}
```

------

## Amazon OpenSearch Service に渡される情報の暗号化
<a name="encryption-kb-oss"></a>

Amazon Bedrock にナレッジベース用のベクトルストアを Amazon OpenSearch Service 内に作成させることを選択した場合、Amazon Bedrock はユーザーが選択した KMS キーを Amazon OpenSearch Service に渡して暗号化することができます。Amazon OpenSearch Service での暗号化の詳細については、「[Amazon OpenSearch Service での暗号化](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-encryption.html)」を参照してください。

## Amazon S3 Vectors に渡される情報の暗号化
<a name="encryption-kb-s3-vector"></a>

Amazon Bedrock にナレッジベース用の S3 ベクトルバケットとベクトルストアを Amazon S3 Vectors 内に作成させることを選択した場合、Amazon Bedrock はユーザーが選択した KMS キーを Amazon S3 Vectors に渡して暗号化することができます。Amazon S3 Vectors での暗号化の詳細については、「[Amazon S3 Vectors による暗号化](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-vectors-bucket-encryption.html)」を参照してください。

## Amazon S3 のデータソースの AWS KMS キーを復号するアクセス許可
<a name="encryption-kb-ds"></a>

ナレッジベースのデータソースを Amazon S3 バケットに保存します。これらのドキュメントを保存中に暗号化するには、Amazon S3 SSE-S3 サーバーサイド暗号化オプションを使用できます。このオプションでは、オブジェクトは Amazon S3 サービスによって管理されるサービスキーで暗号化されます。

詳細については、**「Amazon Simple Storage Service ユーザーガイド」の「[Amazon S3 マネージドキーによるサーバー側の暗号化 (SSE-S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingServerSideEncryption.html)」を参照してください。

Amazon S3 のデータソースをカスタム AWS KMS キーで暗号化した場合は、Amazon Bedrock サービスロールに次のポリシーをアタッチして、Amazon Bedrock がキーを復号できるようにします。サンプル値を独自の AWS リージョン、アカウント ID、および AWS KMS キー ID に置き換えます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "KMS:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:{{us-east-1}}:{{123456789012}}:key/{{key-id}}"
            ],
            "Condition": {
                "StringEquals": {
                    "kms:ViaService": [
                        "s3.us-east-1.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

## ナレッジベースを含むベクトルストアの AWS Secrets Manager シークレットを復号するアクセス許可
<a name="encryption-kb-3p"></a>

ナレッジベースを含むベクトルストアが AWS Secrets Manager シークレットで設定されている場合は、「シークレットの暗号化と復号」の手順に従って、カスタム AWS KMS キーでシークレットを暗号化できます。 [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html)

そうする場合、Amazon Bedrock サービスロールに次のポリシーをアタッチして、サービスロールがキーを復号化できるようにします。サンプル値を独自の AWS リージョン、アカウント ID、および AWS KMS キー ID に置き換えます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:{{us-east-1}}:{{123456789012}}:key/{{key-id}}"
            ]
        }
    ]
}
```

------

## AWS KMS 暗号化を使用した Bedrock Data Automation (BDA) のアクセス許可
<a name="encryption-kb-bda"></a>

BDA を使用してカスタマーマネージド AWS KMS キーでマルチモーダルコンテンツを処理する場合、標準のアクセス許可を超えて追加の AWS KMS アクセス許可が必要です。

Amazon Bedrock サービスロールに次のポリシーをアタッチして、暗号化されたマルチメディアファイルを BDA が操作できるようにします。サンプル値を独自の AWS リージョン、アカウント ID、および AWS KMS キー ID に置き換えます。

```
{
    "Sid": "KmsPermissionStatementForBDA",
    "Effect": "Allow",
    "Action": [
        "kms:GenerateDataKey",
        "kms:Decrypt",
        "kms:DescribeKey",
        "kms:CreateGrant"
    ],
    "Resource": "arn:aws:kms:{{region}}:{{account-id}}:key/{{key-id}}",
    "Condition": {
        "StringEquals": {
            "aws:ResourceAccount": "{{account-id}}",
            "kms:ViaService": "bedrock.{{region}}.amazonaws.com"
        }
    }
}
```

BDA 固有のアクセス許可には`kms:DescribeKey`、暗号化されたオーディオ、ビデオ、イメージファイルを BDA が処理するために必要な および `kms:CreateGrant`アクションが含まれます。