Verwenden kundenseitig verwalteter Schlüssel mit Azure Machine Learning

Im Artikel zu den Konzepten kundenseitig verwalteter Schlüssel haben Sie mehr über die Verschlüsselungsfunktionen von Azure Machine Learning erfahren. Machen Sie sich nun mit der Verwendung kundenseitig verwalteter Schlüssel mit Azure Machine Learning vertraut.

Azure Machine Learning nutzt die folgenden Dienste, die kundenseitig verwaltete Schlüssel verwenden:

Dienst Verwendungszweck
Azure Cosmos DB Speichern von Metadaten für Azure Machine Learning
Azure KI Search Speichern von Arbeitsbereichsmetadaten für Azure Machine Learning
Azure Storage Speichern von Arbeitsbereichsmetadaten für Azure Machine Learning
Azure Kubernetes Service Hosten trainierter Modelle als Rückschlussendpunkte

Sie verwenden denselben Schlüssel, um Azure Cosmos DB, Azure KI-Suche und Azure Storage zu sichern. Sie können einen anderen Schlüssel für Azure Kubernetes Service verwenden.

Wenn Sie einen kundenseitig verwalteten Schlüssel mit Azure Cosmos DB, Azure KI-Suche und Azure Storage verwenden möchten, wird der Schlüssel beim Erstellen Ihres Arbeitsbereichs bereitgestellt. Der Schlüssel, den Sie mit Azure Kubernetes Service verwenden, wird bereitgestellt, wenn Sie diese Ressource konfigurieren.

Dienst Verwendungszweck
Azure Cosmos DB Speichern von Metadaten für Azure Machine Learning
Azure KI Search Speichern von Arbeitsbereichsmetadaten für Azure Machine Learning
Azure Storage Speichern von Arbeitsbereichsmetadaten für Azure Machine Learning
Azure Kubernetes Service Hosten trainierter Modelle als Rückschlussendpunkte
Azure Container Instances Hosten trainierter Modelle als Rückschlussendpunkte

Sie verwenden denselben Schlüssel, um Azure Cosmos DB, Azure KI-Suche und Azure Storage zu sichern. Für Azure Kubernetes Service und Azure Container Instances können Sie einen anderen Schlüssel verwenden.

Wenn Sie einen kundenseitig verwalteten Schlüssel mit Azure Cosmos DB, Azure KI-Suche und Azure Storage verwenden möchten, wird der Schlüssel beim Erstellen Ihres Arbeitsbereichs bereitgestellt. Die Schlüssel, die Sie mit Azure Container Instances und Azure Kubernetes Service verwenden, werden bereitgestellt, wenn Sie diese Ressourcen konfigurieren.

Voraussetzungen

  • Ein Azure-Abonnement.

  • Die folgenden Azure-Ressourcenanbieter müssen registriert werden:

    Ressourcenanbieter Zweck
    Microsoft.MachineLearningServices Erstellen des Azure Machine Learning-Arbeitsbereichs
    Microsoft.Storage Das Storage-Konto wird als Standarddatenspeicher für den Arbeitsbereich verwendet.
    Microsoft.KeyVault Azure Key Vault wird vom Arbeitsbereich zum Speichern von Geheimnissen verwendet.
    Microsoft.DocumentDB Azure Cosmos DB-Instanz, die Metadaten für den Arbeitsbereich protokolliert
    Microsoft.Search Azure KI-Suche bietet Indizierungsfunktionen für den Arbeitsbereich.

    Weitere Informationen zum Registrieren eines Ressourcenanbieters finden Sie unter Beheben von Fehlern bei der Ressourcenanbieterregistrierung.

