Configure ou desative o acesso remoto aos nóns computacional numa piscina do Azure BatchConfigure or disable remote access to compute nodes in an Azure Batch pool

Por predefinição, o Batch permite que um utilizador de nó com conectividade de rede se conecte externamente a um nó de computação num pool de Lote.By default, Batch allows a node user with network connectivity to connect externally to a compute node in a Batch pool. Por exemplo, um utilizador pode ligar-se por Remote Desktop (RDP) na porta 3389 a um nó de computação numa piscina do Windows.For example, a user can connect by Remote Desktop (RDP) on port 3389 to a compute node in a Windows pool. Da mesma forma, por padrão, um utilizador pode ligar-se por Secure Shell (SSH) na porta 22 a um nó computacional numa piscina Linux.Similarly, by default, a user can connect by Secure Shell (SSH) on port 22 to a compute node in a Linux pool.

No seu ambiente, poderá ser necessário restringir ou desativar estas definições de acesso externo predefinido.In your environment, you might need to restrict or disable these default external access settings. Pode modificar estas definições utilizando as APIs do lote para definir a propriedade PoolEndpointConfiguration.You can modify these settings by using the Batch APIs to set the PoolEndpointConfiguration property.

Sobre a configuração do ponto final da piscinaAbout the pool endpoint configuration

A configuração do ponto final consiste em uma ou mais piscinas de tradução de endereços de rede (NAT) de portas frontend.The endpoint configuration consists of one or more network address translation (NAT) pools of frontend ports. (Não confunda uma piscina NAT com o lote de nós computacional.) Configurar cada piscina NAT para anular as definições de ligação predefinidos nos nós de cálculo da piscina.(Do not confuse a NAT pool with the Batch pool of compute nodes.) You set up each NAT pool to override the default connection settings on the pool's compute nodes.

Cada configuração da piscina NAT inclui uma ou mais regras do grupo de segurança de rede (NSG).Each NAT pool configuration includes one or more network security group (NSG) rules. Cada regra NSG permite ou nega determinado tráfego de rede para o ponto final.Each NSG rule allows or denies certain network traffic to the endpoint. Pode optar por permitir ou negar todo o tráfego, tráfego identificado por uma etiqueta de serviço (como "Internet"), ou tráfego a partir de endereços IP específicos ou sub-redes.You can choose to allow or deny all traffic, traffic identified by a service tag (such as "Internet"), or traffic from specific IP addresses or subnets.

ConsideraçõesConsiderations

  • A configuração do ponto final da piscina faz parte da configuraçãode rede da piscina.The pool endpoint configuration is part of the pool's network configuration. A configuração da rede pode opcionalmente incluir configurações para juntar a piscina a uma rede virtual Azure.The network configuration can optionally include settings to join the pool to an Azure virtual network. Se configurar o pool numa rede virtual, pode criar regras NSG que utilizam definições de endereços na rede virtual.If you set up the pool in a virtual network, you can create NSG rules that use address settings in the virtual network.
  • Você pode configurar várias regras NSG quando configurar uma piscina NAT.You can configure multiple NSG rules when you configure a NAT pool. As regras são verificadas na ordem de prioridade.The rules are checked in the order of priority. Quando for aplicada uma regra, não são testadas mais regras para correspondência.Once a rule applies, no more rules are tested for matching.

Exemplo: Negar todo o tráfego RDPExample: Deny all RDP traffic

O seguinte corte C# mostra como configurar o ponto final RDP em nós de computação numa piscina do Windows para negar todo o tráfego de rede.The following C# snippet shows how to configure the RDP endpoint on compute nodes in a Windows pool to deny all network traffic. O ponto final utiliza uma piscina frontal de portas na gama 60000 - 60099.The endpoint uses a frontend pool of ports in the range 60000 - 60099.

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 internetExample: Deny all SSH traffic from the internet

O seguinte snippet Python mostra como configurar o ponto final SSH em nós computativos em uma piscina Linux para negar todo o tráfego de internet.The following Python snippet shows how to configure the SSH endpoint on compute nodes in a Linux pool to deny all internet traffic. O ponto final utiliza uma piscina frontal de portas na gama 4000 - 4100.The endpoint uses a frontend pool of ports in the range 4000 - 4100.

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'
                )
            ]
        )
        ]
    )
)

Exemplo: Permitir o tráfego rdp a partir de um endereço IP específicoExample: Allow RDP traffic from a specific IP address

O seguinte corte C# mostra como configurar o ponto final RDP em nós computacional numa piscina windows para permitir o acesso rdp apenas a partir do endereço IP 198.51.100.7.The following C# snippet shows how to configure the RDP endpoint on compute nodes in a Windows pool to allow RDP access only from IP address 198.51.100.7. A segunda regra NSG nega o tráfego que não corresponde ao endereço IP.The second NSG rule denies traffic that does not match the IP address.

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.51.100.7"),
            new NetworkSecurityGroupRule(180,NetworkSecurityGroupRuleAccess.Deny, "*")
        })
    })    
};

Exemplo: Permitir o tráfego SSH a partir de uma sub-rede específicaExample: Allow SSH traffic from a specific subnet

O seguinte snippet Python mostra como configurar o ponto final SSH em nós computativos numa piscina Linux para permitir o acesso apenas a partir da sub-rede 192.168.1.0/24.The following Python snippet shows how to configure the SSH endpoint on compute nodes in a Linux pool to allow access only from the subnet 192.168.1.0/24. A segunda regra NSG nega o tráfego que não corresponde à sub-rede.The second NSG rule denies traffic that does not match the subnet.

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='*'
                )
            ]
        )
        ]
    )
)

Passos seguintesNext steps