本文介绍如何在使用密钥管理服务(KMS)的 etcd 加密的 Azure Kubernetes Service (AKS) 群集中,将密钥保管库模式从公用模式更新为专用模式,或从专用模式更新为公用模式。
先决条件
- 启用了 KMS etcd 加密的 AKS 群集。 有关详细信息,请参阅 将密钥管理服务 (KMS) etcd 加密添加到 Azure Kubernetes 服务 (AKS) 群集。
- Azure CLI 2.39.0 或更高版本。 使用
az --version命令查找版本。 如需进行安装或升级,请参阅安装 Azure CLI。
更新密钥保管库模式
注释
若要更改具有不同模式(无论是公共还是专用)的不同密钥保管库,可以直接运行 az aks update。 若要更改附加密钥保管库的模式,必须先关闭 KMS,然后使用新的密钥保管库 ID 再次打开它。
使用
az aks update命令带有--disable-azure-keyvault-kms参数关闭现有群集上的 KMS,然后释放密钥保管库。az aks update --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --disable-azure-keyvault-kms警告
关闭 KMS 后,仍需要加密密钥保管库密钥。 无法删除或过期。
使用
kubectl get secrets命令更新所有机密,以确保之前创建的机密不再加密。 对于较大的群集,可能需要按命名空间细分机密或创建更新脚本。 如果上一个更新 KMS 命令失败,仍运行以下命令以避免 KMS 插件出现意外状态。kubectl get secrets --all-namespaces -o json | kubectl replace -f -使用命令
az keyvault update并将参数--public-network-access设置为Disabled,将密钥保管库从公共更改为专用。az keyvault update --name $KEY_VAULT --resource-group $RESOURCE_GROUP --public-network-access Disabled使用
az aks update命令并将--azure-keyvault-kms-key-vault-network-access参数设置为Private来开启使用更新的私钥保管库的 KMS。az aks update \ --name $CLUSTER_NAME \ --resource-group $RESOURCE_GROUP \ --enable-azure-keyvault-kms \ --azure-keyvault-kms-key-id $KEY_ID \ --azure-keyvault-kms-key-vault-network-access "Private" \ --azure-keyvault-kms-key-vault-resource-id $KEY_VAULT_RESOURCE_ID