

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 知識庫資源的加密
<a name="encryption-kb"></a>

Amazon Bedrock 會加密與您的知識庫相關的資源。根據預設，Amazon Bedrock 會使用 AWS擁有的金鑰來加密此資料。或者，您可以使用客戶管理的金鑰加密模型成品。

**全受管知識庫**

下列程序可能會使用 KMS 金鑰進行加密：
+ 擷取您的資料來源時的暫時性資料儲存
+ 存放資料來源時的永久資料儲存
+ 查詢知識庫

您的知識庫使用的下列資源，可以使用 KMS 金鑰加密。如果您將資源加密，您需要新增許可權來解密 KMS 金鑰。
+ 存放在 Amazon S3 儲存貯體中的資料來源

**自訂知識庫 （向量存放區）**

下列程序可能會使用 KMS 金鑰進行加密：
+ 擷取您的資料來源時的暫時性資料儲存
+ 如果您讓 Amazon Bedrock 設定向量資料庫，請將資訊傳遞給 OpenSearch Service
+ 查詢知識庫

您的知識庫使用的下列資源，可以使用 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 資料自動化 (BDA) 許可](#encryption-kb-bda)

## 在全受管知識庫中加密資料儲存
<a name="encryption-kb-managed-ingestion"></a>

當您建立全受管知識庫時，您可以使用自訂 KMS 金鑰加密資料。KMS 金鑰是在知識庫建立期間指定，並適用於擷取期間的暫時性資料儲存，以及用於索引的永久資料儲存。

Amazon Bedrock 使用您在建立知識庫時指定的單一 KMS 金鑰，來加密知識庫中的所有資料。這包括擷取資料來源時的暫時性資料，以及存放用於索引和擷取的永久資料。

當您使用客戶受管金鑰建立全受管知識庫時，Amazon Bedrock 會驗證是否可以使用金鑰，然後對金鑰建立授予。Amazon Bedrock 使用此授權在擷取、索引和擷取期間加密和解密您的資料，並在刪除知識庫時淘汰授權。

您可以在 AWS KMS 金鑰的金鑰政策中為建立知識庫的 IAM 身分提供這些許可，如下列範例所示。將範例值取代為您自己的 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。

以下是 的範例 AWS CloudTrail 事件，顯示當您建立全受管知識庫時，Amazon Bedrock 在您的 AWS KMS 金鑰上建立的授予：

```
{
    "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) 請求時，在 `kmsKeyArn` 欄位中包含 KMS 金鑰的 ARN。連接下列政策，將範例值取代為您自己的 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 在 Amazon S3 Vectors 中為知識庫建立 S3 向量儲存貯體和向量索引，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)。

如果您使用自訂 AWS KMS 金鑰在 Amazon S3 中加密資料來源，請將下列政策連接至 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 資料自動化 (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`和 `kms:CreateGrant`動作，BDA 需要這些動作來處理加密的音訊、影片和影像檔案。