Konfigurieren verwalteter Identitäten in Azure Batch-Pools

Verwaltete Identitäten für Azure-Ressourcen machen eine komplizierte Identitäts- und Berechtigungsverwaltung überflüssig, indem sie eine Identität für die Azure-Ressource in Microsoft Entra ID (Azure AD ID) bereitstellen. Diese Identität wird verwendet, um Microsoft Entra-Token zu erhalten, um sich bei Zielressourcen in Azure zu authentifizieren.

In diesem Thema wird erläutert, wie Sie benutzerseitig zugewiesene verwaltete Identitäten auf Azure Batch-Pools aktivieren und verwaltete Identitäten innerhalb der Knoten verwenden.

Wichtig

Pools müssen über die VM-Konfiguration konfiguriert werden, um verwaltete Identitäten verwenden zu können.

Das Erstellen von Pools mit verwalteten Identitäten kann mithilfe der Batch .NET-Verwaltungsbibliothek erfolgen, wird aber derzeit nicht von der Batch .NET-Clientbibliothek unterstützt.

Erstellen einer benutzerseitig zugewiesenen verwalteten Identität

Erstellen Sie zunächst Ihre benutzerseitig zugewiesene verwaltete Identität im selben Mandanten wie Ihr Azure Batch-Konto. Sie können die Identität über das Azure-Portal, die Azure-Befehlszeilenschnittstelle (Azure CLI), PowerShell, Azure Resource Manager oder die Azure-REST-API erstellen. Diese verwaltete Identität muss sich nicht in der gleichen Ressourcengruppe oder sogar im gleichen Abonnement befinden.

Tipp

Eine systemseitig zugewiesene verwaltete Identität, die für ein Batch-Konto zur Verschlüsselung von Kundendaten erstellt wurde, kann nicht als benutzerseitig zugewiesene verwaltete Identität in einem Batch-Pool verwendet werden, wie in diesem Dokument beschrieben. Wenn Sie dieselbe verwaltete Identität sowohl für das Batch-Konto als auch für den Batch-Pool verwenden möchten, verwenden Sie stattdessen eine gemeinsame benutzerseitig zugewiesene verwaltete Identität.

Erstellen eines Azure Batch-Pools mit benutzerseitig zugewiesenen verwalteten Identitäten

Nachdem Sie eine oder mehrere benutzerseitig zugewiesene verwaltete Identitäten erstellt haben, können Sie einen Batch-Pool mit diesen Identitäten erstellen. Ihre Möglichkeiten:

Warnung

Direkte Aktualisierungen von verwalteten Poolidentitäten werden nicht unterstützt, während der Pool über aktive Knoten verfügt. Vorhandene Serverknoten werden nicht mit Änderungen aktualisiert. Es wird empfohlen, den Pool auf null Serverknoten zu skalieren, bevor Sie die Identitätssammlung ändern, um sicherzustellen, dass allen VMs derselbe Satz von Identitäten zugewiesen ist.

Erstellen eines Batch-Pools über das Azure-Portal

