

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

# 資料加密
<a name="data-encryption"></a>

Amazon Bedrock 使用加密來保護靜態資料和傳輸中的資料。

**傳輸中加密**

在其中 AWS，傳輸中的所有網路間資料都支援 TLS 1.2 加密。

對 Amazon Bedrock API 和主控台發出的請求，都在安全 (SSL) 連線中進行。您可以將 AWS Identity and Access Management (IAM) 角色傳遞給 Amazon Bedrock，以提供代表您存取資源以進行訓練和部署的許可。

**靜態加密**

Amazon Bedrock 提供靜態 [自訂模型的加密](encryption-custom-job.md)。

## 金鑰管理
<a name="key-management"></a>

使用 AWS Key Management Service 來管理您用來加密 資源的金鑰。如需詳細資訊，請參閱 [AWS Key Management Service 概念](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys)。您可以利用 KMS 金鑰進行加密。
+ 經由 Amazon Bedrock
  + 模型自訂任務及其輸出自訂模型 — 在主控台或透過在 [CreateModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html) API 呼叫中指定 `customModelKmsKeyId` 欄位建立任務期間。
  + 代理程式 — 在主控台或透過在 [CreateAgent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateAgent.html) API 呼叫中指定 `customerEncryptionKeyArn` 欄位建立代理程式期間。
  + 知識庫的資料來源擷取任務 — 在主控台或透過在 [CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html) 或 [Update DataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_UpdateDataSource.html) API 呼叫中指定 `kmsKeyArn` 欄位建立知識庫期間。
  + 向量存放區在 Amazon OpenSearch Service - 在向量存放區建立期間。如需詳細資訊，請參閱[建立、列示和刪除 Amazon OpenSearch Service 集合](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-manage.html)和 [Amazon OpenSearch Service 的靜態資料加密](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/encryption-at-rest.html)。
  + 模型評估任務：當您在主控台中建立模型評估任務，或在 [CreateEvaluationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateEvaluationJob.html) API 呼叫的 ` customerEncryptionKeyId` 中指定金鑰 ARN 時。
+ 透過 Amazon S3 – 如需詳細資訊，請參閱[使用伺服器端加密搭配 AWS KMS 金鑰 (SSE-KMS)。](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)
  + 模型自訂的訓練、驗證和輸出資料
  + 知識庫的資料來源
+ 透過 AWS Secrets Manager – 如需詳細資訊，請參閱 [中的秘密加密和解密 AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html)
  + 第三方模型的向量存放區

加密資源後，您可以在主控台選取資源並檢視其**詳細資訊**，或使用下列 `Get` API 呼叫，找到 KMS 金鑰的 ARN。
+ [GetModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GetModelCustomizationJob.html)
+ [GetAgent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_GetAgent.html)
+ [GetIngestionJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_GetIngestionJob.html)

# 自訂模型的加密
<a name="encryption-custom-job"></a>

Amazon Bedrock 會使用您的訓練資料搭配 [CreateModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html) 動作，或透過[主控台](model-customization-submit.md)來建立自訂模型，該模型是 Amazon Bedrock 基礎模型的微調版本。您的自訂模型由 管理和存放AWS。

Amazon Bedrock 使用您提供的微調資料，僅用於微調 Amazon Bedrock 基礎模型。Amazon Bedrock 不會將微調資料用於其他任何用途。訓練資料不會用於訓練基礎 Titan 模型，也不會用於分發給第三方。其他使用情況資料 (例如使用時間戳記、登入帳號 ID 和服務記錄的其他資訊) 也不會用於訓練模型。

微調工作完成後，Amazon Bedrock 不會儲存您提供用於微調的訓練或驗證資料。

請注意，經微調的模型可以重播一些微調資料，同時產生完成。如果應用程式不應以任何形式公開微調資料，則應先將機密資料從訓練資料篩掉。如果您已錯誤地使用機密資料建立自訂模型，則可以刪除該自訂模型、篩掉訓練資料中的機密資訊，然後新建模型。

對於加密自訂模型 (包括複製的模型)，Amazon Bedrock 為您提供兩個選項：

1. **AWS 擁有的金鑰** – 根據預設，Amazon Bedrock 會使用 加密自訂模型AWS 擁有的金鑰。您無法檢視、管理或使用AWS 擁有的金鑰或稽核其使用方式。不過，您不需要採取任何動作或變更任何程式，即可保護加密您資料的金鑰。如需詳細資訊，請參閱《AWS Key Management Service 開發人員指南》**中的 [AWS 擁有的金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk)。

1. **客戶自管金鑰**：您可以選擇使用您自己管理的客戶自管金鑰來加密自訂模型。如需詳細資訊AWS KMS keys，請參閱《 *AWS Key Management Service開發人員指南*》中的[客戶受管金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)。

