Configurar identidades gerenciadas em pools do Lote

As Identidades Gerenciadas para recursos do Azure eliminam o complicado gerenciamento de credenciais e identidades fornecendo uma identidade para o recurso do Azure no Microsoft Entra ID (ID do Azure AD). Essa identidade é usada para obter tokens do Microsoft Entra e se autenticar nos recursos de destino no Azure.

Este tópico explica como habilitar identidades gerenciadas atribuídas pelo usuário em pools do Lote e como usar identidades gerenciadas dentro dos nós.

Importante

Os pools devem ser configurados usando a Configuração de Máquina Virtual para usar identidades gerenciadas.

A criação de pools com identidades gerenciadas pode ser feita usando a Biblioteca de gerenciamento .NET em lote, mas não é compatível no momento com a Biblioteca cliente .NET em lote.

Criar uma identidade gerenciada atribuída ao usuário

Primeiro, crie sua identidade gerenciada atribuída ao usuário no mesmo locatário da sua conta do Lote. Você pode criar a identidade usando o portal do Azure, a CLI do Azure, o PowerShell, o Azure Resource Manager ou a API REST do Azure. Essa identidade gerenciada não precisa estar no mesmo grupo de recursos e nem na mesma assinatura.

Dica

Uma identidade gerenciada atribuída pelo sistema criada para uma conta de Lote para fins de criptografia de dados do cliente não pode ser usada como uma identidade gerenciada atribuída pelo usuário em um pool do Lote, conforme descrito neste documento. Se quiser usar a mesma identidade gerenciada tanto na conta de Lote quanto no pool de Lote, use uma identidade gerenciada comum atribuída pelo usuário.

Criar um pool do Lote com identidades gerenciadas atribuídas pelo usuário

Depois de criar uma ou mais identidades gerenciadas atribuídas pelo usuário, você pode criar um pool do Lote com essa identidade. Você pode:

Aviso

As atualizações in-loco de identidades gerenciadas pelo pool não têm suporte enquanto o pool conta com nós ativos. Os nós de computação atuais não serão atualizados com as alterações. Recomenda-se reduzir verticalmente o conjunto para zero nós de computação antes de modificar a coleção de identidades, a fim de garantir que todas as VMs tenham as mesmas identidades atribuídas.

Criar pool do Lote no portal do Azure

Para criar um pool do Lote com uma identidade gerenciada atribuída pelo usuário por meio do portal do Azure:

  1. Entre no portal do Azure.
  2. Na barra de pesquisa, insira e selecione contas do Lote.
  3. Na página Contas do Lote, selecione a conta do Lote na qual você deseja criar um pool do Lote.
  4. No menu da conta do Lote, em Recursos, selecione Pools.
  5. No menu Pools, selecione Adicionar para adicionar um novo pool do Lote.
  6. Para a ID do pool, insira um identificador para o pool.
  7. Para Identidade, altere a configuração para Usuário atribuído.
  8. Em Identidade gerenciada atribuída pelo usuário, selecione Adicionar.
  9. Selecione a identidade gerenciada atribuída pelo usuário que você deseja usar. Em seguida, selecione Adicionar.
  10. Em Sistema Operacional, selecione o distribuidor, a oferta e a SKU a serem usados.
  11. Opcionalmente, habilite a identidade gerenciada no registro de contêiner:
    1. Para Configuração de contêiner, altere a configuração para Personalizado. Em seguida, selecione sua configuração personalizada.
    2. Para Tarefa inicial, selecione Habilitado. Em seguida, selecione Arquivos de recurso e adicione suas informações de contêiner de armazenamento.
    3. Habilite Configurações de contêiner.
    4. Altere Registro de contêiner para Personalizado
    5. Para Referência de identidade, selecione o contêiner de armazenamento.

Criar pool do Lote com .NET

Para criar um pool do Lote com uma identidade gerenciada atribuída pelo usuário com a biblioteca de gerenciamento do .NET do Lote, use o seguinte código de exemplo:

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

Usar identidades gerenciadas atribuídas pelo usuário em nós do Lote

Muitas tecnologias do Lote do Azure que acessam outros recursos do Azure diretamente nos nós de computação, como o Armazenamento do Azure ou o Registro de Contêiner do Azure, dão suporte a identidades gerenciadas. Para saber mais sobre como usar identidades gerenciadas com o Lote do Azure, confira os seguintes links:

Você também pode configurar manualmente suas tarefas para que as identidades gerenciadas possam acessar diretamente os recursos do Azure que dão suporte a identidades gerenciadas.

Nos nós em Lote você pode obter tokens de identidade gerenciada e usá-los para se autenticar por meio da autenticação do Microsoft Entra usando o Serviço de Metadados da Instância do Azure.

Para o Windows, o script do PowerShell para obter um token de acesso para autenticação é:

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

Para o Linux, o script Bash é:

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

Para obter mais informações, confira Como usar identidades gerenciadas para recursos do Azure em uma VM do Azure para adquirir um token de acesso.

Próximas etapas