Hinzufügen Schlüsselverwaltungsdienst usw. Verschlüsselung zu einem Azure Kubernetes-Dienstcluster

In diesem Artikel wird erläutert, wie Sie die ruhende Verschlüsselung für Ihre Azure Kubernetes Service (AKS)-Schlüssel in einem usw. Schlüsselwertspeicher mithilfe von Azure Key Vault und dem KMS-Plug-In (Schlüsselverwaltungsdienst) aktivieren. Sie können das KMS-Plug-In für Folgendes verwenden:

  • Verwenden Sie einen Schlüssel in einem Schlüsseltresor für etcd-Verschlüsselung.
  • Verwenden eigener Schlüssel (BYOK).
  • Stellen Sie ruhende Verschlüsselung für geheime Schlüssel bereit, die in usw. gespeichert sind.
  • Drehen Sie die Schlüssel in einem Schlüsseltresor.

Weitere Informationen zur Verwendung von KMS finden Sie unter Verschlüsseln geheimer Daten im Ruhezustand.

Voraussetzungen

  • Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
  • Azure CLI, Version 2.39.0 oder höher Führen Sie az --version aus, um Ihre Version zu ermitteln. Installations- und Upgradeinformationen finden Sie bei Bedarf unter Installieren von Azure CLI.

Warnung

KMS unterstützt Konnectivity oder API Server VNet Integration (Vorschau).

Sie können die kubectl get po -n kube-system Ergebnisse überprüfen und zeigen, dass ein Konnectivity-Agent-Pod ausgeführt wird. Wenn ein Pod ausgeführt wird, verwendet der AKS-Cluster Konnectivity. Wenn Sie die API Server-VNet-Integration verwenden, können Sie den az aks show -g -n Befehl ausführen, um zu überprüfen, ob die enableVnetIntegration Einstellung auf festgelegt trueist.

Begrenzungen

Die folgenden Einschränkungen gelten, wenn Sie KMS-etcd-Verschlüsselung mit AKS integrieren:

  • Das Löschen des Schlüssels, des Schlüsseltresors oder der zugeordneten Identität wird nicht unterstützt.
  • etcd-Verschlüsselung von KMS funktioniert nicht mit systemseitig zugewiesenen verwalteten Identitäten. Die Zugriffsrichtlinie für den Schlüsseltresor muss festgelegt werden, bevor das Feature aktiviert ist. Die vom System zugewiesene verwaltete Identität ist erst verfügbar, nachdem der Cluster erstellt wurde. Berücksichtigen Sie die Zyklusabhängigkeit.
  • Azure Key Vault mit einer Firewall zum Zulassen des öffentlichen Zugriffs wird nicht unterstützt, da der Datenverkehr vom KMS-Plug-In zum Schlüsseltresor blockiert wird.
  • Die maximale Anzahl geheimer Schlüssel, die von einem Cluster unterstützt werden, für den KMS aktiviert ist, beträgt 2.000. Es ist jedoch wichtig zu beachten, dass KMS v2 nicht durch diese Einschränkung beschränkt ist und eine höhere Anzahl von geheimen Schlüsseln verarbeiten kann.
  • Das Übertragen Ihres eigenen Azure Key Vault (BYO) aus einem anderen Mandanten wird nicht unterstützt.
  • Wenn KMS aktiviert ist, können Sie den zugeordneten Schlüsseltresormodus (öffentlich und privat) nicht ändern. Um einen Schlüsseltresormodus zu aktualisieren, müssen Sie zuerst KMS deaktivieren und dann erneut aktivieren.
  • Wenn ein Cluster KMS aktiviert hat, über einen privaten Schlüsseltresor verfügt und nicht den API Server VNet-Integrationstunnel verwendet, können Sie den Cluster nicht beenden und dann starten.
  • Wenn Sie die VM-Skalierungsgruppen-API verwenden, um die Knoten im Cluster auf null zu skalieren, werden die Knoten zugeordnet. Der Cluster geht dann nach unten und wird nicht wiederhergestellt.
  • Nachdem Sie KMS deaktiviert haben, können Sie die Schlüssel nicht zerstören. Das Zerstören der Schlüssel bewirkt, dass der API-Server nicht mehr funktioniert.

