Mengonfigurasi atau menonaktifkan akses jarak jauh ke simpul komputasi dalam kumpulan Azure Batch

Secara default, Batch memungkinkan pengguna simpul dengan konektivitas jaringan untuk tersambung secara eksternal ke simpul komputasi dalam kumpulan Batch. Misalnya, pengguna dapat tersambung dengan Desktop Jauh (RDP) pada port 3389 ke simpul komputasi di kumpulan Windows. Demikian pula, secara default, pengguna dapat tersambung dengan Secure Shell (SSH) pada port 22 ke simpul komputasi di kumpulan Linux.

Di lingkungan Anda, Anda mungkin perlu membatasi atau menonaktifkan pengaturan akses eksternal default ini. Anda dapat memodifikasi pengaturan ini dengan menggunakan API Batch untuk mengatur properti PoolEndpointConfiguration.

Tentang konfigurasi titik akhir kumpulan

Konfigurasi titik akhir terdiri dari satu atau beberapa kumpulan terjemahan alamat jaringan (NAT) port frontend. (Jangan bingung antara kumpulan NAT dengan kumpulan Batch simpul komputasi.) Anda menyiapkan setiap kumpulan NAT untuk menimpa pengaturan koneksi default pada simpul komputasi kumpulan.

Setiap konfigurasi kumpulan NAT menyertakan satu atau beberapa aturan kelompok keamanan jaringan (NSG). Setiap aturan NSG mengizinkan atau menolak lalu lintas jaringan tertentu ke titik akhir. Anda dapat memilih untuk mengizinkan atau menolak semua lalu lintas, lalu lintas yang diidentifikasi oleh tag layanan (seperti "Internet") atau lalu lintas dari alamat IP atau subnet tertentu.

Pertimbangan

  • Konfigurasi titik akhir kumpulan adalah bagian dari konfigurasi jaringan kumpulan. Konfigurasi jaringan secara opsional dapat menyertakan pengaturan untuk bergabung dengan kumpulan ke jaringan virtual Azure. Jika Anda menyiapkan kumpulan di jaringan virtual, Anda dapat membuat aturan NSG yang menggunakan pengaturan alamat di jaringan virtual.
  • Anda dapat mengonfigurasi beberapa aturan NSG saat mengonfigurasi kumpulan NAT. Aturan diperiksa dalam urutan prioritas. Setelah aturan berlaku, tidak ada lagi aturan yang diuji untuk pencocokan.

Contoh: Menolak semua lalu lintas RDP

Cuplikan C# berikut menunjukkan cara mengonfigurasi titik akhir RDP pada simpul komputasi di kumpulan Windows untuk menolak semua lalu lintas jaringan. Titik akhir menggunakan kumpulan port frontend dalam rentang 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, "*"),
                })
            })    
        };
    }
}

Contoh: Menolak semua lalu lintas SSH dari internet

Cuplikan Python berikut menunjukkan cara mengonfigurasi titik akhir SSH pada simpul komputasi di kumpulan Linux untuk menolak semua lalu lintas internet. Titik akhir menggunakan kumpulan port frontend dalam rentang 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'
                        )
                    ]
                )
                ]
            )
        )

Contoh: Mengizinkan lalu lintas RDP dari alamat IP tertentu

Cuplikan C# berikut menunjukkan cara mengonfigurasi titik akhir RDP pada simpul komputasi di kumpulan Windows untuk mengizinkan akses RDP hanya dari alamat IP 198.51.100.7. Aturan NSG kedua menolak lalu lintas yang tidak cocok dengan alamat 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.51.100.7"),
                    new NetworkSecurityGroupRule(180, NetworkSecurityGroupRuleAccess.Deny, "*")
                })
            })    
        };
    }
}

Contoh: Mengizinkan lalu lintas SSH dari subnet tertentu

Cuplikan Python berikut menunjukkan cara mengonfigurasi titik akhir SSH pada simpul komputasi di kumpulan Linux untuk mengizinkan akses hanya dari subnet 192.168.1.0/24. Aturan NSG kedua menolak lalu lintas yang tidak cocok dengan 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='*'
                        )
                    ]
                )
                ]
            )
        )

Langkah berikutnya