Konfigurera fjärråtkomst till beräkningsnoder i en Azure Batch-pool
Om det är konfigurerat kan du tillåta att en nodanvändare med nätverksanslutning ansluter externt till en beräkningsnod i en Batch-pool. En användare kan till exempel ansluta via Fjärrskrivbord (RDP) på port 3389 till en beräkningsnod i en Windows-pool. På samma sätt kan en användare som standard ansluta med Secure Shell (SSH) på port 22 till en beräkningsnod i en Linux-pool.
Kommentar
Från och med API-versionen 2024-07-01
(och alla pooler som skapats efter den 30 november 2025 oavsett API-version) mappar Batch inte längre automatiskt vanliga fjärråtkomstportar för SSH och RDP. Om du vill tillåta fjärråtkomst till dina Batch-beräkningsnoder med pooler som skapats med API-version 2024-07-01
eller senare (och efter den 30 november 2025) måste du manuellt konfigurera konfigurationen av poolslutpunkten för att aktivera sådan åtkomst.
I din miljö kan du behöva aktivera, begränsa eller inaktivera inställningar för extern åtkomst eller andra portar som du vill använda i Batch-poolen. Du kan ändra de här inställningarna med hjälp av Batch-API:erna för att ange egenskapen PoolEndpointConfiguration .
Slutpunktskonfiguration för Batch-pool
Slutpunktskonfigurationen består av en eller flera NAT-pooler (network address translation) med klientdelsportar. Blanda inte ihop en NAT-pool med Batch-poolen med beräkningsnoder. Du konfigurerar varje NAT-pool för att åsidosätta standardanslutningsinställningarna på poolens beräkningsnoder.
Varje NAT-poolkonfiguration innehåller en eller flera regler för nätverkssäkerhetsgrupp (NSG). Varje NSG-regel tillåter eller nekar viss nätverkstrafik till slutpunkten. Du kan välja att tillåta eller neka all trafik, trafik som identifieras av en tjänsttagg (till exempel "Internet") eller trafik från specifika IP-adresser eller undernät.
Att tänka på
- Konfigurationen av poolens slutpunkt är en del av poolens nätverkskonfiguration. Nätverkskonfigurationen kan också innehålla inställningar för att ansluta poolen till ett virtuellt Azure-nätverk. Om du konfigurerar poolen i ett virtuellt nätverk kan du skapa NSG-regler som använder adressinställningar i det virtuella nätverket.
- Du kan konfigurera flera NSG-regler när du konfigurerar en NAT-pool. Reglerna kontrolleras i prioritetsordning. När villkoren för en regel uppfylls testas inga fler regler.
Exempel: Tillåt RDP-trafik från en specifik IP-adress
Följande C#-kodfragment visar hur du konfigurerar RDP-slutpunkten på beräkningsnoder i en Windows-pool för att endast tillåta RDP-åtkomst från IP-adressen 198.168.100.7. Den andra NSG-regeln nekar trafik som inte matchar IP-adressen.
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, "*")
})
})
};
}
}
Exempel: Tillåt SSH-trafik från ett specifikt undernät
Följande Python-kodfragment visar hur du konfigurerar SSH-slutpunkten på beräkningsnoder i en Linux-pool för att endast tillåta åtkomst från undernätet 192.168.1.0/24. Den andra NSG-regeln nekar trafik som inte matchar undernätet.
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='*'
)
]
)
]
)
)
Exempel: Neka all RDP-trafik
Följande C#-kodfragment visar hur du konfigurerar RDP-slutpunkten på beräkningsnoder i en Windows-pool för att neka all nätverkstrafik. Slutpunkten använder en klientdelspool med portar i intervallet 60000–60099.
Kommentar
Från och med Batch API-version 2024-07-01
mappas port 3389 som vanligtvis är associerad med RDP inte längre som standard.
Det krävs inte längre att du skapar en explicit neka-regel om åtkomst inte behövs från Internet för Batch-pooler som skapats med den här API-versionen eller senare. Du kan fortfarande behöva ange explicita neka-regler för att begränsa åtkomsten från andra källor.
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, "*"),
})
})
};
}
}
Exempel: Neka all SSH-trafik från Internet
Följande Python-kodfragment visar hur du konfigurerar SSH-slutpunkten på beräkningsnoder i en Linux-pool för att neka all Internettrafik. Slutpunkten använder en klientdelspool med portar i intervallet 4000–4100.
Kommentar
Från och med Batch API-version 2024-07-01
mappas port 22 som vanligtvis är associerad med SSH inte längre som standard.
Det krävs inte längre att du skapar en explicit neka-regel om åtkomst inte behövs från Internet för Batch-pooler som skapats med den här API-versionen eller senare. Du kan fortfarande behöva ange explicita neka-regler för att begränsa åtkomsten från andra källor.
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'
)
]
)
]
)
)
Nästa steg
- Lär dig mer om Batch-tjänstens arbetsflöde och primära resurser , till exempel pooler, noder, jobb och uppgifter.
- Läs mer om NSG-regler i Azure med filtrering av nätverkstrafik med nätverkssäkerhetsgrupper.