KMS unterstützt einen öffentlichen Schlüsseltresor oder einen privaten Schlüsseltresor.

Aktivieren von KMS für einen öffentlichen Schlüsseltresor

In den folgenden Abschnitten wird beschrieben, wie KMS für einen öffentlichen Schlüsseltresor aktiviert wird.

Erstellen eines öffentlichen Schlüsseltresors und eines Schlüssels

Warnung

Das Löschen des Schlüssels oder des Schlüsseltresors wird nicht unterstützt und bewirkt, dass die geheimen Schlüssel im Cluster nicht wiederhergestellt werden können.

Wenn Sie Ihren Schlüsseltresor oder Ihren Schlüssel wiederherstellen müssen, lesen Sie die Azure Key Vault-Wiederherstellungsverwaltung mit vorläufigem Löschen und Löschschutz.

Erstellen eines Schlüsseltresors und eines Schlüssels für einen öffentlichen Schlüsseltresor, der nicht vom RBAC ist

Wird az keyvault create verwendet, um einen Schlüsseltresor zu erstellen, ohne die rollenbasierte Zugriffssteuerung (Azure RBAC) zu verwenden:

az keyvault create --name MyKeyVault --resource-group MyResourceGroup

Dient az keyvault key create zum Erstellen eines Schlüssels:

az keyvault key create --name MyKeyName --vault-name MyKeyVault

Wird az keyvault key show verwendet, um die Schlüssel-ID zu exportieren:

export KEY_ID=$(az keyvault key show --name MyKeyName --vault-name MyKeyVault --query 'key.kid' -o tsv)
echo $KEY_ID

In diesem Beispiel wird die Schlüssel-ID in KEY_ID.

Erstellen eines Schlüsseltresors und eines Schlüssels für einen öffentlichen RBAC-Schlüsseltresor

Dient az keyvault create zum Erstellen eines Schlüsseltresors mithilfe von Azure RBAC:

export KEYVAULT_RESOURCE_ID=$(az keyvault create --name MyKeyVault --resource-group MyResourceGroup  --enable-rbac-authorization true --query id -o tsv)

Weisen Sie sich selbst Berechtigungen zum Erstellen eines Schlüssels zu:

az role assignment create --role "Key Vault Crypto Officer" --assignee-object-id $(az ad signed-in-user show --query id --out tsv) --assignee-principal-type "User" --scope $KEYVAULT_RESOURCE_ID

Dient az keyvault key create zum Erstellen eines Schlüssels:

az keyvault key create --name MyKeyName --vault-name MyKeyVault

Wird az keyvault key show verwendet, um die Schlüssel-ID zu exportieren:

export KEY_ID=$(az keyvault key show --name MyKeyName --vault-name MyKeyVault --query 'key.kid' -o tsv)
echo $KEY_ID

In diesem Beispiel wird die Schlüssel-ID in KEY_ID.

Erstellen einer vom Benutzer zugewiesenen verwalteten Identität für einen öffentlichen Schlüsseltresor

Dient az identity create zum Erstellen einer vom Benutzer zugewiesenen verwalteten Identität:

az identity create --name MyIdentity --resource-group MyResourceGroup

Dient az identity show zum Abrufen der Identitätsobjekt-ID:

IDENTITY_OBJECT_ID=$(az identity show --name MyIdentity --resource-group MyResourceGroup --query 'principalId' -o tsv)
echo $IDENTITY_OBJECT_ID

Im vorherigen Beispiel wird der Wert der Identitätsobjekt-ID in IDENTITY_OBJECT_ID.

Dient az identity show zum Abrufen der Identitätsressourcen-ID:

IDENTITY_RESOURCE_ID=$(az identity show --name MyIdentity --resource-group MyResourceGroup --query 'id' -o tsv)
echo $IDENTITY_RESOURCE_ID

