Aracılığıyla paylaş


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

Yapılandırıldıysa, ağ bağlantısı olan bir düğüm kullanıcısına Batch havuzundaki bir işlem düğümüne dışarıdan bağlanmasına izin vekleyebilirsiniz. Ö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.

Not

API sürümü itibarıyla (ve API sürümünden 2024-07-01 bağımsız olarak 30 Kasım 2025'den sonra oluşturulan tüm havuzlar), Batch artık SSH ve RDP için ortak uzaktan erişim bağlantı noktalarını otomatik olarak eşlemez. BATCH işlem düğümlerinize API sürümü 2024-07-01 veya üzeriyle oluşturulmuş havuzlarla (ve 30 Kasım 2025'den sonra) uzaktan erişime izin vermek istiyorsanız, bu erişimi etkinleştirmek için havuz uç noktası yapılandırmasını el ile yapılandırmanız gerekir.

Ortamınızda, Batch havuzunda dış erişim ayarlarını veya istediğiniz diğer bağlantı noktalarını etkinleştirmeniz, 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.

Batch havuzu uç noktası yapılandırması

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 bu trafiği reddeder. Tüm trafiğe, hizmet etiketiyle tanımlanan trafiğe ("İnternet" gibi) veya belirli IP adreslerinden veya alt ağlardan gelen trafiğe izin vermeyi veya reddetmeyi seçebilirsiniz.

Dikkat edilmesi gereken noktalar

  • 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: Belirli bir IP adresinden 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.168.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.168.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ığı, linux havuzundaki işlem düğümlerinde SSH uç noktasını yalnızca 192.168.1.0/24 alt ağından erişime izin verecek şekilde yapılandırmayı gösterir. İ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='*'
                        )
                    ]
                )
                ]
            )
        )

Örnek: Tüm RDP trafiğini reddet

Aşağıdaki C# kod parçacığında, 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 bir ön uç bağlantı noktası havuzu kullanır.

Not

Batch API sürümü 2024-07-01itibariyle, genellikle RDP ile ilişkilendirilmiş 3389 numaralı bağlantı noktası varsayılan olarak eşlenmez. Bu API sürümüyle veya daha sonraki bir sürümle oluşturulan Batch havuzları için İnternet'ten erişim gerekmiyorsa, açık bir reddetme kuralı oluşturmak artık gerekli değildir. Diğer kaynaklardan erişimi kısıtlamak için yine de açık reddetme kuralları belirtmeniz gerekebilir.

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

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

Aşağıdaki Python kod parçacığı, 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österir. Uç nokta, 4000 - 4100 aralığındaki bağlantı noktalarının ön uç havuzunu kullanır.

Not

Batch API sürümü 2024-07-01itibariyle, genellikle SSH ile ilişkilendirilmiş 22 numaralı bağlantı noktası artık varsayılan olarak eşlenmez. Bu API sürümüyle veya daha sonraki bir sürümle oluşturulan Batch havuzları için İnternet'ten erişim gerekmiyorsa, açık bir reddetme kuralı oluşturmak artık gerekli değildir. Diğer kaynaklardan erişimi kısıtlamak için yine de açık reddetme kuralları belirtmeniz gerekebilir.

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

Sonraki adımlar

  • Batch hizmeti iş akışı ve havuzlar, düğümler, işler ve görevler gibi birincil kaynaklar hakkında bilgi edinin.
  • Ağ güvenlik gruplarıyla ağ trafiğini filtreleme ile Azure'daki NSG kuralları hakkında daha fazla bilgi edinin.