Externe toegang tot rekenknooppunten in een Azure Batch-pool configureren of uitschakelen
Standaard staat Batch een knooppuntgebruiker met netwerkconnectiviteit toe om extern verbinding te maken met een rekenknooppunt in een Batch-pool. Een gebruiker kan bijvoorbeeld via Extern bureaublad (RDP) op poort 3389 verbinding maken met een rekenknooppunt in een Windows-pool. Op dezelfde manier kan een gebruiker standaard via SSH (Secure Shell) op poort 22 verbinding maken met een rekenknooppunt in een Linux-pool.
In uw omgeving moet u deze standaardinstellingen voor externe toegang mogelijk beperken of uitschakelen. U kunt deze instellingen wijzigen met behulp van de Batch-API's om de eigenschap PoolEndpointConfiguration in te stellen.
Over de configuratie van het pooleindpunt
De eindpuntconfiguratie bestaat uit een of meer NAT-pools (Network Address Translation) van front-endpoorten. (Verwar een NAT-pool niet met de Batch-pool met rekenknooppunten.) U stelt elke NAT-pool zo in dat de standaardverbindingsinstellingen op de rekenknooppunten van de pool worden overschreven.
Elke NAT-poolconfiguratie bevat een of meer NSG-regels (netwerkbeveiligingsgroep). Met elke NSG-regel wordt bepaald netwerkverkeer naar het eindpunt toegestaan of geweigerd. U kunt ervoor kiezen om al het verkeer, verkeer dat wordt geïdentificeerd door een servicetag (zoals 'internet') of verkeer van specifieke IP-adressen of subnetten toe te staan of te weigeren.
Overwegingen
- De configuratie van het pooleindpunt maakt deel uit van de netwerkconfiguratie van de pool. De netwerkconfiguratie kan desgewenst instellingen bevatten om de pool toe te voegen aan een virtueel Azure-netwerk. Als u de pool in een virtueel netwerk instelt, kunt u NSG-regels maken die gebruikmaken van adresinstellingen in het virtuele netwerk.
- U kunt meerdere NSG-regels configureren wanneer u een NAT-pool configureert. De regels worden gecontroleerd in de volgorde van prioriteit. Zodra een regel van toepassing is, worden geen andere regels meer getest.
Voorbeeld: Al het RDP-verkeer weigeren
Het volgende C#-fragment laat zien hoe u het RDP-eindpunt configureert op rekenknooppunten in een Windows-pool om al het netwerkverkeer te weigeren. Het eindpunt maakt gebruik van een front-endpool van poorten in het bereik 60000 - 60099.
using Microsoft.Azure.Batch;
using Microsoft.Azure.Batch.Common;
namespace AzureBatch
{
public void SetPortsPool()
{
pool.NetworkConfiguration = new NetworkConfiguration
{
EndpointConfiguration = new PoolEndpointConfiguratio(new InboundNatPool[]
{
new InboundNatPool("RDP", InboundEndpointProtocol.Tcp, 3389, 60000, 60099, new NetworkSecurityGroupRule[]
{
new NetworkSecurityGroupRule(162, NetworkSecurityGroupRuleAccess.Deny, "*"),
})
})
};
}
}
Voorbeeld: Al het SSH-verkeer van internet weigeren
Het volgende Python-fragment laat zien hoe u het SSH-eindpunt configureert op rekenknooppunten in een Linux-pool om al het internetverkeer te weigeren. Het eindpunt maakt gebruik van een front-endpool van poorten in het bereik 4000 - 4100.
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'
)
]
)
]
)
)
Voorbeeld: RDP-verkeer vanaf een specifiek IP-adres toestaan
Het volgende C#-fragment laat zien hoe u het RDP-eindpunt configureert op rekenknooppunten in een Windows-pool om RDP-toegang alleen toe te staan vanaf IP-adres 198.51.100.7. De tweede NSG-regel weigert verkeer dat niet overeenkomt met het IP-adres.
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.51.100.7"),
new NetworkSecurityGroupRule(180, NetworkSecurityGroupRuleAccess.Deny, "*")
})
})
};
}
}
Voorbeeld: SSH-verkeer van een specifiek subnet toestaan
Het volgende Python-fragment laat zien hoe u het SSH-eindpunt configureert op rekenknooppunten in een Linux-pool om alleen toegang toe te staan vanuit het subnet 192.168.1.0/24. De tweede NSG-regel weigert verkeer dat niet overeenkomt met het subnet.
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='*'
)
]
)
]
)
)
Volgende stappen
- Meer informatie over de Werkstroom van de batch-service en primaire resources als pools, knooppunten, jobs en taken.
- Zie Netwerkverkeer filteren met netwerkbeveiligingsgroepen voor meer informatie over NSG-regels in Azure.