In diesem Beispiel wird der Wert der Identitätsressourcen-ID in IDENTITY_RESOURCE_ID.

Zuweisen von Berechtigungen zum Entschlüsseln und Verschlüsseln eines öffentlichen Schlüsseltresors

In den folgenden Abschnitten wird beschrieben, wie Sie Entschlüsselungs- und Verschlüsselungsberechtigungen für einen privaten Schlüsseltresor zuweisen.

Zuweisen von Berechtigungen für einen öffentlichen Schlüsseltresor ohne RBAC

Wenn Ihr Schlüsseltresor nicht festgelegt --enable-rbac-authorizationist, können az keyvault set-policy Sie eine Azure Key Vault-Richtlinie erstellen.

az keyvault set-policy -n MyKeyVault --key-permissions decrypt encrypt --object-id $IDENTITY_OBJECT_ID

Zuweisen von Berechtigungen für einen öffentlichen RBAC-Schlüsseltresor

Wenn Ihr Schlüsseltresor mit --enable-rbac-authorizationfestgelegt ist, weisen Sie die Schlüsseltresor-Kryptobenutzerrolle zu, um Entschlüsselungs- und Verschlüsselungsberechtigungen zu erteilen.

az role assignment create --role "Key Vault Crypto User" --assignee-object-id $IDENTITY_OBJECT_ID --assignee-principal-type "ServicePrincipal" --scope $KEYVAULT_RESOURCE_ID

Erstellen eines AKS-Clusters mit einem öffentlichen Schlüsseltresor und Aktivieren der KMS-Verschlüsselung

Um die KMS-Verschlüsselung zu aktivieren, erstellen Sie einen AKS-Cluster mithilfe des Befehls "az aks create ". Sie können die --enable-azure-keyvault-kmsParameter , und --azure-keyvault-kms-key-id die Parameter mit az aks create--azure-keyvault-kms-key-vault-network-access.

az aks create --name myAKSCluster --resource-group MyResourceGroup --assign-identity $IDENTITY_RESOURCE_ID --enable-azure-keyvault-kms --azure-keyvault-kms-key-vault-network-access "Public" --azure-keyvault-kms-key-id $KEY_ID

Aktualisieren eines vorhandenen AKS-Clusters zum Aktivieren der KMS-Verschlüsselung für einen öffentlichen Schlüsseltresor

Um die KMS-Verschlüsselung für einen vorhandenen Cluster zu aktivieren, verwenden Sie den Az aks Update-Befehl . Sie können die --enable-azure-keyvault-kmsParameter , und --azure-keyvault-kms-key-id die Parameter mit az-aks-update--azure-keyvault-kms-key-vault-network-access.

az aks update --name myAKSCluster --resource-group MyResourceGroup --enable-azure-keyvault-kms --azure-keyvault-kms-key-vault-network-access "Public" --azure-keyvault-kms-key-id $KEY_ID

Verwenden Sie den folgenden Befehl zum Aktualisieren aller Geheimnisse. Wenn Sie diesen Befehl nicht ausführen, werden geheime Schlüssel, die zuvor erstellt wurden, nicht mehr verschlüsselt. Bei größeren Clustern sollten Sie die geheimen Schlüssel nach Namespace unterteilen oder ein Updateskript erstellen.

kubectl get secrets --all-namespaces -o json | kubectl replace -f -

Drehen vorhandener Schlüssel in einem öffentlichen Schlüsseltresor

Nachdem Sie die Schlüssel-ID geändert haben (einschließlich der Änderung des Schlüsselnamens oder der Schlüsselversion), können Sie den Befehl "az aks update" verwenden. Sie können die vorhandenen Schlüssel in KMS mithilfe der --enable-azure-keyvault-kmsParameter --azure-keyvault-kms-key-vault-network-access--azure-keyvault-kms-key-id und deren az-aks-update Parameter drehen.

Warnung

