Sdílet prostřednictvím


Konfigurace vzdáleného přístupu k výpočetním uzlům ve fondu Azure Batch

Pokud je nakonfigurovaná, můžete uživateli uzlu s připojením k síti povolit externí připojení k výpočetnímu uzlu ve fondu Batch. Uživatel se například může připojit přes vzdálenou plochu (RDP) na portu 3389 k výpočetnímu uzlu ve fondu Windows. Podobně se ve výchozím nastavení může uživatel připojit přes Secure Shell (SSH) na portu 22 k výpočetnímu uzlu ve fondu Linuxu.

Poznámka:

Od verze 2024-07-01 rozhraní API (a všech fondů vytvořených po 30. listopadu 2025 bez ohledu na verzi rozhraní API) už batch automaticky nenamapuje běžné porty vzdáleného přístupu pro SSH a RDP. Pokud chcete povolit vzdálený přístup k výpočetním uzlům Služby Batch s fondy vytvořenými pomocí verze 2024-07-01 rozhraní API nebo novější (a po 30. listopadu 2025), musíte ručně nakonfigurovat konfiguraci koncového bodu fondu, aby takový přístup povolil.

Ve vašem prostředí možná budete muset povolit, omezit nebo zakázat nastavení externího přístupu nebo jakékoli jiné porty, které chcete mít ve fondu Batch. Tato nastavení můžete upravit pomocí rozhraní API služby Batch a nastavit vlastnost PoolEndpointConfiguration .

Konfigurace koncového bodu fondu Batch

Konfigurace koncového bodu se skládá z jednoho nebo více fondů překladu adres (NAT) front-endových portů. Nezaměňujte fond překladu adres (NAT) s fondem batch výpočetních uzlů. Každý fond překladu adres (NAT) nastavíte tak, aby přepsaly výchozí nastavení připojení na výpočetních uzlech fondu.

Každá konfigurace fondu NAT zahrnuje jedno nebo více pravidel skupiny zabezpečení sítě (NSG). Každé pravidlo NSG povoluje nebo zakazuje určité síťové přenosy do koncového bodu. Můžete se rozhodnout povolit nebo zakázat veškerý provoz, provoz identifikovaný značkou služby (například Internet) nebo provoz z konkrétních IP adres nebo podsítí.

Důležité informace

  • Konfigurace koncového bodu fondu je součástí konfigurace sítě fondu. Konfigurace sítě může volitelně zahrnovat nastavení pro připojení fondu k virtuální síti Azure. Pokud fond nastavíte ve virtuální síti, můžete vytvořit pravidla NSG, která používají nastavení adres ve virtuální síti.
  • Při konfiguraci fondu překladu adres (NAT) můžete nakonfigurovat více pravidel NSG. Pravidla se kontrolují v pořadí podle priority. Jakmile se pravidlo aplikuje, u dalších pravidel se už shoda nekontroluje.

Příklad: Povolení provozu protokolu RDP z konkrétní IP adresy

Následující fragment kódu C# ukazuje, jak nakonfigurovat koncový bod RDP na výpočetních uzlech ve fondu Windows tak, aby umožňoval přístup RDP pouze z IP adresy 198.168.100.7. Druhé pravidlo NSG odmítne provoz, který neodpovídá IP adrese.

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, "*")
                })
            })
        };
    }
}

Příklad: Povolení provozu SSH z konkrétní podsítě

Následující fragment kódu Pythonu ukazuje, jak nakonfigurovat koncový bod SSH na výpočetních uzlech ve fondu Linuxu tak, aby umožňoval přístup pouze z podsítě 192.168.1.0/24. Druhé pravidlo NSG odmítne provoz, který neodpovídá podsíti.

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

Příklad: Odepření veškerého provozu protokolu RDP

Následující fragment kódu jazyka C# ukazuje, jak nakonfigurovat koncový bod RDP na výpočetních uzlech ve fondu Windows tak, aby odepřel veškerý síťový provoz. Koncový bod používá front-endový fond portů v rozsahu 60000 –60099.

Poznámka:

Od verze 2024-07-01rozhraní API služby Batch se port 3389 obvykle přidružený k protokolu RDP ve výchozím nastavení nemapuje. Vytvoření explicitního pravidla zamítnutí se už nevyžaduje, pokud není potřeba přístup z internetu pro fondy Batch vytvořené s touto verzí rozhraní API nebo novějším. Možná budete muset zadat explicitní pravidla zamítnutí, která omezí přístup z jiných zdrojů.

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, "*"),
                })
            })
        };
    }
}

Příklad: Odepření veškerého provozu SSH z internetu

Následující fragment kódu Pythonu ukazuje, jak nakonfigurovat koncový bod SSH na výpočetních uzlech ve fondu Linuxu tak, aby odepřel veškerý internetový provoz. Koncový bod používá front-endový fond portů v rozsahu 4000 až 4100.

Poznámka:

Od verze 2024-07-01rozhraní API služby Batch se port 22 obvykle přidružený k SSH ve výchozím nastavení nemapuje. Vytvoření explicitního pravidla zamítnutí se už nevyžaduje, pokud není potřeba přístup z internetu pro fondy Batch vytvořené s touto verzí rozhraní API nebo novějším. Možná budete muset zadat explicitní pravidla zamítnutí, která omezí přístup z jiných zdrojů.

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

Další kroky