

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

# 知識庫評估任務的資料加密
<a name="rag-evaluation-security-data"></a>

在知識庫評估任務期間，Amazon Bedrock 會暫時複製您的資料。Amazon Bedrock 會在任務完成後刪除資料。若要加密資料，Amazon Bedrock 會使用 KMS 金鑰。此外也會使用您指定的 KMS 金鑰或 Amazon Bedrock 擁有的金鑰。

Amazon Bedrock 需要下列各節中的 IAM 和 AWS KMS 許可，才能使用您的 KMS 金鑰來執行下列動作：
+ 解密您的資料。
+ 加密 Amazon Bedrock 製作的臨時複本。

建立知識庫評估任務時，您可以選擇使用 Amazon Bedrock 擁有的 KMS 金鑰，也可以選擇自己的客戶受管金鑰。如果您未指定客戶受管金鑰，Amazon Bedrock 預設會使用其金鑰。

您必須先執行下列動作，才能使用客戶受管金鑰：
+ 將必要的 IAM 動作和資源新增至 IAM 服務角色的政策。
+ 新增必要的 KMS 金鑰政策元素。
+ 建立可與您的客戶受管金鑰互動的政策。這是在單獨的 KMS 金鑰政策中指定的。

## 必要的政策元素
<a name="rag-evel-policy-elements"></a>

下列各節中的 IAM 和 KMS 金鑰政策包含下列必要元素：
+ `kms:Decrypt` – 對於您使用 KMS 金鑰加密的檔案，會提供給 Amazon Bedrock 可存取和解密這些檔案的許可。
+ `kms:GenerateDataKey` – 控制可使用 KMS 金鑰來產生資料金鑰的許可。Amazon Bedrock 會使用 `GenerateDataKey` 來加密其為評估任務存放的暫存資料。
+ `kms:DescribeKey` – 提供 KMS 金鑰的相關詳細資訊。
+ `kms:ViaService` – 條件金鑰會限制使用 KMS 金鑰向指定的 AWS 服務請求。您必須指定下列服務：
  + Amazon S3，因為 Amazon Bedrock 會將資料的暫存複本存放在 Amazon Bedrock 擁有的 Amazon S3 位置中。
  + Amazon Bedrock，因為評估服務會呼叫 Amazon Bedrock 知識庫 API 來執行知識庫工作流程。
+ `kms:EncryptionContext:context-key` – 此條件金鑰會限制對 AWS KMS 操作的存取，使其僅專屬於提供的[加密內容](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html)。

## IAM 政策要求
<a name="rag-eval-iam-policies"></a>

在您搭配 Amazon Bedrock 使用的 IAM 角色中，相關聯的 IAM 政策必須具有下列元素。若要進一步了解如何管理 AWS KMS 金鑰，請參閱[搭配 使用 IAM 政策 AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html)。

Amazon Bedrock 中的知識庫評估任務使用 AWS 擁有的金鑰。如需 AWS 擁有金鑰的詳細資訊，請參閱《 *AWS Key Management Service 開發人員指南*》中的[AWS 擁有金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk)。

以下是僅包含必要 AWS KMS 動作和資源的範例 IAM 政策：

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CustomKMSKeyProvidedToBedrockEncryption",
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:123456789012:key/*"
            ],
            "Condition": {
                "StringEquals": {
                    "kms:ViaService": [
                        "s3.us-east-1.amazonaws.com"
                    ]
                }
            }
        },
        {
            "Sid": "CustomKMSKeyProvidedToBedrockEvalKMS",
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:123456789012:key/*"
            ],
            "Condition": {
                "StringLike": {
                    "kms:EncryptionContext:evaluationJobArn": "arn:aws:bedrock:us-east-1:123456789012:evaluation-job/*"
                }
            }
        },
        {
            "Sid": "CustomKMSKeyProvidedToBedrockKBDecryption",
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:123456789012:key/*"
            ],
            "Condition": {
                "StringLike": {
                    "kms:EncryptionContext:knowledgeBaseArn": "arn:aws:bedrock:us-east-1:123456789012:knowledge-base/*"
                }
            }
        },
        {
            "Sid": "CustomKMSKeyProvidedToBedrockKBEncryption",
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:123456789012:key/*"
            ],
            "Condition": {
                "StringLike": {
                    "kms:EncryptionContext:knowledgeBaseArn": "arn:aws:bedrock:us-east-1:123456789012:knowledge-base/*"
                },
                "StringEquals": {
                    "kms:ViaService": [
                        "bedrock.us-east-1.amazonaws.com"
                    ]
                }
            }
        },
        {
            "Sid": "CustomKMSKeyProvidedToBedrockKBGenerateDataKey",
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:123456789012:key/*"
            ],
            "Condition": {
                "StringLike": {
                    "kms:EncryptionContext:CustomerAwsAccountId": "123456789012",
                    "kms:EncryptionContext:SessionId": "*"
                },
                "StringEquals": {
                    "kms:ViaService": [
                        "bedrock.us-east-1.amazonaws.com"
                    ]
                }
            }
        },
        {
            "Sid": "CustomKMSDescribeKeyProvidedToBedrock",
            "Effect": "Allow",
            "Action": [
                "kms:DescribeKey"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:123456789012:key/*"
            ]
        }
    ]
}
```

------

## AWS KMS 金鑰政策需求
<a name="rag-eval-kms-policies"></a>

每個 KMS 金鑰都必須有一個金鑰政策。金鑰政策中的陳述式決定誰有使用 KMS 金鑰的許可以及可以使用它的方式。您也可以使用 IAM 政策和授予來控制對 KMS 金鑰的存取，但每個 KMS 金鑰都必須有金鑰政策。

您必須將下列陳述式新增至現有的 KMS 金鑰政策。它為 Amazon Bedrock 提供使用您指定的 KMS 金鑰，將資料臨時存放在 S3 儲存貯體的許可。

### 為呼叫 CreateEvaluationJob API 的角色設定 KMS 許可
<a name="model-evaluation-kms-create-job-2"></a>

請確定您具有角色的 DescribeKey、GenerateDataKey 和 Decrypt 許可，用於在評估任務中使用的 KMS 金鑰上建立評估任務。

範例 KMS 金鑰政策

```
{
    "Statement": [
       {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::account-id:role/APICallingRole"
            },
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey",
                "kmsDescribeKey"
            ],
            "Resource": "*"
       }
   ]
}
```

呼叫 CreateEvaluationJob API 的角色 IAM 政策範例

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

****  

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

------