Kundenseitig verwaltete Schlüssel in Azure Managed Instance for Apache Cassandra
In Azure Managed Instance for Apache Cassandra können Sie Ihren eigenen Schlüssel verwenden, um Daten auf dem Datenträger zu verschlüsseln. In diesem Artikel wird beschrieben, wie Sie kundenseitig verwaltete Schlüssel mittels Azure Key Vault implementieren.
Voraussetzungen
Richten Sie ein Geheimnis mittels Azure Key Vault ein. Weitere Informationen finden Sie unter Informationen zu Azure Key Vault-Geheimnissen.
Stellen Sie ein virtuelles Netzwerk in Ihrer Ressourcengruppe bereit.
Wenden Sie die Rolle „Netzwerkmitwirkender“ mit dem Azure Cosmos DB-Dienstprinzipal als Mitglied an. Verwenden Sie den folgenden Befehl:
az role assignment create \ --assignee a232010e-820c-4083-83bb-3ace5fc29d0b \ --role 4d97b98b-1d4f-4787-a291-c67834d212e7 \ --scope /subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/virtualNetworks/<vnetName>
Wenn Sie die entsprechende Rolle auf Ihr virtuelles Netzwerk anwenden, können Sie Fehler vermeiden, wenn Sie einen Azure Managed Instance for Apache Cassandra-Cluster bereitstellen. Weitere Informationen finden Sie unter Erstellen eines Azure Managed Instance for Apache Cassandra-Clusters mithilfe der Azure CLI.
Für diesen Artikel ist mindestens Azure CLI, Version 2.30.0 oder höher erforderlich. Bei Verwendung von Azure Cloud Shell ist die aktuelle Version bereits installiert.
Erstellen eines Clusters mit einer systemseitig zugewiesenen Identität
Erstellen Sie einen Cluster mithilfe des folgenden Befehls. Ersetzen Sie
<subscriptionID>
,<resourceGroupName>
,<vnetName>
und<subnetName>
durch die entsprechenden Werte.subnet="/subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/virtualNetworks/<vnetName>/subnets/<subnetName>" cluster="thvankra-cmk-test-wcus" group="thvankra-nova-cmk-test" region="westcentralus" password="PlaceholderPassword" az managed-cassandra cluster create \ --identity-type SystemAssigned \ --resource-group $group \ --location $region \ --cluster-name $cluster \ --delegated-management-subnet-id $subnet \ --initial-cassandra-admin-password $password
Rufen Sie die Identitätsinformationen des erstellten Clusters ab:
az managed-cassandra cluster show -c $cluster -g $group
Die Ausgabe enthält einen Identitätsabschnitt wie im folgenden Beispiel. Kopieren Sie den
principalId
-Wert zur späteren Verwendung."identity": { "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222", "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee", "type": "SystemAssigned" }
Wechseln Sie im Azure-Portal zu Ihrem Schlüsseltresor, und wählen Sie Zugriffsrichtlinien aus. Wählen Sie dann Zugriffsrichtlinie hinzufügen aus, um eine Zugriffsrichtlinie für Ihre Schlüssel zu erstellen.
Als Schlüsselberechtigung wählen Sie get (abrufen), wrap (umbrechen) und unwrap (Umbruch aufheben) aus. Wählen Sie das Feld Prinzipal auswählen, um den Bereich Prinzipal zu öffnen. Geben Sie den zuvor abgerufenen
principalId
-Wert des Clusters ein, und wählen Sie dann die Schaltfläche Auswählen aus. (Im Portal können Sie die Prinzipal-ID des Clusters auch über den Namen des Clusters abrufen.)Warnung
Stellen Sie sicher, dass der Schlüsseltresor den Löschschutz aktiviert hat. Ohne ihn wird bei der Bereitstellung von Rechenzentren ein Fehler auftreten.
Wählen Sie Hinzufügen aus, um die Zugriffsrichtlinie hinzuzufügen, und wählen Sie dann Speichern aus.
Um den Schlüsselbezeichner abzurufen, wählen Sie Schlüssel aus, und wählen Sie dann Ihren Schlüssel aus.
Wählen Sie die aktuelle Version aus.
Speichern Sie den Schlüsselbezeichner zur späteren Verwendung.
Erstellen Sie das Rechenzentrum, indem Sie
<key identifier>
mit demselben Schlüssel (den URI, den Sie im vorherigen Schritt kopiert haben) für die Verschlüsselung des verwalteten Datenträgers (managed-disk-customer-key-uri
) und des Sicherungsspeichers (backup-storage-customer-key-uri
) ersetzen. Verwenden Sie denselben Wert fürsubnet
, den Sie zuvor verwendet haben.managedDiskKeyUri = "<key identifier>" backupStorageKeyUri = "<key identifier>" group="thvankra-nova-cmk-test" region="westcentralus" cluster="thvankra-cmk-test-2" dc="dc1" nodecount=3 subnet="/subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/virtualNetworks/<vnetName>/subnets/<subnetName>" az managed-cassandra datacenter create \ --resource-group $group \ --cluster-name $cluster \ --data-center-name $dc \ --managed-disk-customer-key-uri $managedDiskKeyUri \ --backup-storage-customer-key-uri $backupStorageKeyUri \ --node-count $nodecount \ --delegated-subnet-id $subnet \ --data-center-location $region \ --sku Standard_DS14_v2
Sie können einem vorhandenen Cluster auch eine Identität ohne Identitätsinformationen zuweisen:
az managed-cassandra cluster update --identity-type SystemAssigned -g $group -c $cluster
Rotieren des Schlüssels
Verwenden Sie den folgenden Befehl, um den Schlüssel zu aktualisieren:
managedDiskKeyUri = "<key identifier>"
backupStorageKeyUri = "<key identifier>"
az managed-cassandra datacenter update \
--resource-group $group \
--cluster-name $cluster \
--data-center-name $dc \
--managed-disk-customer-key-uri $managedDiskKeyUri \
--backup-storage-customer-key-uri $backupStorageKeyUri