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

  1. 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
    
  2. 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": "1aa51c7f-196a-4013-a656-1ccabfdc54e0",
        "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
        "type": "SystemAssigned"
      }
    
  3. 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.

    Screenshot that shows the pane for access policies in the Azure portal.

  4. 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.)

    Screenshot that shows an example of adding a principal for an access policy.

    Warnung

    Stellen Sie sicher, dass der Schlüsseltresor den Löschschutz aktiviert hat. Ohne ihn wird bei der Bereitstellung von Rechenzentren ein Fehler auftreten.

  5. Wählen Sie Hinzufügen aus, um die Zugriffsrichtlinie hinzuzufügen, und wählen Sie dann Speichern aus.

    Screenshot that shows the button for saving an access policy.

  6. Um den Schlüsselbezeichner abzurufen, wählen Sie Schlüssel aus, und wählen Sie dann Ihren Schlüssel aus.

    Screenshot that shows the pane for selecting a key.

  7. Wählen Sie die aktuelle Version aus.

    Screenshot that shows the box for selecting the current version of a key.

  8. Speichern Sie den Schlüsselbezeichner zur späteren Verwendung.

    Screenshot that shows copying a key identifier to the clipboard.

  9. 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ür subnet, 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