Denken Sie daran, nach der Schlüsselrotation alle Geheimnisse zu aktualisieren. Wenn Sie nicht alle geheimen Schlüssel aktualisieren, sind auf die geheimen Schlüssel nicht zugegriffen, wenn die zuvor erstellten Schlüssel nicht vorhanden sind oder nicht mehr funktionieren.

Nachdem Sie den Schlüssel gedreht haben, wird der vorherige Schlüssel (Key1) weiterhin zwischengespeichert und sollte nicht gelöscht werden. Wenn Sie den vorherigen Schlüssel (Key1) sofort löschen möchten, müssen Sie die Taste zweimal drehen. Dann werden Schlüssel2 und Schlüssel3 zwischengespeichert, und Key1 kann gelöscht werden, ohne dass sich dies auf den vorhandenen Cluster auswirkt.

az aks update --name myAKSCluster --resource-group MyResourceGroup  --enable-azure-keyvault-kms --azure-keyvault-kms-key-vault-network-access "Public" --azure-keyvault-kms-key-id $NEW_KEY_ID 

Verwenden Sie den folgenden Befehl zum Aktualisieren aller Geheimnisse. Wenn Sie diesen Befehl nicht ausführen, werden geheime Schlüssel, die zuvor erstellt wurden, weiterhin mit dem vorherigen Schlüssel verschlüsselt. Bei größeren Clustern sollten Sie die geheimen Schlüssel nach Namespace unterteilen oder ein Updateskript erstellen.

kubectl get secrets --all-namespaces -o json | kubectl replace -f -

Aktivieren von KMS für einen privaten Schlüsseltresor

Wenn Sie KMS für einen privaten Schlüsseltresor aktivieren, erstellt AKS automatisch einen privaten Endpunkt und einen privaten Link in der Knotenressourcengruppe. Der Schlüsseltresor wird eine private Endpunktverbindung mit dem AKS-Cluster hinzugefügt.

Erstellen eines privaten Schlüsseltresors und eines Schlüssels

Warnung

Das Löschen des Schlüssels oder des Schlüsseltresors wird nicht unterstützt und bewirkt, dass die geheimen Schlüssel im Cluster nicht wiederhergestellt werden können.

Wenn Sie Ihren Schlüsseltresor oder Ihren Schlüssel wiederherstellen müssen, lesen Sie die Azure Key Vault-Wiederherstellungsverwaltung mit vorläufigem Löschen und Löschschutz.

Dient az keyvault create zum Erstellen eines privaten Schlüsseltresors:

az keyvault create --name MyKeyVault --resource-group MyResourceGroup --public-network-access Disabled

Das Erstellen oder Aktualisieren von Schlüsseln in einem privaten Schlüsseltresor, der keinen privaten Endpunkt hat, wird nicht unterstützt. Informationen zum Verwalten privater Schlüsseltresoren finden Sie unter Integrieren eines Schlüsseltresors mithilfe von Azure Private Link.

Erstellen einer vom Benutzer zugewiesenen verwalteten Identität für einen privaten Schlüsseltresor

Dient az identity create zum Erstellen einer vom Benutzer zugewiesenen verwalteten Identität:

az identity create --name MyIdentity --resource-group MyResourceGroup

Dient az identity show zum Abrufen der Identitätsobjekt-ID:

IDENTITY_OBJECT_ID=$(az identity show --name MyIdentity --resource-group MyResourceGroup --query 'principalId' -o tsv)
echo $IDENTITY_OBJECT_ID

Im vorherigen Beispiel wird der Wert der Identitätsobjekt-ID in IDENTITY_OBJECT_ID.

Dient az identity show zum Abrufen der Identitätsressourcen-ID:

IDENTITY_RESOURCE_ID=$(az identity show --name MyIdentity --resource-group MyResourceGroup --query 'id' -o tsv)
echo $IDENTITY_RESOURCE_ID

In diesem Beispiel wird der Wert der Identitätsressourcen-ID in IDENTITY_RESOURCE_ID.

