Verwenden von Geheimnissen als Anmeldeinformationen für die Authentifizierung in Azure Machine Learning-Aufträgen

GILT FÜR: Python SDK azure-ai-ml v2 (aktuell)

Authentifizierungsinformationen (wie etwa Ihr Benutzername und Ihr Kennwort) sind Geheimnisse. Wenn Sie beispielsweise eine Verbindung mit einer externen Datenbank herstellen möchten, um Trainingsdaten abzufragen, müssen Sie Ihren Benutzernamen und Ihr Kennwort an den Kontext des Remoteauftrags übergeben. Das Codieren solcher Werte in Trainingsskripts in Klartext ist unsicher, da so das Geheimnis möglicherweise verfügbar gemacht wird.

Mit Azure-Key Vault können Sie Geheimnisse sicher speichern und abrufen. In diesem Artikel erfahren Sie, wie Sie in einem Schlüsseltresor gespeicherte Geheimnisse aus einem Trainingsauftrag abrufen können, der auf einem Computecluster ausgeführt wird.

Wichtig

Das Azure Machine Learning Python SDK v2 und die Azure CLI-Erweiterung v2 für maschinelles Lernen bieten nicht die Möglichkeit, Geheimnisse festzulegen oder abzurufen. Stattdessen wird in diesem Artikel die Azure Key Vault Secrets-Clientbibliothek für Python verwendet.

Voraussetzungen

Stellen Sie vor dem Ausführen der Schritte in diesem Artikel sicher, dass Sie über die folgenden erforderlichen Komponenten verfügen:

Tipp

Viele der Voraussetzungen in diesem Abschnitt erfordern die Rollen Mitwirkender, Besitzer oder gleichwertigen Zugriff auf Ihr Azure-Abonnement oder die Azure-Ressourcengruppe, die die Ressourcen enthält. Möglicherweise müssen Sie Ihre*n Azure-Administrator*in kontaktieren, damit diese*r die Aktion ausführt.

  • Ein Azure-Abonnement. Wenn Sie nicht über ein Azure-Abonnement verfügen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen. Probieren Sie die kostenlose oder kostenpflichtige Version von Azure Machine Learning aus.

  • Ein Azure Machine Learning-Arbeitsbereich. Wenn Sie keine haben, befolgen Sie die Schritte im Artikel Ressourcen erstellen, um zu beginnen. um eine zu erstellen.

  • Ein Azure Key Vault. Wenn Sie den Artikel Ressource erstellen, um zu beginnen zum Erstellen Ihres Arbeitsbereichs verwendet haben, wurde für Sie ein Schlüsseltresor erstellt. Sie können auch eine separate Schlüsseltresorinstanz mithilfe der Informationen im Artikel Schnellstart: Erstellen eines Schlüsseltresors erstellen.

    Tipp

    Sie müssen nicht den gleichen Schlüsseltresor wie der Arbeitsbereich verwenden.

  • Ein Azure Machine Learning-Computecluster, der für die Verwendung einer verwalteten Identität konfiguriert ist. Der Cluster kann entweder für eine vom System zugewiesene oder vom Benutzer zugewiesene verwaltete Identität konfiguriert werden.

  • Gewähren Sie der verwalteten Identität für den Computecluster Zugriff auf die im Schlüsseltresor gespeicherten Geheimnisse. Die Methode, die zum Gewähren des Zugriffs verwendet wird, hängt davon ab, wie Ihr Schlüsseltresor konfiguriert ist:

    • Rollenbasierte Azure-Zugriffssteuerung (Azure RBAC): Fügen Sie bei der Konfiguration für Azure RBAC die verwaltete Identität zur Rolle Key Vault-Geheimnisbenutzer auf Ihrem Schlüsseltresor hinzu.
    • Azure Key Vault-Zugriffsrichtlinie: Wenn sie für die Verwendung von Zugriffsrichtlinien konfiguriert sind, fügen Sie eine neue Richtlinie hinzu, die den get-Vorgang (Abrufvorgang) für Geheimnisse gewährt, und weisen Sie sie der verwalteten Identität zu.
  • Ein gespeichertes Geheimnis im Schlüsseltresor. Dieser Wert kann dann mithilfe eines Schlüssels abgerufen werden. Weitere Informationen finden Sie unter Schnellstart: Festlegen eines Geheimnisses und Abrufen des Geheimnisses aus Azure Key Vault.

    Tipp

    Der Schnellstartlink besteht aus den Schritten für die Verwendung des Azure Key Vault Python SDK. Im Inhaltsverzeichnis im linken Navigationsbereich sind Links zu anderen Möglichkeiten zum Festlegen eines Schlüssels.

Abrufen von Geheimnissen

  1. Fügen Sie der Azure Machine Learning-Umgebung, die zum Trainieren des Modells verwendet wird, die Pakete azure-keyvault-secrets und azure-identity hinzu. Sie können sie beispielsweise der conda-Datei hinzufügen, die zum Erstellen der Umgebung verwendet wird.

    Die Umgebung wird verwendet, um das Docker-Image zu erstellen, in dem der Trainingsauftrag im Computecluster ausgeführt wird.

  2. Verwenden Sie aus Ihrem Trainingscode das Azure Identity SDK und die Key Vault-Clientbibliothek, um die Anmeldeinformationen für verwaltete Identitäten abzurufen und sich beim Schlüsseltresor zu authentifizieren:

    from azure.identity import DefaultAzureCredential
    from azure.keyvault.secrets import SecretClient
    
    credential = DefaultAzureCredential()
    
    secret_client = SecretClient(vault_url="https://my-key-vault.vault.azure.net/", credential=credential)
    
  3. Verwenden Sie nach der Authentifizierung die Key Vault-Clientbibliothek, um ein Geheimnis abzurufen, indem Sie den zugeordneten Schlüssel bereitstellen:

    secret = secret_client.get_secret("secret-name")
    print(secret.value)
    

Nächste Schritte

Ein Beispiel für das Übermitteln eines Trainingsauftrags mithilfe des Azure Machine Learning Python SDK v2 finden Sie unter Trainieren von Modellen mit dem Python SDK v2.