Begrenzungen

  • Nach der Erstellung des Arbeitsbereichs kann der kundenseitig verwaltete Verschlüsselungsschlüssel für Ressourcen, von denen der Arbeitsbereich abhängt, nur auf einen anderen Schlüssel in der ursprünglichen Azure Key Vault-Ressource aktualisiert werden.
  • Für Ressourcen, die von Microsoft in Ihrem Abonnement verwaltet werden, kann der Besitz nicht an Sie übertragen werden.
  • Sie können von Microsoft verwaltete Ressourcen, die für kundenseitig verwaltete Schlüssel verwendet werden, nicht löschen, ohne auch Ihren Arbeitsbereich zu löschen.
  • Der Schlüsseltresor, der Ihren kundenseitig verwalteten Schlüssel enthält, muss sich im selben Azure-Abonnement befinden wie der Azure Machine Learning-Arbeitsbereich.
  • Betriebssystemdatenträger für Machine Learning-Compute-Instanzen können nicht mit einem kundenseitig verwalteten Schlüssel verschlüsselt werden, aber mit einem von Microsoft verwalteten Schlüssel verschlüsselt werden, wenn der Arbeitsbereich mit dem auf TRUE festgelegten hbi_workspace-Parameter erstellt wird. Weitere Informationen finden Sie unter Datenverschlüsselung.

Wichtig

Wenn Sie einen kundenseitig verwalteten Schlüssel verwenden, sind die Kosten für Ihr Abonnement aufgrund der zusätzlichen Ressourcen in Ihrem Abonnement höher. Verwenden Sie den Azure-Preisrechner, um die voraussichtlichen Kosten zu ermitteln.

Azure Key Vault erstellen

Informationen zum Erstellen des Schlüsseltresors finden Sie unter Schnellstart: Erstellen eines Schlüsseltresors über das Azure-Portal. Beim Erstellen der Azure Key Vault-Instanz müssen Sie vorläufiges Löschen und den Schutz vor endgültigem Löschen aktivieren.

Wichtig

Der Schlüsseltresor muss sich in demselben Azure-Abonnement befinden, das Ihren Azure Machine Learning-Arbeitsbereich enthält.

Erstellen eines Schlüssels

Tipp

Wenn beim Erstellen des Schlüssels Probleme auftreten, kann dies durch rollenbasierte Zugriffssteuerungen in Azure verursacht werden, die in Ihrem Abonnement angewendet wurden. Stellen Sie sicher, dass dem Sicherheitsprinzipal (Benutzer, verwaltete Identität, Dienstprinzipal usw.), den Sie zum Erstellen des Schlüssels verwenden, die Rolle Mitwirkender für die Key Vault-Instanz zugewiesen wurde. Darüber hinaus müssen Sie eine Zugriffsrichtlinie in Key Vault konfigurieren, die dem Dienstprinzipal die Autorisierung zum Erstellen, Abrufen, Löschen und Bereinigen erteilt.

Wenn Sie eine benutzerseitig zugewiesene verwaltete Identität für Ihren Arbeitsbereich verwenden möchten, müssen der verwalteten Identität ebenfalls diese Rollen und Zugriffsrichtlinien zugewiesen werden.

Weitere Informationen finden Sie in den folgenden Artikeln:

  1. Wählen Sie im Azure-Portal die Key Vault-Instanz aus. Wählen Sie dann links die Option Schlüssel aus.

  2. Wählen Sie oben auf der Seite + Generieren/Importieren aus. Verwenden Sie die folgenden Werte, um einen Schlüssel zu erstellen:

    • Legen Sie Optionen auf Generieren fest.
    • Geben Sie unter Name einen Namen für den Schlüssel ein. Beim Namen sollte es sich um eine Bezeichnung handeln, die die geplante Verwendung identifiziert. Beispiel: my-cosmos-key.
    • Legen Sie Schlüsseltyp auf RSA fest.
    • Es wird empfohlen, mindestens 3072 als RSA-Schlüsselgröße auszuwählen.
    • Lassen Sie Aktiviert auf „Ja“ festgelegt.

    Optional können Sie ein Aktivierungsdatum, ein Ablaufdatum und Tags festlegen.

  3. Wählen Sie Erstellen aus, um den Schlüssel zu erstellen.

