Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Bei entsprechender Konfiguration können Sie einem Knotenbenutzer mit Netzwerkverbindung erlauben, eine externe Verbindung mit einem Serverknoten in einem Batch-Pool herzustellen. Beispielsweise kann ein Benutzer per Remote Desktop (RDP) auf Port 3389 eine Verbindung zu einem Computeknoten in einem Windows-Pool herstellen. Auf ähnliche Weise kann ein Benutzer standardmäßig per Secure Shell (SSH) auf Port 22 eine Verbindung zu einem Computeknoten in einem Linux-Pool herstellen.
Hinweis
Ab der API-Version 2024-07-01 (und aller Pools, die nach dem 30. November 2025 erstellt werden, unabhängig von der API-Version), ordnet Batch nicht mehr automatisch allgemeine Remotezugriffsports für SSH und RDP zu. Wenn Sie den Remotezugriff auf Ihre Batch-Computeknoten mit Pools zulassen möchten, die mit der API-Version 2024-07-01 oder höher (und nach dem 30 November 2025) erstellt wurden, müssen Sie den Pool-Endpunkt manuell konfigurieren, um diesen Zugriff zu aktivieren.
In Ihrer Umgebung müssen Sie möglicherweise Einstellungen für den externen Zugriff oder andere Ports, die Sie im Batch-Pool benötigen, aktivieren, einschränken oder deaktivieren. Ändern Sie diese Einstellungen, indem Sie mit den Batch-APIs die Eigenschaft PoolEndpointConfiguration festlegen.
Konfiguration von Batch-Poolendpunkten
Die Endpunktkonfiguration besteht aus einem oder mehreren Pools für die Netzwerkadressübersetzung (NAT) von Front-End-Ports. Verwechseln Sie NAT-Pools nicht mit dem Batch-Pool von Serverknoten. Sie können festlegen, dass jeder NAT-Pool die Standardverbindungseinstellungen für Serverknoten auf den Computeknoten des Pools überschreibt.
Jede NAT-Pool-Konfiguration enthält eine oder mehrere Regeln für die Netzwerksicherheitsgruppe (NSG). Jede NSG-Regel erlaubt oder verweigert bestimmten Netzwerkdatenverkehr zum Endpunkt. Sie können den kompletten Datenverkehr, durch ein Diensttag (wie „Internet“) identifizierten Datenverkehr oder Datenverkehr von bestimmten IP-Adressen oder Subnetzen zulassen oder verweigern.
Überlegungen
- Die Konfiguration des Poolendpunkts ist Teil der Netzwerkkonfiguration des Pools. Die Netzwerkkonfiguration kann optional Einstellungen zum Verknüpfen des Pools mit einem virtuellen Azure-Netzwerk enthalten. Wenn Sie den Pool in einem virtuellen Netzwerk einrichten, können Sie NSG-Regeln erstellen, die Adresseinstellungen im virtuellen Netzwerk verwenden.
- Sie können mehrere NSG-Regeln konfigurieren, wenn Sie einen NAT-Pool konfigurieren. Die Regeln werden gemäß ihrer Priorität geprüft. Sobald eine Regel als gültig erkannt wird, werden keine weiteren Regeln mehr geprüft.
Beispiel: Zulassen von RDP-Datenverkehr von einer bestimmten IP-Adresse
Im folgenden C#-Codeschnipsel sehen Sie, wie Sie den RDP-Endpunkt auf Serverknoten in einem Windows-Pool konfigurieren müssen, um den RDP-Zugriff nur von der IP-Adresse 198.168.100.7 zu gestatten. Die zweite NSG-Regel verweigert Datenverkehr, der nicht mit der IP-Adresse übereinstimmt.
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, "*")
})
})
};
}
}
Beispiel: Zulassen von SSH-Datenverkehr von einer bestimmten IP-Adresse
Im folgenden Python-Ausschnitt sehen Sie, wie Sie den SSH-Endpunkt auf Computeknoten in einem Linux-Pool konfigurieren müssen, um den Zugriff nur vom Subnetz 192.168.1.0/24 zu gestatten. Die zweite NSG-Regel verweigert Datenverkehr, der nicht mit dem Subnetz übereinstimmt.
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='*'
)
]
)
]
)
)
Beispiel: Verweigern des gesamten RDP-Datenverkehrs
Im folgenden C#-Codeausschnitt sehen Sie, wie Sie den RDP-Endpunkt auf Computeknoten in einem Windows-Pool konfigurieren müssen, um sämtlichen Netzwerkdatenverkehr zu verweigern. Der Endpunkt verwendet einen Pool an Front-End-Ports im Bereich 60000–60099.
Hinweis
Ab der Batch-API-Version 2024-07-01 ist Port 3389, der normalerweise RDP zugeordnet ist, nicht mehr standardmäßig zugeordnet.
Das Erstellen einer expliziten Verweigerungsregel ist nicht mehr erforderlich, wenn kein Zugriff über das Internet für Batch-Pools erforderlich ist, die mit dieser API-Version oder einer höheren Version erstellt wurden. Möglicherweise müssen Sie dennoch explizite Verweigerungsregeln angeben, um den Zugriff von anderen Quellen einzuschränken.
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, "*"),
})
})
};
}
}
Beispiel: Verweigern des gesamten SSH-Datenverkehrs aus dem Internet
Im folgenden Python-Ausschnitt sehen Sie, wie Sie den SSH-Endpunkt auf Computeknoten in einem Linux-Pool konfigurieren müssen, um sämtlichen Internetdatenverkehr zu verweigern. Der Endpunkt verwendet einen Pool an Front-End-Ports im Bereich 4000–4100.
Hinweis
Ab der Batch-API-Version 2024-07-01 ist Port 22, der in der Regel SSH zugeordnet, nicht mehr standardmäßig zugeordnet.
Das Erstellen einer expliziten Verweigerungsregel ist nicht mehr erforderlich, wenn kein Zugriff über das Internet für Batch-Pools erforderlich ist, die mit dieser API-Version oder einer höheren Version erstellt wurden. Möglicherweise müssen Sie dennoch explizite Verweigerungsregeln angeben, um den Zugriff von anderen Quellen einzuschränken.
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ächste Schritte
- Erfahren Sie mehr über den Workflow des Batch-Diensts und primäre Ressourcen wie Pools, Knoten, Aufträge und Aufgaben.
- Weitere Informationen zu NSG-Regeln in Azure finden Sie unter Filtern des Netzwerkdatenverkehrs mit Netzwerksicherheitsgruppen.