Compartir a través de

使用密钥管理服务(KMS)etcd 加密(旧版)更新 Azure Kubernetes 服务(AKS)群集的密钥保管库模式

本文介绍如何在使用密钥管理服务(KMS)的 etcd 加密的 Azure Kubernetes Service (AKS) 群集中,将密钥保管库模式从公用模式更新为专用模式,或从专用模式更新为公用模式。

先决条件

更新密钥保管库模式

注释

若要更改具有不同模式(无论是公共还是专用)的不同密钥保管库,可以直接运行 az aks update。 若要更改附加密钥保管库的模式,必须先关闭 KMS,然后使用新的密钥保管库 ID 再次打开它。

  1. 使用 az aks update 命令带有 --disable-azure-keyvault-kms 参数关闭现有群集上的 KMS,然后释放密钥保管库。

    az aks update --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --disable-azure-keyvault-kms
    

    警告

    关闭 KMS 后,仍需要加密密钥保管库密钥。 无法删除或过期。

  2. 使用 kubectl get secrets 命令更新所有机密,以确保之前创建的机密不再加密。 对于较大的群集,可能需要按命名空间细分机密或创建更新脚本。 如果上一个更新 KMS 命令失败,仍运行以下命令以避免 KMS 插件出现意外状态。

    kubectl get secrets --all-namespaces -o json | kubectl replace -f -
    
  3. 使用命令az keyvault update并将参数--public-network-access设置为Disabled,将密钥保管库从公共更改为专用。

    az keyvault update --name $KEY_VAULT --resource-group $RESOURCE_GROUP --public-network-access Disabled
    
  4. 使用 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