Zuweisen von Berechtigungen zum Entschlüsseln und Verschlüsseln eines privaten Schlüsseltresors

In den folgenden Abschnitten wird beschrieben, wie Sie Entschlüsselungs- und Verschlüsselungsberechtigungen für einen privaten Schlüsseltresor zuweisen.

Zuweisen von Berechtigungen für einen privaten Schlüsseltresor ohne RBAC

Hinweis

Wenn Sie einen privaten Schlüsseltresor verwenden, kann AKS die Berechtigungen der Identität nicht überprüfen. Überprüfen Sie, ob der Identität die Berechtigung zum Zugriff auf den Schlüsseltresor erteilt wurde, bevor SIE KMS aktivieren.

Wenn Ihr Schlüsseltresor nicht festgelegt --enable-rbac-authorizationist, können az keyvault set-policy Sie eine Schlüsseltresorrichtlinie in Azure erstellen:

az keyvault set-policy -n MyKeyVault --key-permissions decrypt encrypt --object-id $IDENTITY_OBJECT_ID

Zuweisen von Berechtigungen für einen privaten RBAC-Schlüsseltresor

Wenn Ihr Schlüsseltresor mit --enable-rbac-authorizationfestgelegt ist, weisen Sie eine Azure RBAC-Rolle zu, die Entschlüsselungs- und Verschlüsselungsberechtigungen umfasst:

az role assignment create --role "Key Vault Crypto User" --assignee-object-id $IDENTITY_OBJECT_ID --assignee-principal-type "ServicePrincipal" --scope $KEYVAULT_RESOURCE_ID

Bei privaten Schlüsseltresorn ist die Rolle "Key Vault-Mitwirkender" erforderlich, um eine private Verbindung zwischen dem privaten Schlüsseltresor und dem Cluster zu erstellen.

az role assignment create --role "Key Vault Contributor" --assignee-object-id $IDENTITY_OBJECT_ID --assignee-principal-type "ServicePrincipal" --scope $KEYVAULT_RESOURCE_ID

Erstellen eines AKS-Clusters mit einem privaten Schlüsseltresor und Aktivieren der KMS-Verschlüsselung

Um die KMS-Verschlüsselung für einen privaten Schlüsseltresor zu aktivieren, erstellen Sie einen AKS-Cluster mit dem Befehl "Az aks create ". Sie können die Parameter , --azure-keyvault-kms-key-id, und --azure-keyvault-kms-key-vault-network-access--azure-keyvault-kms-key-vault-resource-id die Parameter mit az-aks-create.--enable-azure-keyvault-kms

az aks create --name myAKSCluster --resource-group MyResourceGroup --assign-identity $IDENTITY_RESOURCE_ID --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 $KEYVAULT_RESOURCE_ID

Aktualisieren eines vorhandenen AKS-Clusters zum Aktivieren der KMS-Verschlüsselung für einen privaten Schlüsseltresor

Verwenden Sie den Befehl "az aks aktualisieren ", um die KMS-Verschlüsselung für einen vorhandenen Cluster mit einem privaten Schlüsseltresor zu aktivieren. Sie können die Parameter , --azure-keyvault-kms-key-id, und --azure-keyvault-kms-key-vault-network-access--azure-keyvault-kms-key-vault-resource-id die Parameter mit az-aks-update.--enable-azure-keyvault-kms

az aks update --name myAKSCluster --resource-group MyResourceGroup --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 $KEYVAULT_RESOURCE_ID

Verwenden Sie den folgenden Befehl zum Aktualisieren aller Geheimnisse. Wenn Sie diesen Befehl nicht ausführen, werden geheime Schlüssel, die zuvor erstellt wurden, nicht verschlüsselt. Bei größeren Clustern sollten Sie die geheimen Schlüssel nach Namespace unterteilen oder ein Updateskript erstellen.

kubectl get secrets --all-namespaces -o json | kubectl replace -f -

Drehen vorhandener Schlüssel in einem privaten Schlüsseltresor