**注意**  
Amazon Bedrock 會AWS 擁有的金鑰免費使用 自動啟用靜態加密。如果您使用客戶受管金鑰，則需支付 AWS KMS費用。如需定價的詳細資訊，請參閱 [AWS Key Management Service 定價](https://aws.amazon.com/kms/pricing/)。

如需 的詳細資訊AWS KMS，請參閱 [AWS Key Management Service開發人員指南](https://docs.aws.amazon.com/kms/latest/developerguide/)。

**Topics**
+ [Amazon Bedrock 如何在 中使用授予AWS KMS](#encryption-br-grants)
+ [了解如何建立客戶自管金鑰，以及如何將金鑰政策連接至其中](#encryption-key-policy)
+ [自訂和複製模型的許可和金鑰政策](#encryption-cm-statements)
+ [監控 Amazon Bedrock 服務的加密金鑰](#encryption-monitor-key)
+ [訓練、驗證和輸出資料的加密](#encryption-custom-job-data)

## Amazon Bedrock 如何在 中使用授予AWS KMS
<a name="encryption-br-grants"></a>

如果您指定客戶自管金鑰來加密模型自訂或模型複本任務的自訂模型，Amazon Bedrock 會透過將 [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html) 請求傳送至 AWS KMS，以代表您建立與自訂模型相關聯的**主要** KMS [授予](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)。此授予允許 Amazon Bedrock 存取和使用客戶自管金鑰。中的授予AWS KMS用於授予 Amazon Bedrock 存取客戶帳戶中 KMS 金鑰的權限。

Amazon Bedrock 需要主要授予，才能在下列內部操作中使用客戶自管金鑰：
+ 傳送 [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) 請求至 AWS KMS，以驗證您在建立任務時輸入的對稱客戶受管 KMS 金鑰 ID 是否有效。
+ 將 [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) 和 [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) 請求傳送至 AWS KMS，以產生由客戶受管金鑰加密的資料金鑰，並解密加密的資料金鑰，以便用來加密模型成品。
+ 傳送 [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html) 請求至 AWS KMS，以使用上述操作的子集 (`DescribeKey`、`GenerateDataKey`、`Decrypt`) 建立縮小範圍的次要授予，以非同步執行模型自訂、模型複製或佈建輸送量建立。
+ Amazon Bedrock 會在建立授予期間指定淘汰主體，因此服務可以傳送 [RetireGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html) 請求。

您可以完整存取客戶受管AWS KMS金鑰。您可以依照《AWS Key Management Service 開發人員指南》[https://docs.aws.amazon.com/kms/latest/developerguide/](https://docs.aws.amazon.com/kms/latest/developerguide/)中[淘汰和撤銷授予](https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#grant-delete)的步驟來撤銷授予的存取權，或隨時修改[金鑰政策](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)來移除服務對客戶自管金鑰的存取權。如果您這樣做，Amazon Bedrock 將無法存取由金鑰加密的自訂模型。

### 自訂模型之主要和次要授予的生命週期
<a name="encryption-primary-secondary-grants"></a>
+ **主要授予**的生命週期很長，只要相關聯的自訂模型仍在使用中，就會保持作用中狀態。刪除自訂模型時，對應的主要授予會自動遭到淘汰。
+ **次要授予**是短期的。一旦 Amazon Bedrock 代表客戶執行的操作完成，這些授予就會自動遭到淘汰。例如，模型複本任務完成後，允許 Amazon Bedrock 加密複製自訂模型的次要授予將立即遭到淘汰。

## 了解如何建立客戶自管金鑰，以及如何將金鑰政策連接至其中
<a name="encryption-key-policy"></a>

若要使用您建立和管理的金鑰來加密 AWS資源，請執行下列一般步驟：

1. (先決條件) 確保 IAM 角色具有 [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) 動作的許可。

1. 請依照[建立金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)中的步驟，使用AWS KMS主控台或 [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) 操作來建立客戶受管金鑰。

1. 建立金鑰會傳回 `Arn` 金鑰，可用於需要使用金鑰的操作 (例如，[提交模型自訂任務](model-customization-submit.md)或[執行模型推論](inference-invoke.md)時)。

1. 建立金鑰政策並將其連接至具有必要許可的金鑰。若要建立金鑰政策，請遵循《 AWS Key Management Service開發人員指南》中的[建立金鑰政策](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-overview.html)的步驟。

## 自訂和複製模型的許可和金鑰政策
<a name="encryption-cm-statements"></a>

建立 KMS 金鑰後，您就可以將金鑰政策連接至該金鑰。金鑰政策是您連接至客戶自管金鑰以控制其存取的[資源型政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html)。每個客戶自管金鑰都必須只有一個金鑰政策，其中包含決定誰可以使用金鑰及其使用方式的陳述式。在建立客戶自管金鑰時，可以指定金鑰政策。您可以隨時修改金鑰政策，但變更在整個 AWS KMS 中變成可用之前，可能會有短暫的延遲。如需詳細資訊，請參閱《AWS Key Management Service 開發人員指南》[https://docs.aws.amazon.com/kms/latest/developerguide/](https://docs.aws.amazon.com/kms/latest/developerguide/)中的[管理客戶受管金鑰的存取](https://docs.aws.amazon.com/kms/latest/developerguide/control-access-overview.html#managing-access)。

下列 KMS [動作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html#awskeymanagementservice-actions-as-permissions)會用於加密自訂和複製模型的金鑰：

1. [kms:CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)：允許 Amazon Bedrock 服務主體透過[授予操作](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations)存取指定的 KMS 金鑰，藉此為客戶自管金鑰建立授予。如需授予的詳細資訊，請參閱《[AWS Key Management Service 開發人員指南](https://docs.aws.amazon.com/kms/latest/developerguide/)》中的 [AWS KMS 中的授予](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)。
**注意**  
Amazon Bedrock 也會設定淘汰主體，並在不再需要後自動淘汰授予。

1. [kms:DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)：提供客戶自管金鑰的詳細資訊，以便 Amazon Bedrock 可以驗證金鑰。

1. [kms:GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)：提供客戶自管金鑰詳細資訊，以允許 Amazon Bedrock 驗證使用者存取。Amazon Bedrock 會將產生的密文與自訂模型一起存放，用作為對自訂模型使用者的額外驗證檢查。

1. [kms:Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)：解密儲存的密文，以驗證角色對加密自訂模型的 KMS 金鑰是否具有適當的存取權。

作為最佳安全實務，我們建議您包含 [kms:ViaService](https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-via-service) 條件索引鍵，以限制對 Amazon Bedrock 服務金鑰的存取。

雖然您只能將單一金鑰政策連接至金鑰，但您可以將陳述式新增至政策 `Statement` 欄位中的清單，以將多個陳述式連接至金鑰政策。

下列陳述式與加密自訂和複製的模型相關：

### 加密模型
<a name="encryption-key-policy-encrypt"></a>

若要使用客戶自管金鑰來加密自訂或複製的模型，請在金鑰政策中包含下列陳述式，以允許加密模型。在 `Principal` 欄位中，將您要允許加密和解密金鑰的帳戶新增至 `AWS` 子欄位對應的清單。如果您使用 `kms:ViaService` 條件索引鍵，您可以為每個區域新增一行，或使用 *\$1* 取代 *\$1\$1region\$1*，以允許支援 Amazon Bedrock 的所有區域。

```
{
    "Sid": "PermissionsEncryptDecryptModel",
    "Effect": "Allow",
    "Principal": {
        "AWS": [
            "arn:aws:iam::${account-id}:role/${role}"
        ]
    },
    "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey",
        "kms:DescribeKey",
        "kms:CreateGrant"
    ],
    "Resource": "*",
    "Condition": {
        "StringLike": {
            "kms:ViaService": [
                "bedrock.${region}.amazonaws.com"
            ] 
        }
    }
}
```

### 允許存取加密的模型
<a name="encryption-key-policy-decrypt"></a>

若要允許存取使用 KMS 金鑰加密的模型，請在金鑰政策中包含下列陳述式，以允許金鑰解密。在 `Principal` 欄位中，將您要允許解密金鑰的帳戶新增至 `AWS` 子欄位對應的清單。如果您使用 `kms:ViaService` 條件索引鍵，您可以為每個區域新增一行，或使用 *\$1* 取代 *\$1\$1region\$1*，以允許支援 Amazon Bedrock 的所有區域。

```
{
    "Sid": "PermissionsDecryptModel",
    "Effect": "Allow",
    "Principal": {
        "AWS": [
            "arn:aws:iam::${account-id}:role/${role}"
        ]
    },
    "Action": [
        "kms:Decrypt"
    ],
    "Resource": "*",
    "Condition": {
        "StringLike": {
            "kms:ViaService": [
                "bedrock.${region}.amazonaws.com"
            ] 
        }
    }
}
```

若要了解您需要建立的金鑰政策，請展開與使用案例對應的區段：

### 設定用於加密自訂模型的金鑰許可
<a name="encryption-cm"></a>

如果您計劃加密使用 KMS 金鑰自訂的模型，則該金鑰的金鑰政策將依使用案例而有所不同。展開與使用案例對應的區段：

#### 將自訂模型的角色和將調用模型的角色會是相同的
<a name="encryption-cm-custom-invoke-same"></a>

如果將調用自訂模型的角色與將自訂模型的角色是相同的，您只需要來自 [加密模型](#encryption-key-policy-encrypt) 的陳述式。在下列政策範本的 `Principal` 欄位中，將您要允許自訂並調用自訂模型的帳戶新增到 `AWS` 子欄位對應的清單。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "PermissionsCustomModelKey",
    "Statement": [
        {
            "Sid": "PermissionsEncryptCustomModel",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:role/Role"
                ]
            },
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey",
                "kms:DescribeKey",
                "kms:CreateGrant"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "bedrock.us-east-1.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

#### 將自訂模型的角色和將調用模型的角色是不同的
<a name="encryption-custom-invoke-different"></a>

如果將調用自訂模型的角色與將自訂模型的角色是不同的，您需要來自 [加密模型](#encryption-key-policy-encrypt) 和 [允許存取加密的模型](#encryption-key-policy-decrypt) 的陳述式。修改下列政策範本中的陳述式，如下所示：

1. 第一個陳述式允許加密和解密金鑰。在 `Principal` 欄位中，將您要允許自訂模型的帳戶新增到 `AWS` 子欄位對應的清單。

1. 第二個陳述式僅允許解密金鑰。在 `Principal` 欄位中，將只允許調用自訂模型的帳戶新增至 `AWS` 子欄位對應的清單。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "PermissionsCustomModelKey",
    "Statement": [
        {
            "Sid": "PermissionsEncryptCustomModel",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:role/Role"
                ]
            },
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey",
                "kms:DescribeKey",
                "kms:CreateGrant"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "bedrock.us-east-1.amazonaws.com"
                    ]
                }
            }
        },
        {
            "Sid": "PermissionsDecryptModel",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:role/Role"
                ]
            },
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "bedrock.us-east-1.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

### 設定複製自訂模型的金鑰許可
<a name="encryption-copy"></a>

當您複製已擁有或已與您共用的模型時，您可能需要管理最多兩個金鑰政策：

#### 將加密複製模型之金鑰的金鑰政策
<a name="encryption-copied-model-key-policy"></a>

如果您計劃使用 KMS 金鑰來加密複製的模型，金鑰的金鑰政策將依使用案例而有所不同。展開與使用案例對應的區段：

##### 將複製模型的角色和將調用模型的角色會是相同的
<a name="encryption-copied-model-copy-invoke-same"></a>

如果將調用複製模型的角色與將建立模型複本的角色是相同的，則只需要來自 [加密模型](#encryption-key-policy-encrypt) 的陳述式。在下列政策範本的 `Principal` 欄位中新增帳戶，您要允許這些帳戶將複製的模型複製並調用到 `AWS` 子欄位對應的清單：

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "PermissionsCopiedModelKey",
    "Statement": [
        {
            "Sid": "PermissionsEncryptCopiedModel",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:role/Role"
                ]
            },
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey",
                "kms:DescribeKey",
                "kms:CreateGrant"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "bedrock.us-east-1.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

##### 將複製模型的角色和將調用模型的角色是不同的
<a name="encryption-copied-model-copy-invoke-different"></a>

如果將調用複製模型的角色與將建立模型複本的角色不同，您需要來自 [加密模型](#encryption-key-policy-encrypt) 和 [允許存取加密的模型](#encryption-key-policy-decrypt) 的陳述式。修改下列政策範本中的陳述式，如下所示：

1. 第一個陳述式允許加密和解密金鑰。在 `Principal` 欄位中，將您要允許建立複製模型的帳戶新增至 `AWS` 子欄位對應的清單。

1. 第二個陳述式僅允許解密金鑰。在 `Principal` 欄位中，將只允許調用複製模型的帳戶新增至 `AWS` 子欄位對應的清單。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "PermissionsCopiedModelKey",
    "Statement": [
        {
            "Sid": "PermissionsEncryptCopiedModel",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:role/Role"
                ]
            },
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey",
                "kms:DescribeKey",
                "kms:CreateGrant"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "bedrock.us-east-1.amazonaws.com"
                    ]
                }
            }
        },
        {
            "Sid": "PermissionsDecryptCopiedModel",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:role/Role"
                ]
            },
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "bedrock.us-east-1.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

#### 金鑰的金鑰政策，此金鑰用於加密要複製的來源模型
<a name="encryption-copy-source-model-key-policy"></a>

如果您要複製的來源模型是使用 KMS 金鑰加密，請將來自 [允許存取加密的模型](#encryption-key-policy-decrypt) 的陳述式連接到加密來源模型之金鑰的金鑰政策。此陳述式允許模型複本角色解密對來源模型進行加密的金鑰。在下列政策範本的 `Principal` 欄位中新增帳戶，您要允許這些帳戶將來源模型複製到 `AWS` 子欄位對應的清單：

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "PermissionsSourceModelKey",
    "Statement": [
        {
            "Sid": "PermissionsDecryptModel",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:role/Role"
                ]
            },
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "bedrock.us-east-1.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

## 監控 Amazon Bedrock 服務的加密金鑰
<a name="encryption-monitor-key"></a>

當您搭配 Amazon Bedrock 資源使用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。

以下是 [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html) 監控 Amazon Bedrock 呼叫的 KMS 操作以建立主要授權的範例AWS CloudTrail事件：

```
{
    "eventVersion": "1.09",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AROAIGDTESTANDEXAMPLE:SampleUser01",
        "arn": "arn:aws:sts::111122223333:assumed-role/RoleForModelCopy/SampleUser01",
        "accountId": "111122223333",
        "accessKeyId": "EXAMPLE",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AROAIGDTESTANDEXAMPLE",
                "arn": "arn:aws:iam::111122223333:role/RoleForModelCopy",
                "accountId": "111122223333",
                "userName": "RoleForModelCopy"
            },
            "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",
            "CreateGrant",
            "GenerateDataKey",
            "DescribeKey"
        ]
    },
    "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-custom-job-data"></a>

當您使用 Amazon Bedrock 執行模型自訂任務時，您會將輸入檔案存放在 Amazon S3 儲存貯體中。當任務完成時，Amazon Bedrock 會將輸出指標檔案存放在您在建立任務時指定的 S3 儲存貯體中，以及由 控制的 S3 儲存貯體中產生的自訂模型成品AWS。

會使用 S3 儲存貯體的加密組態對輸出檔案進行加密。根據您設定 S3 儲存貯體的方式，會使用 [SSE-S3 伺服器端加密](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingServerSideEncryption.html)或 [AWS KMSSSE-KMS 加密](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)加密這些項目。

# 加密匯入的自訂模型
<a name="encryption-import-model"></a>

Amazon Bedrock 支援透過兩種使用相同加密方法的方法建立自訂模型。您的自訂模型由 管理和存放AWS：
+ **自訂模型匯入任務** — 用於匯入自訂開放原始碼基礎模型 (例如 Mistral AI 或 Llama 模型)。
+ **建立自訂模型**：用於匯入您在 SageMaker AI 中自訂的 Amazon Nova 模型。

如需加密自訂模型，Amazon Bedrock 提供下列選項：
+ **AWS擁有的金鑰** – 根據預設，Amazon Bedrock 會使用AWS擁有的金鑰來加密匯入的自訂模型。您無法檢視、管理或使用AWS擁有的金鑰，或稽核其使用方式。不過，您不必採取任何動作或變更任何程式，即可保護加密您資料的金鑰。如需詳細資訊，請參閱《AWS Key Management Service 開發人員指南》**中的 [AWS 擁有的金鑰](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#aws-owned-cmk)。
+ **客戶受管金鑰 (CMK)** – 您可以選擇客戶受管金鑰 (CMK)，在現有AWS擁有的加密金鑰上新增第二層加密。您可以建立、擁有及管理客戶自管金鑰。

   由於您可以完全控制此層加密，因此能執行以下任務：
  + 建立和維護金鑰政策
  + 建立和維護 IAM 政策和授予
  + 啟用和停用金鑰政策
  + 輪換金鑰密碼編譯資料
  + 新增標籤
  + 建立金鑰別名
  + 排程金鑰刪除

  如需詳細資訊，請參閱《AWS Key Management Service 開發人員指南》**中的[客戶自管金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)。

**注意**  
對於您匯入的所有自訂模型，Amazon Bedrock 會使用AWS擁有的金鑰自動啟用靜態加密，以免費保護客戶資料。如果您使用客戶受管金鑰，則需支付 AWS KMS費用。如需定價的詳細資訊，請參閱 [AWS Key Management Service 定價](https://docs.aws.amazon.com/)。

## Amazon Bedrock 如何在 中使用授予AWS KMS
<a name="import-model-kms-grants"></a>

如果您指定客戶自管金鑰來加密匯入的模型。Amazon Bedrock 會傳送 [CreateGrant](https://docs.aws.amazon.com//kms/latest/APIReference/API_CreateGrant.html) 請求至 ，以代表您建立與匯入模型相關聯的**主要**AWS KMS[授權](https://docs.aws.amazon.com/)AWS KMS。此授予允許 Amazon Bedrock 存取和使用客戶自管金鑰。中的授予AWS KMS用於授予 Amazon Bedrock 存取客戶帳戶中 KMS 金鑰的權限。

Amazon Bedrock 需要主要授予，才能在下列內部操作中使用客戶自管金鑰：
+ 傳送 [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) 請求至 AWS KMS，以驗證您在建立任務時輸入的對稱客戶受管 KMS 金鑰 ID 是否有效。
+ 將 [GenerateDataKey](https://docs.aws.amazon.com//kms/latest/APIReference/API_GenerateDataKey.html) 和 [Decrypt](https://docs.aws.amazon.com//kms/latest/APIReference/API_Decrypt.html) 請求傳送至 AWS KMS，以產生由客戶自管金鑰加密的資料金鑰，並解密加密的資料金鑰，以便將這些金鑰用來加密模型成品。
+ 傳送 [CreateGrant](https://docs.aws.amazon.com//kms/latest/APIReference/API_CreateGrant.html) 請求至 AWS KMS，以使用上述操作子集 (`DescribeKey`、`GenerateDataKey`、`Decrypt`) 建立縮小範圍的次要授權，以非同步執行模型匯入和隨需推論。
+ Amazon Bedrock 會在建立授予期間指定淘汰主體，因此服務可以傳送 [RetireGrant](https://docs.aws.amazon.com//kms/latest/APIReference/API_RetireGrant.html) 請求。

您可以完整存取客戶受管AWS KMS金鑰。您可以依照《AWS Key Management Service 開發人員指南》**中[淘汰和撤銷授予](https://docs.aws.amazon.com//kms/latest/developerguide/grant-manage.html#grant-delete)中的步驟來撤銷授予的存取權，或隨時修改金鑰政策來移除服務對客戶自管金鑰的存取權。如果您這樣做，Amazon Bedrock 將無法存取以金鑰加密的匯入模型。

### 自訂匯入模型之主要和次要授予的生命週期
<a name="import-model-kms-grants-lifecycle"></a>
+ **主要授予**的生命週期很長，只要相關聯的自訂模型仍在使用中，就會保持作用中狀態。刪除自訂匯入模型時，對應的主要授予會自動遭到淘汰。
+ **次要授予**是短期的。一旦 Amazon Bedrock 代表客戶執行的操作完成，這些授予就會自動遭到淘汰。例如，自訂模型匯入任務完成後，會立即淘汰允許 Amazon Bedrock 加密自訂匯入模型的次要授予。

# 使用客戶自管金鑰 (CMK)
<a name="import-model-using-cmk"></a>

如果您打算使用客戶自管金鑰來加密自訂匯入的模型，請完成下列步驟：

1. 使用 AWS Key Management Service 建立客戶自管金鑰。

1. 連接具有指定角色許可的[資源型政策](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_identity-vs-resource.html)，以建立及使用自訂匯入模型。

**建立客戶自管金鑰**

請先確定您具備 `CreateKey` 許可。然後遵循[建立金鑰](https://docs.aws.amazon.com//kms/latest/developerguide/create-keys.html)的步驟，在AWS KMS主控台或 [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) API 操作中建立客戶受管金鑰。請確保建立對稱加密金鑰。

建立金鑰會傳回金鑰的 `Arn`，您可以在匯入具有自訂模型匯入的自訂模型時，用來作為 `importedModelKmsKeyId `。

**建立金鑰政策並將其連接至客戶自管金鑰**

金鑰政策是您連接至客戶自管金鑰以控制其存取的[資源型政策](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_identity-vs-resource.html)。每個客戶自管金鑰都必須只有一個金鑰政策，其中包含決定誰可以使用金鑰及其使用方式的陳述式。在建立客戶自管金鑰時，可以指定金鑰政策。您可以隨時修改金鑰政策，但變更在整個 AWS KMS 中變成可用之前，可能會有短暫的延遲。如需詳細資訊，請參閱《*AWS Key Management Service 開發人員指南*》中的[管理客戶自管金鑰的存取](https://docs.aws.amazon.com//kms/latest/developerguide/control-access-overview.html#managing-access)。

**加密匯入的自訂模型**

若要使用客戶受管金鑰來加密匯入的自訂模型，您必須在金鑰政策中包含下列AWS KMS操作：
+ [kms:CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)：允許 Amazon Bedrock 服務主體透過[授予操作](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations)存取指定的 KMS 金鑰，藉此為客戶自管金鑰建立授予。如需授予的詳細資訊，請參閱《AWS Key Management Service 開發人員指南》**中的 [AWS KMS 中的授予](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)。
**注意**  
Amazon Bedrock 也會設定淘汰主體，並在不再需要後自動淘汰授予。
+ [kms:DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)：提供客戶自管金鑰的詳細資訊，以便 Amazon Bedrock 可以驗證金鑰。
+ [kms:GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)：提供客戶自管金鑰詳細資訊，以允許 Amazon Bedrock 驗證使用者存取。Amazon Bedrock 會將產生的密文與匯入的自訂模型一起存放，用作為對匯入的自訂模型使用者的額外驗證檢查。
+ [kms:Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)：解密儲存的密文，以驗證角色對加密匯入的自訂模型 KMS 金鑰是否具有適當的存取權。

以下是您可以連接到角色金鑰的範例政策，用於加密您匯入的模型：

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "KMS key policy for a key to encrypt an imported custom model",
    "Statement": [
        {
            "Sid": "Permissions for model import API invocation role",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:user/role"
            },
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey",
                "kms:DescribeKey",
                "kms:CreateGrant"
            ],
            "Resource": "*"
        }
    ]
}
```

------

**將加密的匯入自訂模型解密**

如果您要匯入已由其他客戶自管金鑰加密的自訂模型，則必須新增相同角色的 `kms:Decrypt` 許可，如下列政策中所示：

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "KMS key policy for a key that encrypted a custom imported model",
    "Statement": [
        {
            "Sid": "Permissions for model import API invocation role",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:user/role"
            },
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": "*"
        }
    ]
}
```

------

# 監控 Amazon Bedrock 服務的加密金鑰
<a name="import-model-monitor-encryption-keys"></a>

當您搭配 Amazon Bedrock 資源使用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。

以下是 [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html) 監控 Amazon Bedrock 呼叫AWS KMS的操作以建立主要授權的範例AWS CloudTrail事件：

```
{
"eventVersion": "1.09",
    "userIdentity": {
"type": "AssumedRole",
        "principalId": "AROAIGDTESTANDEXAMPLE:SampleUser01",
        "arn": "arn:aws:sts::111122223333:assumed-role/RoleForModelImport/SampleUser01",
        "accountId": "111122223333",
        "accessKeyId": "EXAMPLE",
        "sessionContext": {
"sessionIssuer": {
"type": "Role",
                "principalId": "AROAIGDTESTANDEXAMPLE",
                "arn": "arn:aws:iam::111122223333:role/RoleForModelImport",
                "accountId": "111122223333",
                "userName": "RoleForModelImport"
            },
            "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",
            "CreateGrant",
            "GenerateDataKey",
            "DescribeKey"
        ]
    },
    "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"
}
```

遵循[建立政策](https://docs.aws.amazon.com//kms/latest/developerguide/key-policy-overview.html)中的步驟，將下列資源型政策連接至 KMS 金鑰。政策包含兩個陳述式。

1. 角色加密模型自訂成品的許可。將匯入自訂模型建置器角色 ARN 新增至 `Principal` 欄位。

1. 角色在推論中使用匯入自訂模型的許可。將匯入自訂模型使用者角色的 ARN 新增至 `Principal` 欄位。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "KMS Key Policy",
    "Statement": [
        {
            "Sid": "Permissions for imported model builders",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:user/role"
            },
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey",
                "kms:DescribeKey",
                "kms:CreateGrant"
            ],
            "Resource": "*"
        },
        {
            "Sid": "Permissions for imported model users",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:user/role"
            },
            "Action": "kms:Decrypt",
            "Resource": "*"
        }
    ]
}
```

------

# Amazon Bedrock資料自動化中的加密
<a name="encryption-bda"></a>

 Amazon BedrockData Automation (BDA) 使用加密來保護靜態資料。這包括此服務存放的藍圖、專案和擷取的洞見。BDA 提供兩種加密資料的選項：

1. AWS擁有的金鑰 – 根據預設，BDA 會使用AWS擁有的金鑰加密您的資料。您無法檢視、管理或使用AWS擁有的金鑰，或稽核其使用方式。不過，您不需要採取任何動作或變更任何程式，即可保護加密您資料的金鑰。如需詳細資訊，請參閱 Key Management Service 開發人員指南中的[AWS擁有的金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk)。AWS

1.  客戶自管金鑰：您可以選擇使用您自己管理的客戶自管金鑰來加密資料。如需AWS KMS金鑰的詳細資訊，請參閱 AWSKey Management Service 開發人員指南中的[客戶受管金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)。BDA 不支援在 Amazon Bedrock 主控台中使用的客戶自管金鑰，僅適用於 API 操作。

Amazon Bedrock資料自動化會使用AWS擁有的金鑰自動啟用靜態加密，無需付費。如果您使用客戶受管金鑰，則需支付 AWS KMS費用。如需定價的詳細資訊，請參閱 AWS KMS[定價](https://aws.amazon.com/kms/pricing/)。

## 如何在 中使用Amazon Bedrock授予AWS KMS
<a name="encryption-bda-grants"></a>

 如果您在呼叫 invokeDataAutomationAsync 時指定用於 BDA 加密的客戶受管金鑰，服務會透過傳送 CreateGrant 請求至 來建立與您的資源相關聯的授權AWS KMS。此授予可讓 BDA 存取和使用客戶自管金鑰。

 BDA 將此授予用於客戶自管金鑰，來進行下列內部操作：
+ DescribeKey — 將請求傳送至 AWS KMS，以驗證您提供的對稱客戶受管AWS KMS金鑰 ID 是否有效。
+ GenerateDataKey 和 Decrypt — 將請求傳送至 AWS KMS，以產生由客戶受管金鑰加密的資料金鑰，並解密加密的資料金鑰，以便用來加密您的 資源。
+ CreateGrant — 將請求傳送至 AWS KMS，以使用上述操作的子集 (DescribeKey、GenerateDataKey、Decrypt) 建立範圍縮小授權，以非同步執行操作。

 您可以完整存取客戶受管AWS KMS金鑰。您可以依照《AWS KMS 開發人員指南》中淘汰和撤銷授予的步驟來撤銷授予的存取權，或隨時修改金鑰政策來移除服務對客戶自管金鑰的存取權。如果您這樣做，BDA 將無法存取由金鑰加密的資源。

如果您在撤銷授予之後初始化新的 invokeDataAutomationAsync 呼叫，則 BDA 會重新建立授予。BDA 會在 30 小時後淘汰授予。

## 建立客戶自管金鑰並連接金鑰政策
<a name="encryption-bda-creating-keys"></a>

 若要使用您建立和管理的金鑰加密 BDA 資源，請遵循這些一般步驟：

1.  (先決條件) 確保 IAM 角色具有 CreateKey 動作的許可。

1.  請依照[建立金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)中的步驟，使用AWS KMS主控台或 CreateKey 操作來建立客戶受管金鑰。

1.  建立金鑰會傳回 ARN，可用於需要使用金鑰 (例如，在 BDA 中建立專案或藍圖時) 的操作，例如 invokeDataAutomationAsync 操作。

1.  建立金鑰政策並將其連接至具有必要許可的金鑰。若要建立金鑰政策，請遵循《 AWS KMS開發人員指南》中的[建立金鑰政策](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-create.html)的步驟。

## Amazon BedrockData Automation 資源的許可和金鑰政策
<a name="encryption-bda-key-policies.title"></a>

 建立AWS KMS金鑰之後，您可以將金鑰政策連接至該金鑰。下列 AWS KMS 動作會用於加密 BDA 資源的金鑰：

1.  kms:CreateGrant – 允許 BDA 服務透過 InvokeDataAutomationAsync 所需的授予操作存取指定的AWS KMS金鑰，為客戶受管金鑰建立授予。

1.  kms:DescribeKey：提供客戶自管金鑰的詳細資訊，以便 BDA 可以驗證金鑰。

1.  kms:GenerateDataKey：提供客戶自管金鑰詳細資訊，以允許 BDA 驗證使用者存取。

1.  kms:Decrypt – 解密儲存的加密文字，以驗證角色對加密 BDA 資源的AWS KMS金鑰具有適當的存取權。

**Amazon Bedrock Data Automation 的金鑰政策**

 若要使用客戶自管金鑰加密 BDA 資源，請在金鑰政策中包含下列陳述式，並將 `${account-id}`、`${region}` 和 `${key-id}` 取代為特定值：

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "KMS key policy for a key to encrypt data for BDA resource",
    "Statement": [
        {
            "Sid": "Permissions for encryption of data for BDA resources",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/Role"
            },
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey",
                "kms:DescribeKey",
                "kms:CreateGrant"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "bedrock.us-east-1.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

**IAM 角色許可**

用於與 BDA 互動的 IAM 角色AWS KMS應具有下列許可，請將 `${region}`、 `${account-id}`和 取代`${key-id}`為您的特定值：

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt",
                "kms:DescribeKey",
                "kms:CreateGrant"
            ],
            "Resource": "arn:aws:kms:us-east-1:123456789012:key/KeyId",
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "bedrock.us-east-1.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

## Amazon Bedrock Automation 加密內容
<a name="encryption-bda-context"></a>

BDA 在所有AWS KMS密碼編譯操作中使用相同的加密內容，其中金鑰為 `aws:bedrock:data-automation-customer-account-id`，值為AWS您的帳戶 ID。加密內容的範例如下。

```
"encryptionContext": {
     "bedrock:data-automation-customer-account-id": "account id"
}
```

**使用加密內容進行監控**  
當您使用對稱的客戶自管金鑰加密資料時，您也可以在稽核記錄和日誌中使用加密內容，以指出客戶自管金鑰的使用方式。加密內容也會出現在 AWS CloudTrail或 Amazon CloudWatch Logs 產生的日誌中。

**使用加密內容控制對客戶受管金鑰的存取**  
您也可以在金鑰政策和 IAM 政策中，使用加密內容來控制對對稱客戶受管金鑰的存取。您也可以在授予中使用加密內容條件。BDA 會在授予中使用加密內容限制，以控制對帳戶和區域中客戶自管金鑰的存取。授予條件會要求授予允許的操作使用指定的加密內容。

以下是授予特定加密內容之客戶受管金鑰存取權的金鑰政策陳述式範例。此政策陳述式中的條件會要求具有指定加密內容的加密內容條件。

```
[
    {
        "Sid": "Enable DescribeKey, Decrypt, GenerateDataKey",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
        },
        "Action": ["kms:DescribeKey", "kms:Decrypt", "kms:GenerateDataKey"],
        "Resource": "*"
    },
    {
        "Sid": "Enable CreateGrant",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
        },
        "Action": "kms:CreateGrant",
        "Resource": "*",
        "Condition": {
            "StringLike": {
                "kms:EncryptionContext:aws:bedrock:data-automation-customer-account-id": "111122223333"
            },
            "StringEquals": {
                "kms:GrantOperations": ["Decrypt", "DescribeKey", "GenerateDataKey"]
            }
        }
    }
]
```

## 監控Amazon Bedrock資料自動化的加密金鑰
<a name="encryption-bda-monitoring"></a>

 當您搭配 Amazon BedrockData Automation 資源使用AWS KMS客戶受管金鑰時，您可以使用 [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)或 [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) 來追蹤Amazon Bedrock資料自動化傳送的請求AWS KMS。以下是 [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html) 監控 Amazon BedrockData Automation 呼叫AWS KMS的操作以建立主要授權的範例AWS CloudTrail事件：

```
{
    "eventVersion": "1.09",
        "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AROAIGDTESTANDEXAMPLE:SampleUser01",
        "arn": "arn:aws:sts::111122223333:assumed-role/RoleForDataAutomation/SampleUser01",
        "accountId": "111122223333",
        "accessKeyId": "EXAMPLE",
        "sessionContext": {
        "sessionIssuer": {
        "type": "Role",
        "principalId": "AROAIGDTESTANDEXAMPLE",
        "arn": "arn:aws:iam::111122223333:role/RoleForDataAutomation",
        "accountId": "111122223333",
        "userName": "RoleForDataAutomation"
        },
        "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",
     "constraints": {
            "encryptionContextSubset": {
                "aws:bedrock:data-automation-customer-account-id": "000000000000"
            }
        },
    "operations": [
    "Decrypt",
    "CreateGrant",
    "GenerateDataKey",
    "DescribeKey"
    ]
    },
    "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-agents-new"></a>

依預設加密靜態資料，有助於降低保護敏感資料所涉及的營運開銷和複雜性。同時，其可讓您建置符合嚴格加密合規性和法規要求的安全應用程式。

Amazon Bedrock 使用預設的 AWS 擁有金鑰來自動加密代理程式的資訊。這包括控制平面資料和工作階段資料。您無法檢視、管理 AWS 擁有的金鑰，或稽核其使用方式。如需詳細資訊，請參閱 [AWS 擁有的金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk)。

雖然無法停用此層加密，但您可以選擇使用客戶自管金鑰 (而不是 AWS 擁有的金鑰) 來加密代理程式的資訊。Amazon Bedrock 支援使用對稱客戶自管金鑰 (CMK)，您可以建立、擁有和管理這些金鑰 (而不是預設 AWS 擁有的加密)。如需詳細資訊，請參閱[客戶自管金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)。

**重要**  
Amazon Bedrock 會使用 AWS 擁有的金鑰自動加密代理程式的工作階段資訊，無需額外付費。
若是使用客戶自管金鑰，則會收取 AWS KMS 費用。如需定價的資訊，請參閱 [AWS 金鑰管理服務定價](https://aws.amazon.com/kms/pricing/)。
如果您在 2025 年 1 月 22 日*之前*建立代理程式，並想要使用客戶自管金鑰來加密代理程式資源，請遵循 [針對 2025 年 1 月 22 日之前建立的代理程式，加密代理程式資源](encryption-agents.md) 的指示。

# 使用客戶自管金鑰 (CMK) 加密代理程式資源
<a name="cmk-agent-resources"></a>

您可以隨時使用建置代理程式時提供的下列代理程式資訊，建立客戶自管金鑰來加密代理程式的資訊。

**注意**  
系統只會針對 2025 年 1 月 22 日之後建立的代理程式加密下列代理程式資源。


****  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/bedrock/latest/userguide/cmk-agent-resources.html)

若要使用客戶自管金鑰，請完成下列步驟：

1. 使用 AWS Key Management Service建立客戶自管金鑰。

1. 建立金鑰政策並連接至客戶自管金鑰

## 建立客戶自管金鑰
<a name="create-cmk-agent"></a>

您可以使用 AWS 管理主控台或 AWS Key Management Service APIs 來建立對稱客戶受管金鑰。

 首先確定您擁有 `CreateKey` 許可，然後遵循《AWS Key Management Service 開發人員指南》**中的[建立對稱客戶自管金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk)步驟。

**金鑰政策**：金鑰政策會控制客戶自管金鑰的存取權限。每個客戶受管金鑰都必須只有一個金鑰政策，其中包含決定誰可以使用金鑰及其使用方式的陳述式。在建立客戶受管金鑰時，可以指定金鑰政策。如需詳細資訊，請參閱《AWS Key Management Service 開發人員指南》**中的[管理客戶自管金鑰的存取權限](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)。

如果您在 2025 年 1 月 22 日之後建立代理程式，並想要使用客戶自管金鑰來加密代理程式的資訊，請確定呼叫代理程式 API 操作的使用者或角色在金鑰政策中具有下列許可：
+ [kms:GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)：傳回可在 AWS KMS 外部使用的唯一對稱資料金鑰。
+ [kms:Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)：解密 KMS 金鑰加密的密文。

建立金鑰會傳回 `Arn` 作為金鑰，您可以在建立代理程式時使用該金鑰作為 `customerEncryptionKeyArn`。

## 建立金鑰政策並將其連接至客戶自管金鑰
<a name="attach-policy-agent"></a>

如果使用客戶自管金鑰加密代理程式資源，您必須設定身分型政策和資源型政策，以允許 Amazon Bedrock 代表您加密和解密代理程式資源。

**身分型政策**

將下列身分型政策連接至具有許可的 IAM 角色或使用者，以呼叫代表您加密和解密代理程式資源的代理程式 API。此政策會驗證發出 API 呼叫的使用者具有 AWS KMS 許可。將 `${region}`、`${account-id}`、`${agent-id}` 和 `${key-id}` 取代為適當的值。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "EncryptAgents",
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": "arn:aws:kms:us-east-1:123456789012:key/${key-id}",
            "Condition": {
                "StringEquals": {
                    "kms:EncryptionContext:aws:bedrock:arn": "arn:aws:bedrock:us-east-1:123456789012:agent/${agent-id}"
                }
            }
        }
    ]
}
```

------

**以資源為基礎的政策**

*只有在*您建立 Amazon S3 中結構描述已加密的動作群組時，才能將下列資源型政策連接至您的 AWS KMS 金鑰。您不需要為任何其他使用案例連接資源型政策。

若要連接下列資源型政策，請視需要變更許可範圍，並以適當的值取代 `${region}`、`${account-id}`、`${agent-id}` 和 `${key-id}`。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Allow account root to modify the KMS key, not used by Amazon Bedrock.",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": "kms:*",
            "Resource": "arn:aws:kms:us-east-1:123456789012:key/${key-id}"
        },
        {
            "Sid": "Allow Amazon Bedrock to encrypt and decrypt Agent resources on behalf of authorized users",
            "Effect": "Allow",
            "Principal": {
                "Service": "bedrock.amazonaws.com"
            },
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": "arn:aws:kms:us-east-1:123456789012:key/${key-id}",
            "Condition": {
                "StringEquals": {
                    "kms:EncryptionContext:aws:bedrock:arn": "arn:aws:bedrock:us-east-1:123456789012:agent/${agent-id}"
                }
            }
        }
    ]
}
```

------

## 變更客戶自管金鑰
<a name="change-cmk"></a>

當與 *DRAFT* 代理程式相關聯的客戶受管金鑰變更時，或當您從客戶受管金鑰移至 AWS 擁有的金鑰時，Amazon Bedrock 代理程式不支援版本控制的代理程式重新加密。只會使用新金鑰重新加密 *DRAFT* 資源的資料。

如果使用版本控制的代理程式來提供生產資料，請確定您不會刪除或移除其任何金鑰的許可。

若要檢視和驗證版本所使用的金鑰，請呼叫 [GetAgentVersion](https://docs.aws.amazon.com//bedrock/latest/APIReference/API_agent_GetAgentVersion.html) 並檢查回應中的 `customerEncryptionKeyArn`。

# 使用客戶受管金鑰 (CMK) 加密代理程式工作階段
<a name="ltm-permissions"></a>

如果您已為代理程式啟用記憶體，且您使用客戶受管金鑰加密代理程式工作階段，則必須設定下列金鑰政策和呼叫身分 IAM 許可，以設定客戶受管金鑰。

**客戶受管金鑰政策**

Amazon Bedrock 使用這些許可來產生加密的資料金鑰，然後使用產生的金鑰來加密代理程式記憶體。Amazon Bedrock 還需要許可，才能以不同的加密內容重新加密產生的資料金鑰。當客戶受管金鑰在另一個客戶受管金鑰或服務擁有的金鑰之間轉換時，也會使用重新加密許可。如需詳細資訊，請參閱[階層式 keyring](https://docs.aws.amazon.com//database-encryption-sdk/latest/devguide/use-hierarchical-keyring.html)。

用適當的值取代 `$region`、`account-id` 和 `${caller-identity-role}`。

```
{
    "Version": "2012-10-17",		 	 	 
    {
        "Sid": "Allow access for bedrock to enable long term memory",
        "Effect": "Allow",
        "Principal": {
            "Service": [
                "bedrock.amazonaws.com",
            ],
        },
        "Action": [
            "kms:GenerateDataKeyWithoutPlainText",
            "kms:ReEncrypt*"
        ],
        "Condition": {
            "StringEquals": {
                "aws:SourceAccount": "$account-id"
            },
            "ArnLike": {
                "aws:SourceArn": "arn:aws:bedrock:$region:$account-id:agent-alias/*"
            }
        }
        "Resource": "*"
    },
    {
        "Sid": "Allow the caller identity control plane permissions for long term memory",
        "Effect": "Allow", 
        "Principal": {
            "AWS": "arn:aws:iam::${account-id}:role/${caller-identity-role}"
        },
        "Action": [
            "kms:GenerateDataKeyWithoutPlainText",
            "kms:ReEncrypt*"
        ],
        "Resource": "*",
        "Condition": {
            "StringLike": {
                "kms:EncryptionContext:aws-crypto-ec:aws:bedrock:arn": "arn:aws:bedrock:${region}:${account-id}:agent-alias/*"
            }
        }
    },
    {
        "Sid": "Allow the caller identity data plane permissions to decrypt long term memory",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::${account-id}:role/${caller-identity-role}"
        },
        "Action": [
            "kms:Decrypt"
        ],
        "Resource": "*",
        "Condition": {
            "StringLike": {
                "kms:EncryptionContext:aws-crypto-ec:aws:bedrock:arn": "arn:aws:bedrock:${region}:${account-id}:agent-alias/*",
                "kms:ViaService": "bedrock.$region.amazonaws.com" 
            }
        }
    }
}
```

**加密和解密代理程式記憶體的 IAM 許可**

呼叫 Agents API 的身分需要下列 IAM 許可，才能為啟用記憶體的代理程式設定 KMS 金鑰。Amazon Bedrock 代理程式使用這些許可，以確保發起人身分獲得授權，具有上述金鑰政策中提及的許可，以便 API 管理、訓練和部署模型。對於調用代理程式的 API，Amazon Bedrock 代理程式會使用發起人身分的 `kms:Decrypt` 許可來解密記憶體。

用適當的值取代 `$region`、`account-id` 和 `${key-id}`。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AgentsControlPlaneLongTermMemory",
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKeyWithoutPlaintext", 
                "kms:ReEncrypt*"
            ],
            "Resource": "arn:aws:kms:us-east-1:123456789012:key/KeyId",
            "Condition": {
                "StringLike": {
                    "kms:EncryptionContext:aws-crypto-ec:aws:bedrock:arn": "arn:aws:bedrock:us-east-1:123456789012:agent-alias/*"
                }
            }
        },
        {
            "Sid": "AgentsDataPlaneLongTermMemory",
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": "arn:aws:kms:us-east-1:123456789012:key/KeyId",
            "Condition": {
                "StringLike": {
                    "kms:EncryptionContext:aws-crypto-ec:aws:bedrock:arn": "arn:aws:bedrock:us-east-1:123456789012:agent-alias/*"
                }
            }
        }
    ]
}
```

------

# 代理程式的預防性安全最佳實務
<a name="security-best-practice-agents"></a>

下列 Amazon Bedrock 服務最佳實務有助於預防安全事件的發生。

**使用安全連線**

一律使用加密連線，例如開頭為 `https://` 的連線，以確保傳輸中敏感資訊的安全。

**實作資源的最低權限存取權**

當您為 Amazon Bedrock 資源建立自訂政策時，請只授予執行任務所需要的許可。建議從最小的一組許可開始，然後依需要授予額外的許可。對降低錯誤或惡意攻擊所引起的安全風險和影響而言，實作最低權限存取是相當重要的一環。如需詳細資訊，請參閱[Amazon Bedrock 的 Identity and Access Management](security-iam.md)。

**請勿在任何包含客戶資料的代理程式資源中包含 PII**

建立、更新和刪除代理程式資源時 (例如，使用 [CreateAgent](https://docs.aws.amazon.com//bedrock/latest/APIReference/API_agent_CreateAgent.html) 時)，請勿在任何不支援使用客戶受管金鑰的欄位中包含個人身分識別資訊 (PII)，例如動作群組名稱和知識庫名稱。如需支援使用客戶受管金鑰的欄位清單，請參閱 [使用客戶自管金鑰 (CMK) 加密代理程式資源](cmk-agent-resources.md)

# 針對 2025 年 1 月 22 日之前建立的代理程式，加密代理程式資源
<a name="encryption-agents"></a>

**重要**  
如果您在 2025 年 1 月 22 日*之後*建立代理程式，請遵循 [代理程式資源加密](encryption-agents-new.md) 的指示

Amazon Bedrock 會將您的代理程式工作階段資訊加密。根據預設，Amazon Bedrock 會使用 AWS受管金鑰加密此資料。或者，您可以使用客戶自管金鑰加密代理程式成品。

如需 的詳細資訊AWS KMS keys，請參閱《 *AWS Key Management Service開發人員指南*》中的[客戶受管金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)。

如果使用自訂 KMS 金鑰使用代理程式加密工作階段，您必須設定下列身分型政策和資源型政策，以允許 Amazon Bedrock 代表您加密和解密代理程式資源。

1. 將下列身分型政策連接到 IAM 角色或具有撥打 `InvokeAgent` 通話許可權的使用者。此政策會驗證撥打 `InvokeAgent` 通話的使用者具有 KMS 許可權。將 *\$1\$1region\$1*、*\$1\$1account-id\$1*、*\$1\$1agent-id\$1* 和 *\$1\$1key-id\$1* 取代為適當的值。

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

****  

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

------

1. 將下列的資源型政策連接至您的 KMS 金鑰。視需要變更許可權範圍。將 *\$1\$1region\$1*、*\$1\$1account-id\$1*、*\$1\$1agent-id\$1* 和 *\$1\$1key-id\$1* 取代為適當的值。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowRootModifyKMSKey",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::123456789012:root"
               },
               "Action": "kms:*",
               "Resource": "arn:aws:kms:us-east-1:123456789012:key/KeyId"
           },
           {
               "Sid": "AllowBedrockEncryptAgent",
               "Effect": "Allow",
               "Principal": {
                   "Service": "bedrock.amazonaws.com"
               },
               "Action": [
                   "kms:GenerateDataKey",
                   "kms:Decrypt"
               ],
               "Resource": "arn:aws:kms:us-east-1:123456789012:key/KeyId",
               "Condition": {
                   "StringEquals": {
                       "kms:EncryptionContext:aws:bedrock:arn": "arn:aws:bedrock:us-east-1:123456789012:agent/AgentId"
                   }
               }
           },
           {
               "Sid": "AllowRoleEncryptAgent",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::123456789012:role/Role"
               },
               "Action": [
                   "kms:GenerateDataKey*",
                   "kms:Decrypt"
               ],
               "Resource": "arn:aws:kms:us-east-1:123456789012:key/KeyId"
           },
           {
               "Sid": "AllowAttachmentPersistentResources",
               "Effect": "Allow",
               "Principal": {
                   "Service": "bedrock.amazonaws.com"
               },
               "Action": [
                   "kms:CreateGrant",
                   "kms:ListGrants",
                   "kms:RevokeGrant"
               ],
               "Resource": "*",
               "Condition": {
                   "Bool": {
                       "kms:GrantIsForAWSResource": "true"
                   }
               }
           }
       ]
   }
   ```

------

# Amazon Bedrock Flows 資源的加密
<a name="encryption-flows"></a>

Amazon Bedrock 會加密靜態資料。根據預設，Amazon Bedrock 會使用 AWS 受管金鑰加密此資料。或者，您可以使用客戶自管金鑰加密資料。

如需詳細資訊AWS KMS keys，請參閱《 *AWS Key Management Service開發人員指南*》中的[客戶受管金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)。

如果使用自訂 KMS 金鑰加密資料，您必須設定下列身分型政策和資源型政策，以允許 Amazon Bedrock 代表您加密和解密資料。

1. 將下列身分型政策連接到 IAM 角色或具有撥打 Amazon Bedrock 流程 API 呼叫許可的使用者。此政策會驗證撥打 Amazon Bedrock 流程呼叫的使用者是否具有 KMS 許可。將 *\$1\$1region\$1*、*\$1\$1account-id\$1*、*\$1\$1flow-id\$1* 和 *\$1\$1key-id\$1* 取代為適當的值。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "EncryptFlow",
               "Effect": "Allow",
               "Action": [
                   "kms:GenerateDataKey",
                   "kms:Decrypt"
               ],
               "Resource": "arn:aws:kms:us-east-1:123456789012:key/${key-id}",
               "Condition": {
                   "StringEquals": {
                       "kms:EncryptionContext:aws:bedrock-flows:arn": "arn:aws:bedrock:us-east-1:123456789012:flow/${flow-id}",
                       "kms:ViaService": "bedrock.us-east-1.amazonaws.com"
                   }
               }
           }
       ]
   }
   ```

