> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-1d264819.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 从 CMEK v1 迁移到 v2

> 从旧版 CMEK 迁移到版本 2 的说明

我们正在提升采用客户管理加密密钥 (CMEK) 的服务的安全性。现在，所有服务都已为每个服务配置唯一的 AWS Role，用于授权使用客户密钥对服务进行加密和解密。这个新角色仅会显示在服务配置界面中。

这一新流程同时支持 OpenAPI 和 Terraform。更多信息，请参阅我们的文档 ([增强加密](/zh/products/cloud/guides/security/cmek)、[Cloud API](/zh/products/cloud/features/admin-features/api/api-overview)、[官方 Terraform Provider](https://registry.terraform.io/providers/ClickHouse/clickhouse/latest/docs)) 。

<Warning>
  使用 CMEK v1 的客户必须最迟在 2026 年 6 月 1 日前完成服务迁移。超过该日期后，客户管理密钥将默认轮换为 ClickHouse 管理密钥。完成默认迁移后，客户仍可再轮换回客户管理密钥。
</Warning>

<div id="manual-migration">
  ## 手动迁移
</div>

完成以下步骤以迁移到新流程：

1. 登录 [https://console.clickhouse.cloud](https://console.clickhouse.cloud)
2. 点击已加密的服务
3. 点击左侧的“服务设置”
4. 滚动到页面底部并展开“查看服务详情”
5. 复制加密 Role ID (IAM)
6. 前往 AWS 中的 KMS 密钥，并更新 Key Policy，添加以下内容：

```json theme={null}
{
   "Sid": "Allow ClickHouse Access",
   "Effect": "Allow",
   "Principal": {
       "AWS": ["Encryption role ID (ARN)"]
   },
   "Action": [
       "kms:Encrypt",
       "kms:Decrypt",
       "kms:ReEncrypt*",
       "kms:DescribeKey"
   ],
   "Resource": "*"
}
```

7. 在 ClickHouse Cloud 中，提交一个支持工单，告知我们可以启用这一新方法。此更改需要重启服务；如果您有最适合重启服务的日期/时间，请告知我们。
8. 在我们重启服务后，前往 AWS 中的 KMS 密钥，并从 Key Policy 中移除以下内容：

```json theme={null}
{
   "Sid": "Allow ClickHouse Access",
       "Effect": "Allow",
       "Principal": {
           "AWS": "arn:aws:iam::576599896960:role/prod-kms-request-role"
       },
       "Action": ["kms:GetPublicKey",
       "kms:Decrypt",
       "kms:GenerateDataKeyPair",
       "kms:Encrypt",
       "kms:GetKeyRotationStatus",
       "kms:GenerateDataKey",
       "kms:DescribeKey"],
       "Resource": "*"
}
```

9. 更新完成！

<div id="terraform-migration">
  ## Terraform 迁移
</div>

1. 升级到 [Terraform 3.5.0 或更高版本](https://registry.terraform.io/providers/ClickHouse/clickhouse/latest/docs)
2. 在不做任何修改的情况下运行 Terraform apply。Terraform state 中会出现一个新的 transparent\_data\_encryption 字段。请记下此处的 role\_id。
3. 前往 AWS 中的 KMS 密钥，并更新 Key Policy，添加以下内容：

```json theme={null}
{
   "Sid": "Allow ClickHouse Access",
   "Effect": "Allow",
   "Principal": {
       "AWS": ["Encryption role ID (ARN)"]
   },
   "Action": [
       "kms:Encrypt",
       "kms:Decrypt",
       "kms:ReEncrypt*",
       "kms:DescribeKey"
   ],
   "Resource": "*"
}
```

4. 在 ClickHouse Cloud 中，附上服务 name 提交一个支持工单，告知我们启用这种新方法。此更改需要重启服务；如果您有最适合重启服务的日期/时间，请告知我们。
5. 在我们重启服务后，您可以将 transparent\_data\_encryption.enabled 设置更新为‘True’，并在 Terraform 中移除层级设置后应用。这将不会产生任何变更。
6. 前往 AWS 中的 KMS 密钥，并从 Key Policy 中移除以下内容：

```json theme={null}
{
   "Sid": "Allow ClickHouse Access",
       "Effect": "Allow",
       "Principal": {
           "AWS": "arn:aws:iam::576599896960:role/prod-kms-request-role"
       },
       "Action": ["kms:GetPublicKey",
       "kms:Decrypt",
       "kms:GenerateDataKeyPair",
       "kms:Encrypt",
       "kms:GetKeyRotationStatus",
       "kms:GenerateDataKey",
       "kms:DescribeKey"],
       "Resource": "*"
}
```

7. 更新已完成！