Nachdem Sie die Schlüssel-ID (einschließlich des Schlüsselnamens und der Schlüsselversion) geändert haben, können Sie den Befehl "az aks update" verwenden. Sie können die vorhandenen Schlüssel von KMS mit den --enable-azure-keyvault-kms--azure-keyvault-kms-key-idparametern , , --azure-keyvault-kms-key-vault-network-accessund --azure-keyvault-kms-key-vault-resource-id den az-aks-update Parametern drehen.

Warnung

Denken Sie daran, nach der Schlüsselrotation alle Geheimnisse zu aktualisieren. Wenn Sie nicht alle geheimen Schlüssel aktualisieren, sind auf die geheimen Schlüssel nicht zugegriffen, wenn die zuvor erstellten Schlüssel nicht vorhanden sind oder nicht mehr funktionieren.

Nachdem Sie den Schlüssel gedreht haben, wird der vorherige Schlüssel (Key1) weiterhin zwischengespeichert und sollte nicht gelöscht werden. Wenn Sie den vorherigen Schlüssel (Key1) sofort löschen möchten, müssen Sie die Taste zweimal drehen. Dann werden Schlüssel2 und Schlüssel3 zwischengespeichert, und Key1 kann gelöscht werden, ohne dass sich dies auf den vorhandenen Cluster auswirkt.

az aks update --name myAKSCluster --resource-group MyResourceGroup  --enable-azure-keyvault-kms --azure-keyvault-kms-key-id $NewKEY_ID --azure-keyvault-kms-key-vault-network-access "Private" --azure-keyvault-kms-key-vault-resource-id $KEYVAULT_RESOURCE_ID

Verwenden Sie den folgenden Befehl zum Aktualisieren aller Geheimnisse. Wenn Sie nicht alle geheimen Schlüssel aktualisieren, werden zuvor erstellte geheime Schlüssel mit dem vorherigen Schlüssel verschlüsselt. Bei größeren Clustern sollten Sie die geheimen Schlüssel nach Namespace unterteilen oder ein Updateskript erstellen.

kubectl get secrets --all-namespaces -o json | kubectl replace -f -

Aktualisieren eines Schlüsseltresormodus

Hinweis

Um einen anderen Schlüsseltresor mit einem anderen Modus (ob öffentlich oder privat) zu ändern, können Sie direkt ausführen az aks update . Um den Modus eines angefügten Schlüsseltresors zu ändern, müssen Sie zuerst KMS deaktivieren und dann erneut aktivieren, indem Sie die neuen Schlüsseltresor-IDs verwenden.

In den folgenden Abschnitten wird beschrieben, wie Sie einen angefügten öffentlichen Schlüsseltresor in den privaten Modus migrieren.

Deaktivieren von KMS im Cluster

Deaktivieren Sie KMS für einen vorhandenen Cluster, und lassen Sie den Schlüsseltresor los:

az aks update --name myAKSCluster --resource-group MyResourceGroup --disable-azure-keyvault-kms

Ändern des Schlüsseltresormodus

Aktualisieren Sie den Schlüsseltresor von öffentlich auf privat:

az keyvault update --name MyKeyVault --resource-group MyResourceGroup --public-network-access Disabled

Aktivieren von KMS für den Cluster mithilfe des aktualisierten Schlüsseltresors

Aktivieren Sie KMS mithilfe des aktualisierten privaten Schlüsseltresors:

az aks update --name myAKSCluster --resource-group MyResourceGroup  --enable-azure-keyvault-kms --azure-keyvault-kms-key-id $NewKEY_ID --azure-keyvault-kms-key-vault-network-access "Private" --azure-keyvault-kms-key-vault-resource-id $KEYVAULT_RESOURCE_ID

Nachdem Sie KMS eingerichtet haben, können Sie Diagnoseeinstellungen für den Schlüsseltresor aktivieren , um die Verschlüsselungsprotokolle zu überprüfen.

DEAKTIVIEREN von KMS