So erstellen Sie einen Batch-Pool mit einer benutzerseitig zugewiesenen verwalteten Identität über das Azure-Portal

  1. Melden Sie sich am Azure-Portal an.
  2. Geben Sie in die Suchleiste ein und wählen Sie Batch-Konten.
  3. Wählen Sie auf der Seite Batch-Konten das Batch-Konto aus, unter dem Sie einen Batch-Pool erstellen möchten.
  4. Wählen Sie im Menü für das Batch-Konto unter Funktionen die Option Pools aus.
  5. Wählen Sie im Menü Pools die Option Hinzufügen aus, um einen neuen Batch-Pool hinzuzufügen.
  6. Geben Sie als Pool-ID einen Bezeichner für Ihren Pool ein.
  7. Ändern Sie die Einstellung für Identität in Benutzerseitig zugewiesen.
  8. Wählen Sie unter Benutzerseitig zugewiesene verwaltete IdentitätHinzufügen aus.
  9. Wählen Sie die gewünschten benutzerseitig zugewiesenen verwalteten Identitäten aus. Klicken Sie anschließend auf Hinzufügen.
  10. Wählen Sie unter Betriebssystem den Herausgeber, das Angebot und die SKU aus, die verwendet werden sollen.
  11. Aktivieren Sie optional die verwaltete Identität in der Containerregistrierung:
    1. Ändern Sie die Einstellung für Containerkonfiguration in Benutzerdefiniert. Wählen Sie dann Ihre benutzerdefinierte Konfiguration aus.
    2. Wählen Sie für Starttask die Option Aktiviert aus. Wählen Sie dann Ressourcendateien aus, und fügen Sie die Informationen Ihres Speichercontainers hinzu.
    3. Aktivieren Sie Containereinstellungen.
    4. Ändern Sie die Containerregistrierung in Benutzerdefiniert.
    5. Wählen Sie für Identitätsverweis den Speichercontainer aus.

Erstellen eines Batch-Pools mit .NET

Verwenden Sie zum Erstellen eines Batch-Pools mit einer benutzerseitig zugewiesenen verwalteten Identität mit der Batch-.NET-Verwaltungsbibliothek den folgenden Beispielcode:

var poolParameters = new Pool(name: "yourPoolName")
    {
        VmSize = "standard_d2_v3",
        ScaleSettings = new ScaleSettings
        {
            FixedScale = new FixedScaleSettings
            {
                TargetDedicatedNodes = 1
            }
        },
        DeploymentConfiguration = new DeploymentConfiguration
        {
            VirtualMachineConfiguration = new VirtualMachineConfiguration(
                new ImageReference(
                    "Canonical",
                    "0001-com-ubuntu-server-jammy",
                    "22_04-lts",
                    "latest"),
                "batch.node.ubuntu 22.04")
        },
        Identity = new BatchPoolIdentity
        {
            Type = PoolIdentityType.UserAssigned,
            UserAssignedIdentities = new Dictionary<string, UserAssignedIdentities>
            {
                ["Your Identity Resource Id"] =
                    new UserAssignedIdentities()
            }
        }
    };

var pool = await managementClient.Pool.CreateWithHttpMessagesAsync(
    poolName:"yourPoolName",
    resourceGroupName: "yourResourceGroupName",
    accountName: "yourAccountName",
    parameters: poolParameters,
    cancellationToken: default(CancellationToken)).ConfigureAwait(false);

Verwenden benutzerseitig zugeordneter verwalteter Identitäten in Azure Batch-Knoten

Viele Azure Batch-Funktionen, die direkt auf andere Azure-Ressourcen auf den Rechenknoten zugreifen, wie Azure Storage oder Azure Container Registry, unterstützen verwaltete Identitäten. Weitere Informationen zur Nutzung verwalteter Identitäten mit Azure Batch finden Sie unter folgenden Links:

Sie können Ihre Tasks auch manuell so konfigurieren, dass die verwalteten Identitäten direkt auf Azure-Ressourcen, die verwaltete Identitäten unterstützen zugreifen können.

Innerhalb der Azure Batch-Knoten können Sie Token der verwalteten Identität abrufen und zur Authentifizierung durch Microsoft Entra -Authentifizierung über den Azure Instance Metadata Service verwenden.

Für Windows lautet das PowerShell-Skript zum Abrufen eines Zugriffstokens für die Authentifizierung wie folgt:

$Response = Invoke-RestMethod -Uri 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource={Resource App Id Url}' -Method GET -Headers @{Metadata="true"}

Für Linux lautet das Bash-Skript wie folgt:

curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource={Resource App Id Url}' -H Metadata:true

Weitere Informationen finden Sie unter Verwenden von verwalteten Identitäten für Azure-Ressourcen auf einem virtuellen Azure-Computer zum Abrufen eines Zugriffstokens.

Nächste Schritte