Compartilhar via


Configurar o acesso remoto a nós de computação em um pool do Lote do Azure

Se configurado, você pode permitir que um usuário de nó com conectividade de rede se conecte externamente a um nó de computação em um pool de Lote. Por exemplo, um usuário pode se conectar por RDP (Área de Trabalho Remota) na porta 3389 a um nó de computação em um pool do Windows. Da mesma forma, por padrão, um usuário pode se conectar por SSH (Secure Shell) na porta 22 a um nó de computação em um pool de Linux.

Observação

A partir da versão 2024-07-01 da API (e de todos os pools criados após 30 de novembro de 2025, independentemente da versão da API), o Lote deixou de mapear automaticamente as portas de acesso remoto comuns para SSH e RDP. Se quiser permitir acesso remoto aos nós de computação do seu Lote com pools criados com a versão 2024-07-01 da API ou posterior (e após 30 de novembro de 2025), você precisará configurar o ponto de extremidade do pool manualmente para habilitar esse acesso.

No seu ambiente, talvez seja necessário habilitar, restringir ou desabilitar as configurações de acesso externo ou qualquer outra porta desejada no pool de Lote. Você pode modificar essas configurações usando as APIs de Lote para definir a propriedade PoolEndpointConfiguration.

Configuração de ponto de extremidade do pool de Lote

A configuração de ponto de extremidade consiste em um ou mais pools de NAT (Conversão de Endereços de Rede) de portas de front-end. Não confunda um pool de NAT com o pool de Lote de nós de computação. Você pode configurar cada pool de NAT para substituir as configurações de conexão padrão nos nós de computação do pool.

Cada configuração de pool de NAT inclui uma ou mais Regras de NSG (Grupo de Segurança de Rede). Cada regra de NSG permite ou nega determinado tráfego de rede para o ponto de extremidade. Você pode optar por permitir ou negar todo o tráfego, o tráfego identificado por uma marca de serviço (como "Internet") ou o tráfego de endereços IP ou sub-redes específicas.

Considerações

  • A configuração de ponto de extremidade do pool é parte da configuração de rede do pool. A configuração de rede, opcionalmente, pode incluir configurações para ingressar o pool em uma rede virtual do Azure. Se você configurar o pool em uma rede virtual, poderá criar regras de NSG que usarão configurações de endereço na rede virtual.
  • Você pode configurar várias regras de NSG ao configurar um pool de NAT. As regras são verificadas na ordem de prioridade. Depois que uma regra se aplica, outras regras não são testadas quanto à correspondência.

Exemplo: Permitir o tráfego RDP de um endereço IP específico

O seguinte trecho de código em C# mostra como configurar o ponto de extremidade RDP em nós de computação em um pool do Windows para permitir acesso via RDP apenas a partir do endereço IP 198.168.100.7. A segunda regra do NSG nega o tráfego que não corresponde ao endereço IP.

using Microsoft.Azure.Batch;
using Microsoft.Azure.Batch.Common;

namespace AzureBatch
{
    public void SetPortsPool()
    {
        pool.NetworkConfiguration = new NetworkConfiguration
        {
            EndpointConfiguration = new PoolEndpointConfiguration(new InboundNatPool[]
            {
                new InboundNatPool("RDP", InboundEndpointProtocol.Tcp, 3389, 7500, 8000, new NetworkSecurityGroupRule[]
                {
                    new NetworkSecurityGroupRule(179, NetworkSecurityGroupRuleAccess.Allow, "198.168.100.7"),
                    new NetworkSecurityGroupRule(180, NetworkSecurityGroupRuleAccess.Deny, "*")
                })
            })
        };
    }
}

Exemplo: Permitir o tráfego SSH de uma sub-rede específica

O seguinte snippet de código do Python mostra como configurar o ponto de extremidade SSH em nós de computação em um pool do Linux para permitir acesso somente da sub-rede 192.168.1.0/24. A segunda regra do NSG nega o tráfego que não corresponde à sub-rede.

from azure.batch import models as batchmodels

class AzureBatch(object):
    def set_ports_pool(self, **kwargs):
        pool.network_configuration = batchmodels.NetworkConfiguration(
            endpoint_configuration=batchmodels.PoolEndpointConfiguration(
                inbound_nat_pools=[batchmodels.InboundNATPool(
                    name='SSH',
                    protocol='tcp',
                    backend_port=22,
                    frontend_port_range_start=4000,
                    frontend_port_range_end=4100,
                    network_security_group_rules=[
                        batchmodels.NetworkSecurityGroupRule(
                            priority=170,
                            access='allow',
                            source_address_prefix='192.168.1.0/24'
                        ),
                        batchmodels.NetworkSecurityGroupRule(
                            priority=175,
                            access='deny',
                            source_address_prefix='*'
                        )
                    ]
                )
                ]
            )
        )

Exemplo: Negar todo o tráfego de RDP

O seguinte snippet código de C# mostra como configurar o ponto de extremidade RDP em nós de computação em um pool do Windows para negar todo o tráfego de rede. O ponto de extremidade usa um pool do front-end de portas no intervalo 60000-60099.

Observação

A partir da versão 2024-07-01 da API do Lote, a porta 3389, normalmente associada ao RDP, deixou de ser mapeada por padrão. Não é mais necessário criar uma regra de negação explícita caso o acesso à Internet não seja necessário para pools de Lote criados com esta versão da API ou posterior. No entanto, você ainda pode precisar especificar regras de negação explícitas para restringir o acesso de outras fontes.

using Microsoft.Azure.Batch;
using Microsoft.Azure.Batch.Common;

namespace AzureBatch
{
    public void SetPortsPool()
    {
        pool.NetworkConfiguration = new NetworkConfiguration
        {
            EndpointConfiguration = new PoolEndpointConfiguration(new InboundNatPool[]
            {
              new InboundNatPool("RDP", InboundEndpointProtocol.Tcp, 3389, 60000, 60099, new NetworkSecurityGroupRule[]
                {
                    new NetworkSecurityGroupRule(162, NetworkSecurityGroupRuleAccess.Deny, "*"),
                })
            })
        };
    }
}

Exemplo: Negar todo o tráfego SSH da Internet

O seguinte snippet código de Python mostra como configurar o ponto de extremidade SSH em nós de computação em um pool do Linux para negar todo o tráfego da Internet. O ponto de extremidade usa um pool do front-end de portas no intervalo 4000-4100.

Observação

A partir da versão 2024-07-01 da API do Lote, a porta 22, normalmente associada ao SSH, deixou de ser mapeada por padrão. Não é mais necessário criar uma regra de negação explícita caso o acesso à Internet não seja necessário para pools de Lote criados com esta versão da API ou posterior. No entanto, você ainda pode precisar especificar regras de negação explícitas para restringir o acesso de outras fontes.

from azure.batch import models as batchmodels

class AzureBatch(object):
    def set_ports_pool(self, **kwargs):
        pool.network_configuration = batchmodels.NetworkConfiguration(
            endpoint_configuration=batchmodels.PoolEndpointConfiguration(
                inbound_nat_pools=[batchmodels.InboundNATPool(
                    name='SSH',
                    protocol='tcp',
                    backend_port=22,
                    frontend_port_range_start=4000,
                    frontend_port_range_end=4100,
                    network_security_group_rules=[
                        batchmodels.NetworkSecurityGroupRule(
                            priority=170,
                            access=batchmodels.NetworkSecurityGroupRuleAccess.deny,
                            source_address_prefix='Internet'
                        )
                    ]
                )
                ]
            )
        )

Próximas etapas