Bevor Sie KMS deaktivieren, können Sie den folgenden Azure CLI-Befehl verwenden, um zu überprüfen, ob KMS aktiviert ist:

az aks list --query "[].{Name:name, KmsEnabled:securityProfile.azureKeyVaultKms.enabled, KeyId:securityProfile.azureKeyVaultKms.keyId}" -o table

Wenn die Ergebnisse kmS bestätigen, die aktiviert ist, führen Sie den folgenden Befehl aus, um KMS im Cluster zu deaktivieren:

az aks update --name myAKSCluster --resource-group MyResourceGroup --disable-azure-keyvault-kms

Verwenden Sie den folgenden Befehl zum Aktualisieren aller Geheimnisse. Wenn Sie diesen Befehl nicht ausführen, werden geheime Schlüssel, die zuvor erstellt wurden, weiterhin mit dem vorherigen Schlüssel verschlüsselt, und die Verschlüsselungs- und Entschlüsselungsberechtigungen für den Schlüsseltresor sind weiterhin erforderlich. Bei größeren Clustern sollten Sie die geheimen Schlüssel nach Namespace unterteilen oder ein Updateskript erstellen.

kubectl get secrets --all-namespaces -o json | kubectl replace -f -

KMS v2-Unterstützung

Ab AKS Version 1.27 konfiguriert das Aktivieren des KMS-Features KMS v2. Bei KMS v2 sind Sie nicht auf die 2.000 geheimen Schlüssel beschränkt, die frühere Versionen unterstützen. Weitere Informationen finden Sie unter KMS V2-Verbesserungen.

Migrieren zu KMS v2

Wenn Ihre Clusterversion höher als 1.27 ist und Sie KMS bereits aktiviert haben, wird das Upgrade auf KMS 1.27 oder höher blockiert. Führen Sie die folgenden Schritte aus, um zu KMS v2 zu migrieren:

  1. Deaktivieren Sie KMS im Cluster.
  2. Führen Sie die Speichermigration durch.
  3. Aktualisieren Sie den Cluster auf Version 1.27 oder höher.
  4. Aktivieren Sie KMS auf dem Cluster.
  5. Führen Sie die Speichermigration durch.

Deaktivieren von KMS zum Migrieren des Speichers

Um KMS für einen vorhandenen Cluster zu deaktivieren, verwenden Sie den az aks update Befehl mit dem --disable-azure-keyvault-kms Argument:

az aks update --name myAKSCluster --resource-group MyResourceGroup --disable-azure-keyvault-kms

Migrieren von Speicher

Um alle geheimen Schlüssel zu aktualisieren, verwenden Sie den kubectl get secrets Befehl mit dem --all-namespaces Argument:

kubectl get secrets --all-namespaces -o json | kubectl replace -f -

Durchführen eines Upgrades für einen AKS-Cluster

Verwenden Sie den az aks upgrade Befehl, um ein AKS-Cluster zu aktualisieren. Legen Sie die Version mithilfe des --kubernetes-version Arguments auf 1.27.x oder höher fest.

az aks upgrade --resource-group myResourceGroup --name myAKSCluster --kubernetes-version <AKS version>

Ein Beispiel:

az aks upgrade --resource-group myResourceGroup --name myAKSCluster --kubernetes-version 1.27.1

Aktivieren von KMS nach der Speichermigration

Sie können das KMS-Feature auf dem Cluster erneut aktivieren, um die geheimen Schlüssel zu verschlüsseln. Anschließend verwendet der AKS-Cluster KMS v2. Wenn Sie nicht zu KMS v2 migrieren möchten, können Sie einen neuen Cluster erstellen, der Version 1.27 oder höher ist, wobei KMS aktiviert ist.

Migrieren von Speicher für KMS v2

Um alle geheimen Schlüssel in KMS v2 erneut zu verschlüsseln, verwenden Sie den kubectl get secrets Befehl mit dem --all-namespaces Argument:

kubectl get secrets --all-namespaces -o json | kubectl replace -f -