Zulassen des Zugriffs auf den Schlüssel durch Azure Cosmos DB

  1. Wählen Sie zum Konfigurieren des Schlüsseltresors diesen im Azure-Portal aus. Wählen Sie anschließend im linken Menü die Option Zugriffsrichtlinien aus.
  2. Um Berechtigungen für Azure Cosmos DB zu erstellen, wählen Sie oben auf der Seite + Erstellen aus. Wählen Sie unter Schlüsselberechtigungen die Berechtigungen Abrufen, Schlüssel entpacken und Schlüssel packen aus.
  3. Suchen Sie unter Prinzipal nach Azure Cosmos DB, und wählen Sie den Eintrag aus. Die Prinzipal-ID für diesen Eintrag lautet a232010e-820c-4083-83bb-3ace5fc29d0b für alle anderen Regionen als Azure Government. Für Azure Government ist die Prinzipal-ID 57506a73-e302-42a9-b869-6f12d9ec29e9.
  4. Klicken Sie auf Review + Create (Überprüfen und erstellen) und dann auf Create (Erstellen).

Erstellen eines Arbeitsbereichs, der einen kundenseitig verwalteten Schlüssel verwendet

Erstellen Sie einen Azure Machine Learning-Arbeitsbereich. Beim Erstellen des Arbeitsbereichs müssen Sie Azure Key Vault und den Schlüssel auswählen. Je nachdem, wie Sie den Arbeitsbereich erstellen, geben Sie diese Ressourcen auf unterschiedliche Weise an:

Warnung

Der Schlüsseltresor, der Ihren kundenseitig verwalteten Schlüssel enthält, muss sich im selben Azure-Abonnement befinden wie der Arbeitsbereich.

  • Azure-Portal: Wählen Sie den Schlüsseltresor und den Schlüssel beim Konfigurieren des Arbeitsbereichs aus einem Dropdowneingabefeld aus.

  • SDK, REST API und Azure Resource Manager-Vorlagen: Geben Sie die Azure Resource Manager-ID des Schlüsseltresors und die URL für den Schlüssel an. Verwenden Sie zum Abrufen dieser Werte die Azure CLI und die folgenden Befehle:

    # Replace `mykv` with your key vault name.
    # Replace `mykey` with the name of your key.
    
    # Get the Azure Resource Manager ID of the key vault
    az keyvault show --name mykv --query id
    # Get the URL for the key
    az keyvault key show --vault-name mykv -n mykey --query key.kid
    

    Der Wert der Schlüsseltresor-ID ähnelt dem folgenden Format: /subscriptions/{GUID}/resourceGroups/{resource-group-name}/providers/Microsoft.KeyVault/vaults/mykv. Die URL für den Schlüssel sieht ungefähr wie folgt aus: https://mykv.vault.azure.net/keys/mykey/{GUID}.

Beispiele zum Erstellen des Arbeitsbereichs mit einem kundenseitig verwalteten Schlüssel finden Sie in den folgenden Artikeln:

Erstellungsmethode Artikel
Befehlszeilenschnittstelle (CLI) Beispiele für Resource Manager-Vorlagen für Log Analytics-Arbeitsbereiche in Azure Monitor
Azure-Portal/
Python SDK
Erstellen und Verwalten eines Arbeitsbereichs
Azure Resource Manager-
Vorlage
Erstellen eines Arbeitsbereichs mit einer Vorlage
REST-API Erstellen, Ausführen und Löschen von Azure Machine Learning-Ressourcen mit REST

