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 true
ist.
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-authorization
ist, 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-authorization
festgelegt 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-kms
Parameter , 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-kms
Parameter , 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-kms
Parameter --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-authorization
ist, 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-authorization
festgelegt 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
Zuweisen von Berechtigungen zum Erstellen eines privaten Links
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-id
parametern , , --azure-keyvault-kms-key-vault-network-access
und --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:
- Deaktivieren Sie KMS im Cluster.
- Führen Sie die Speichermigration durch.
- Aktualisieren Sie den Cluster auf Version 1.27 oder höher.
- Aktivieren Sie KMS auf dem Cluster.
- 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 -