Konfigurowanie tożsamości zarządzanych w pulach usługi Batch

Tożsamości zarządzane dla zasobów platformy Azure eliminują skomplikowane zarządzanie tożsamościami i poświadczeniami, zapewniając tożsamość zasobu platformy Azure w usłudze Microsoft Entra ID (identyfikator usługi Azure AD). Ta tożsamość służy do uzyskiwania tokenów usługi Microsoft Entra do uwierzytelniania za pomocą zasobów docelowych na platformie Azure.

W tym temacie wyjaśniono, jak włączyć tożsamości zarządzane przypisane przez użytkownika w pulach usługi Batch oraz jak używać tożsamości zarządzanych w węzłach.

Ważne

Aby można było używać tożsamości zarządzanych, należy skonfigurować pule przy użyciu konfiguracji maszyny wirtualnej.

Tworzenie pul z tożsamościami zarządzanymi można wykonać przy użyciu biblioteki zarządzania platformy .NET usługi Batch, ale nie jest obecnie obsługiwane w bibliotece klienta platformy .NET usługi Batch.

Tworzenie tożsamości zarządzanej przypisanej przez użytkownika

Najpierw utwórz tożsamość zarządzaną przypisaną przez użytkownika w tej samej dzierżawie co konto usługi Batch. Tożsamość można utworzyć przy użyciu witryny Azure Portal, interfejsu wiersza polecenia platformy Azure (interfejsu wiersza polecenia platformy Azure), programu PowerShell, usługi Azure Resource Manager lub interfejsu API REST platformy Azure. Ta tożsamość zarządzana nie musi znajdować się w tej samej grupie zasobów, a nawet w tej samej subskrypcji.

Napiwek

Tożsamość zarządzana przypisana przez system utworzona dla konta usługi Batch na potrzeby szyfrowania danych klienta nie może być używana jako tożsamość zarządzana przypisana przez użytkownika w puli usługi Batch zgodnie z opisem w tym dokumencie. Jeśli chcesz użyć tej samej tożsamości zarządzanej zarówno na koncie usługi Batch, jak i w puli usługi Batch, użyj zamiast tego wspólnej tożsamości zarządzanej przypisanej przez użytkownika.

Tworzenie puli usługi Batch z tożsamościami zarządzanymi przypisanymi przez użytkownika

Po utworzeniu co najmniej jednej tożsamości zarządzanej przypisanej przez użytkownika możesz utworzyć pulę usługi Batch przy użyciu tej tożsamości lub tych tożsamości. Masz następujące możliwości:

Ostrzeżenie

Aktualizacje tożsamości zarządzanych w miejscu puli nie są obsługiwane, gdy pula ma aktywne węzły. Istniejące węzły obliczeniowe nie zostaną zaktualizowane o zmiany. Zaleca się skalowanie puli w dół do zera węzłów obliczeniowych przed zmodyfikowaniem kolekcji tożsamości, aby upewnić się, że wszystkie maszyny wirtualne mają przypisany ten sam zestaw tożsamości.

Tworzenie puli usługi Batch w witrynie Azure Portal

Aby utworzyć pulę usługi Batch z tożsamością zarządzaną przypisaną przez użytkownika za pośrednictwem witryny Azure Portal:

  1. Zaloguj się w witrynie Azure Portal.
  2. Na pasku wyszukiwania wprowadź i wybierz pozycję Konta usługi Batch.
  3. Na stronie Konta usługi Batch wybierz konto usługi Batch, na którym chcesz utworzyć pulę usługi Batch.
  4. W menu konta usługi Batch w obszarze Funkcje wybierz pozycję Pule.
  5. W menu Pule wybierz pozycję Dodaj, aby dodać nową pulę usługi Batch.
  6. W polu Identyfikator puli wprowadź identyfikator puli.
  7. W polu Tożsamość zmień ustawienie na Użytkownik przypisany.
  8. W obszarze Tożsamość zarządzana przypisana przez użytkownika wybierz pozycję Dodaj.
  9. Wybierz tożsamość zarządzaną lub tożsamości przypisane przez użytkownika, których chcesz użyć. Następnie wybierz pozycję Dodaj.
  10. W obszarze System operacyjny wybierz wydawcę, ofertę i jednostkę SKU do użycia.
  11. Opcjonalnie włącz tożsamość zarządzaną w rejestrze kontenerów:
    1. W polu Konfiguracja kontenera zmień ustawienie na Niestandardowe. Następnie wybierz konfigurację niestandardową.
    2. W obszarze Uruchom zadanie wybierz pozycję Włączone. Następnie wybierz pozycję Pliki zasobów i dodaj informacje o kontenerze magazynu.
    3. Włącz ustawienia kontenera.
    4. Zmień rejestr kontenerów na niestandardowy
    5. W polu Dokumentacja tożsamości wybierz kontener magazynu.

Tworzenie puli usługi Batch przy użyciu platformy .NET

Aby utworzyć pulę usługi Batch z tożsamością zarządzaną przypisaną przez użytkownika przy użyciu biblioteki zarządzania platformy .NET usługi Batch, użyj następującego przykładowego kodu:

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);

Używanie tożsamości zarządzanych przypisanych przez użytkownika w węzłach usługi Batch

Wiele funkcji usługi Azure Batch, które uzyskują dostęp do innych zasobów platformy Azure bezpośrednio w węzłach obliczeniowych, takich jak Azure Storage lub Azure Container Registry, obsługują tożsamości zarządzane. Aby uzyskać więcej informacji na temat korzystania z tożsamości zarządzanych w usłudze Azure Batch, zobacz następujące linki:

Możesz również ręcznie skonfigurować zadania, aby tożsamości zarządzane mogły bezpośrednio uzyskiwać dostęp do zasobów platformy Azure obsługujących tożsamości zarządzane.

W węzłach usługi Batch można uzyskać tokeny tożsamości zarządzanej i używać ich do uwierzytelniania za pośrednictwem uwierzytelniania w usłudze Microsoft Entra za pośrednictwem usługi Azure Instance Metadata Service.

W przypadku systemu Windows skrypt programu PowerShell umożliwiający uzyskanie tokenu dostępu do uwierzytelniania jest następujący:

$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"}

W przypadku systemu Linux skrypt powłoki Bash to:

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

Aby uzyskać więcej informacji, zobacz How to use managed identities for Azure resources on an Azure VM to acquire an access token (Jak używać tożsamości zarządzanych dla zasobów platformy Azure na maszynie wirtualnej platformy Azure w celu uzyskania tokenu dostępu).

Następne kroki