Azure Batch havuzundaki işlem düğümlerine uzaktan erişimi yapılandırma veya devre dışı bırakma

Varsayılan olarak Batch, ağ bağlantısı olan bir düğüm kullanıcısına Batch havuzundaki bir işlem düğümüne dışarıdan bağlanma izni verir. Örneğin, bir kullanıcı 3389 numaralı bağlantı noktasında Uzak Masaüstü (RDP) ile Windows havuzundaki bir işlem düğümüne bağlanabilir. Benzer şekilde, kullanıcı varsayılan olarak 22 numaralı bağlantı noktasında Secure Shell (SSH) ile Linux havuzundaki bir işlem düğümüne bağlanabilir.

Ortamınızda, bu varsayılan dış erişim ayarlarını kısıtlamanız veya devre dışı bırakmanız gerekebilir. PoolEndpointConfiguration özelliğini ayarlamak için Batch API'lerini kullanarak bu ayarları değiştirebilirsiniz.

Havuz uç noktası yapılandırması hakkında

Uç nokta yapılandırması, ön uç bağlantı noktalarının bir veya daha fazla ağ adresi çevirisi (NAT) havuzundan oluşur. (Nat havuzunu işlem düğümlerinin Batch havuzuyla karıştırmayın.) Her NAT havuzunu, havuzun işlem düğümlerinde varsayılan bağlantı ayarlarını geçersiz kacak şekilde ayarlarsınız.

Her NAT havuzu yapılandırması bir veya daha fazla ağ güvenlik grubu (NSG) kuralı içerir. Her NSG kuralı uç noktaya belirli ağ trafiğine izin verir veya bunu reddeder. Tüm trafiğe, hizmet etiketiyle tanımlanan trafiğe ("İnternet" gibi) veya belirli IP adreslerinden ya da alt ağlardan gelen trafiğe izin vermeyi veya reddetmeyi seçebilirsiniz.

Dikkat edilmesi gerekenler

  • Havuz uç noktası yapılandırması, havuzun ağ yapılandırmasının bir parçasıdır. Ağ yapılandırması isteğe bağlı olarak havuza bir Azure sanal ağına katılma ayarlarını içerebilir. Havuzu bir sanal ağda ayarlarsanız, sanal ağda adres ayarlarını kullanan NSG kuralları oluşturabilirsiniz.
  • NAT havuzunu yapılandırırken birden çok NSG kuralı yapılandırabilirsiniz. Kurallar öncelik sırasına göre denetleniyor. Bir kural uygulandığı zaman eşleştirme için başka hiçbir kural test edilmez.

Örnek: Tüm RDP trafiğini reddetme

Aşağıdaki C# kod parçacığında, bir Windows havuzundaki işlem düğümlerinde RDP uç noktasının tüm ağ trafiğini reddedecek şekilde nasıl yapılandırılır gösterilmektedir. Uç nokta , 60000 - 60099 aralığındaki bağlantı noktalarının ön uç havuzunu kullanır.

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

Örnek: İnternet'ten gelen tüm SSH trafiğini reddet

Aşağıdaki Python kod parçacığında, linux havuzundaki işlem düğümlerinde SSH uç noktasının tüm İnternet trafiğini reddedecek şekilde nasıl yapılandırılır gösterilmektedir. Uç nokta , 4000 - 4100 aralığındaki bağlantı noktalarının ön uç havuzunu kullanır.

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

Örnek: Belirli bir IP adresinden GELEN RDP trafiğine izin verme

Aşağıdaki C# kod parçacığında, windows havuzundaki işlem düğümlerinde RDP uç noktasının yalnızca 198.51.100.7 IP adresinden RDP erişimine izin verecek şekilde nasıl yapılandırılır gösterilmektedir. İkinci NSG kuralı, IP adresiyle eşleşmeyen trafiği reddeder.

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

Örnek: Belirli bir alt ağdan gelen SSH trafiğine izin verme

Aşağıdaki Python kod parçacığında, linux havuzundaki işlem düğümlerinde SSH uç noktasının yalnızca 192.168.1.0/24 alt ağından erişime izin verecek şekilde nasıl yapılandırılır gösterilmektedir. İkinci NSG kuralı, alt ağ ile eşleşmeyen trafiği reddeder.

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

Sonraki adımlar