Nachdem der Arbeitsbereich erstellt wurde, werden Sie feststellen, dass die Azure-Ressourcengruppe in Ihrem Abonnement erstellt wird. Diese Gruppe wird zusätzlich zur Ressourcengruppe für Ihren Arbeitsbereich erstellt. Diese Ressourcengruppe enthält die von Microsoft verwalteten Ressourcen, mit denen Ihr Schlüssel verwendet wird. Die Ressourcengruppe wird anhand der Formel <Azure Machine Learning workspace resource group name><GUID> benannt. Sie enthält eine Azure Cosmos DB-Instanz, ein Azure Storage-Konto und Azure KI Search.

Tipp

  • Die Anforderungseinheiten für die Azure Cosmos DB-Instanz werden bei Bedarf automatisch skaliert.
  • Wenn Ihr Azure Machine Learning-Arbeitsbereich einen privaten Endpunkt verwendet, enthält diese Ressourcengruppe auch ein von Microsoft verwaltetes virtuelle Azure-Netzwerk. Dieses VNet wird verwendet, um die Kommunikation zwischen den verwalteten Diensten und dem Arbeitsbereich zu sichern. Sie können kein eigenes VNet für die Verwendung mit den von Microsoft verwalteten Ressourcen bereitstellen. Außerdem können Sie das virtuelle Netzwerk nicht ändern. Beispielsweise können Sie den verwendeten IP-Adressbereich nicht ändern.

Wichtig

Wenn Ihr Abonnement nicht über ein ausreichendes Kontingent für diese Dienste verfügt, tritt ein Fehler auf.

Warnung

Löschen Sie weder die Ressourcengruppe, die diese Azure Cosmos DB-Instanz enthält, noch Ressourcen, die automatisch in dieser Gruppe erstellt wurden. Wenn Sie die Ressourcengruppe oder darin enthaltene von Microsoft verwaltete Dienste löschen müssen, müssen Sie den Azure Machine Learning-Arbeitsbereich löschen, der diese verwendet. Die Ressourcengruppenressourcen werden gelöscht, wenn der zugehörige Arbeitsbereich gelöscht wird.

Weitere Informationen zu kundenseitig verwalteten Schlüsseln mit Azure Cosmos DB finden Sie unter Konfigurieren von kundenseitig verwalteten Schlüsseln für Ihr Azure Cosmos DB-Konto.

Azure Container Instances

Wichtig

Die Bereitstellung in Azure Container Instances ist im SDK oder der CLI v2 nicht verfügbar. Nur über SDK und CLI v1.

Wenn Sie ein trainiertes in einer ACI-Instanz (Azure Container Instances) bereitstellen, können Sie die bereitgestellte Ressource mithilfe eines kundenseitig verwalteten Schlüssels verschlüsseln. Informationen zum Generieren eines Schlüssels finden Sie unter Verschlüsseln von Daten mit einem kundenseitig verwalteten Schlüssel.

Erstellen Sie zur Verwendung des Schlüssels bei der Bereitstellung eines Modells in Azure Container Instance eine neue Bereitstellungskonfiguration mit AciWebservice.deploy_configuration(). Geben Sie die Schlüsselinformationen unter Verwendung der folgenden Parameter an:

  • cmk_vault_base_url: Die URL des Schlüsseltresors, der den Schlüssel enthält.
  • cmk_key_name: Der Name des Schlüssels.
  • cmk_key_version: Die Version des Schlüssels.

Weitere Informationen zum Erstellen und Verwenden einer Bereitstellungskonfiguration finden Sie in den folgenden Artikeln:

Azure Kubernetes Service

Sie können eine bereitgestellte Ressource des Azure Kubernetes Service jederzeit mit vom Kunden verwalteten Schlüsseln verschlüsseln. Weitere Informationen finden Sie unter Bring Your Own Keys (BYOK) mit Azure Kubernetes Service (AKS).

Dieser Prozess ermöglicht es Ihnen, sowohl die Daten als auch den Betriebssystemdatenträger der bereitgestellten virtuellen Computer im Kubernetes-Cluster zu verschlüsseln.

Wichtig

Dieser Prozess funktioniert nur mit AKS K8s Version 1.17 oder höher.

Nächste Schritte