Konfigurowanie dostępu zdalnego do węzłów obliczeniowych w puli usługi Azure Batch
W przypadku skonfigurowania można zezwolić użytkownikowi węzła z łącznością sieciową na zewnętrzne połączenie z węzłem obliczeniowym w puli usługi Batch. Na przykład użytkownik może nawiązać połączenie za pomocą pulpitu zdalnego (RDP) na porcie 3389 z węzłem obliczeniowym w puli systemu Windows. Podobnie domyślnie użytkownik może połączyć się za pomocą protokołu Secure Shell (SSH) na porcie 22 z węzłem obliczeniowym w puli systemu Linux.
Uwaga
Od wersji 2024-07-01
interfejsu API (i wszystkich pul utworzonych po 30 listopada 2025 r., niezależnie od wersji interfejsu API), usługa Batch nie mapuje już automatycznie typowych portów dostępu zdalnego dla protokołów SSH i RDP. Jeśli chcesz zezwolić na zdalny dostęp do węzłów obliczeniowych usługi Batch przy użyciu pul utworzonych przy użyciu wersji 2024-07-01
interfejsu API lub nowszej (i po 30 listopada 2025 r.), należy ręcznie skonfigurować konfigurację punktu końcowego puli, aby włączyć taki dostęp.
W środowisku może być konieczne włączenie, ograniczenie lub wyłączenie ustawień dostępu zewnętrznego lub innych portów, które mają być dostępne w puli usługi Batch. Te ustawienia można zmodyfikować przy użyciu interfejsów API usługi Batch, aby ustawić właściwość PoolEndpointConfiguration .
Konfiguracja punktu końcowego puli usługi Batch
Konfiguracja punktu końcowego składa się z co najmniej jednej pul translatora adresów sieciowych (NAT) portów frontonu. Nie należy mylić puli translatora adresów sieciowych z pulą usługi Batch węzłów obliczeniowych. Skonfiguruj każdą pulę translatora adresów sieciowych, aby zastąpić domyślne ustawienia połączenia w węzłach obliczeniowych puli.
Każda konfiguracja puli TRANSLATOR adresów sieciowych obejmuje co najmniej jedną regułę sieciowej grupy zabezpieczeń. Każda reguła sieciowej grupy zabezpieczeń zezwala na określony ruch sieciowy do punktu końcowego lub odmawia go. Możesz zezwolić lub zablokować cały ruch, ruch identyfikowany przez tag usługi (np. "Internet") lub ruch z określonych adresów IP lub podsieci.
Kwestie wymagające rozważenia
- Konfiguracja punktu końcowego puli jest częścią konfiguracji sieci puli. Konfiguracja sieci może opcjonalnie zawierać ustawienia umożliwiające dołączenie puli do sieci wirtualnej platformy Azure. Jeśli skonfigurujesz pulę w sieci wirtualnej, możesz utworzyć reguły sieciowej grupy zabezpieczeń, które używają ustawień adresów w sieci wirtualnej.
- Podczas konfigurowania puli translatorów adresów sieciowych można skonfigurować wiele reguł sieciowej grupy zabezpieczeń. Reguły są sprawdzane w kolejności priorytetu. Gdy reguła ma zastosowanie, żadne inne reguły nie są sprawdzane pod kątem dopasowania.
Przykład: zezwalanie na ruch RDP z określonego adresu IP
Poniższy fragment kodu języka C# pokazuje, jak skonfigurować punkt końcowy protokołu RDP w węzłach obliczeniowych w puli systemu Windows, aby zezwolić na dostęp RDP tylko z adresu IP 198.168.100.7. Druga reguła sieciowej grupy zabezpieczeń odrzuca ruch, który nie jest zgodny z adresem 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, "*")
})
})
};
}
}
Przykład: zezwalanie na ruch SSH z określonej podsieci
Poniższy fragment kodu języka Python pokazuje, jak skonfigurować punkt końcowy SSH w węzłach obliczeniowych w puli systemu Linux, aby zezwolić na dostęp tylko z podsieci 192.168.1.0/24. Druga reguła sieciowej grupy zabezpieczeń odrzuca ruch, który nie jest zgodny z podsiecią.
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='*'
)
]
)
]
)
)
Przykład: Odmów całego ruchu RDP
Poniższy fragment kodu języka C# pokazuje, jak skonfigurować punkt końcowy protokołu RDP w węzłach obliczeniowych w puli systemu Windows w celu odmowy całego ruchu sieciowego. Punkt końcowy używa puli frontonu portów w zakresie od 60000 do 60099.
Uwaga
Od wersji 2024-07-01
interfejsu API usługi Batch port 3389 zwykle skojarzony z protokołem RDP nie jest już domyślnie mapowany.
Tworzenie jawnej reguły odmowy nie jest już wymagane, jeśli dostęp nie jest wymagany z Internetu dla pul usługi Batch utworzonych przy użyciu tej wersji interfejsu API lub nowszej. Nadal może być konieczne określenie jawnych reguł odmowy w celu ograniczenia dostępu z innych źródeł.
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, "*"),
})
})
};
}
}
Przykład: Odmowa całego ruchu SSH z Internetu
Poniższy fragment kodu języka Python pokazuje, jak skonfigurować punkt końcowy SSH w węzłach obliczeniowych w puli systemu Linux w celu odmowy całego ruchu internetowego. Punkt końcowy używa puli frontonu portów w zakresie od 4000 do 4100.
Uwaga
Od wersji 2024-07-01
interfejsu API usługi Batch port 22 zwykle skojarzony z protokołem SSH nie jest już domyślnie mapowany.
Tworzenie jawnej reguły odmowy nie jest już wymagane, jeśli dostęp nie jest wymagany z Internetu dla pul usługi Batch utworzonych przy użyciu tej wersji interfejsu API lub nowszej. Nadal może być konieczne określenie jawnych reguł odmowy w celu ograniczenia dostępu z innych źródeł.
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'
)
]
)
]
)
)
Następne kroki
- Dowiedz się więcej o przepływie pracy usługi Batch i zasobach podstawowych, takich jak pule, węzły, zadania i zadania.
- Dowiedz się więcej o regułach sieciowej grupy zabezpieczeń na platformie Azure za pomocą filtrowania ruchu sieciowego przy użyciu sieciowych grup zabezpieczeń.