------

1. 將下列的資源型政策連接至您的 KMS 金鑰。視需要變更許可權範圍。將 *\$1IAM-USER/ROLE-ARN\$1*、*\$1\$1region\$1*、*\$1\$1account-id\$1*、*\$1\$1flow-id\$1* 和 *\$1\$1key-id\$1* 取代為適當的值。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowRootModifyKMSId",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::123456789012:root"
               },
               "Action": "kms:*",
               "Resource": "arn:aws:kms:us-east-1:123456789012:key/KeyId"
           },
           {
               "Sid": "AllowRoleUseKMSKey",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::123456789012:role/RoleName"
               },
               "Action": [
                   "kms:GenerateDataKey",
                   "kms:Decrypt"
               ],
               "Resource": "arn:aws:kms:us-east-1:123456789012:key/${key-id}",
               "Condition": {
                   "StringEquals": {
                       "kms:EncryptionContext:aws:bedrock-flows:arn": "arn:aws:bedrock:us-east-1:123456789012:flow/FlowId",
                       "kms:ViaService": "bedrock.us-east-1.amazonaws.com"
                   }
               }
           }
       ]
   }
   ```

------

1. 對於[流程執行](flows-create-async.md)，請將下列身分型政策連接至[具有建立和管理流程許可的服務角色](flows-permissions.md)。此政策會驗證您的服務角色是否具有 AWS KMS許可。將 *region*、*account-id*、*flow-id* 和 *key-id* 取代為適當的值。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "EncryptionFlows",
               "Effect": "Allow",
               "Action": [
                   "kms:GenerateDataKey",
                   "kms:Decrypt"
               ],
               "Resource": "arn:aws:kms:us-east-1:123456789012:key/key-id",
               "Condition": {
                   "StringEquals": {
                       "kms:EncryptionContext:aws:bedrock-flows:arn": "arn:aws:bedrock:us-east-1:123456789012:flow/flow-id",
                       "kms:ViaService": "bedrock.us-east-1.amazonaws.com"
                   }
               }
           }
       ]
   }
   ```

------

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

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

下列程序可能會使用 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-ingestion)
+ [將資訊加密傳遞至 Amazon OpenSearch Service](#encryption-kb-oss)
+ [將傳遞給 Amazon S3 Vectors 的資訊加密](#encryption-kb-s3-vector)
+ [知識庫檢索加密](#encryption-kb-runtime)
+ [在 Amazon S3 中解密資料來源 AWS KMS 金鑰的許可](#encryption-kb-ds)
+ [解密包含知識庫之向量存放區的 AWS Secrets Manager 秘密的許可](#encryption-kb-3p)
+ [具有 AWS KMS 加密的 Bedrock 資料自動化 (BDA) 許可](#encryption-kb-bda)

## 資料擷取期間的暫時性資料儲存加密
<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)。

## 知識庫檢索加密
<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"
        }
    ]
}
```

------

## 在 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 需要這些動作來處理加密的音訊、影片和影像檔案。