Aracılığıyla paylaş


Azure CLI kullanarak giden trafiği kısıtlamak için güvenlik duvarı kullanma

Önemli

AKS üzerinde Azure HDInsight 31 Ocak 2025'te kullanımdan kaldırıldı. hakkında bu duyuruile daha fazlasını öğrenin.

İş yüklerinizin aniden sonlandırılmasını önlemek için iş yüklerinizi Microsoft Fabric veya eşdeğer bir Azure ürününe geçirmeniz gerekir.

Önemli

Bu özellik şu anda önizleme aşamasındadır. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları beta, önizleme aşamasında olan veya henüz genel kullanıma sunulmamış Azure özellikleri için geçerli olan daha fazla yasal hüküm içerir. Bu belirli önizleme hakkında bilgi için bakınız AKS üzerinde Azure HDInsight önizleme bilgileri. Sorular veya özellik önerileri için lütfen ayrıntıları içeren bir istek gönderin AskHDInsight ve daha fazla güncelleme için Azure HDInsight Community'i takip edin.

Bir kuruluş, küme dağıtımları için kendi sanal ağını kullanmak istediğinde, sanal ağın trafiğinin güvenliğini sağlamak önemli hale gelir. Bu makalede, Azure CLI kullanarak Azure Güvenlik Duvarı aracılığıyla AKS kümesindeki HDInsight'ınızdan giden trafiğin güvenliğini sağlamaya yönelik adımlar.

Aşağıdaki diyagramda, kurumsal senaryo benzetimi yapmak için bu makalede kullanılan örnek gösterilmektedir:

Ağ akışını gösteren Diyagramı.

Bu makalede açıklanan örnek, Azure Could Shellkullanmaktır.

Değişkenleri tanımlama

Bu değişkenlerin değerlerini ayarlamak için Azure Cloud Shell'de kopyalayıp yürütür.

PREFIX="hdiaks-egress"
RG="${PREFIX}-rg"
LOC="eastus"
HDIAKS_CLUSTER_POOL=${PREFIX}
VNET_NAME="${PREFIX}-vnet"
HDIAKS_SUBNET_NAME="${PREFIX}-subnet"
# DO NOT CHANGE FWSUBNET_NAME - This is currently a requirement for Azure Firewall.
FWSUBNET_NAME="AzureFirewallSubnet"
FWNAME="${PREFIX}-fw"
FWPUBLICIP_NAME="${PREFIX}-fwpublicip"
FWIPCONFIG_NAME="${PREFIX}-fwconfig"
FWROUTE_NAME="${PREFIX}-fwrn"
FWROUTE_NAME_INTERNET="${PREFIX}-fwinternet"

Cloud Shell değişkenlerini gösteren Diyagramı.

Sanal ağ ve alt ağlar oluşturma

  1. az group create komutunu kullanarak bir kaynak grubu oluşturun.

    az group create --name $RG --location $LOC
    
  2. Bir sanal ağ ve iki alt ağ oluşturun.

    1. AKS küme havuzunda HDInsight için alt ağa sahip sanal ağ

       az network vnet create \
            --resource-group $RG \
            --name $VNET_NAME \
            --location $LOC \
            --address-prefixes 10.0.0.0/8 \
            --subnet-name $HDIAKS_SUBNET_NAME \
            --subnet-prefix 10.1.0.0/16
      
    2. Azure Güvenlik Duvarı alt ağı.

      az network vnet subnet create \
         --resource-group $RG \
         --vnet-name $VNET_NAME \
         --name $FWSUBNET_NAME \
         --address-prefix 10.2.0.0/16
      

      Önemli

      1. HDIAKS_SUBNET_NAMEalt ağa NSG eklerseniz, belirli giden ve gelen kurallarını el ile eklemeniz gerekir. kullanarak trafiğikısıtlamak için NSG'yi takip edin.
      2. Varsayılan olarak, yönlendirme tablosu alt ağ ile ilişkilendirilmeyecektir. Gerekirse, kullanıcının bir yönlendirme tablosu oluşturması ve bunu küme havuzuyla ilişkilendirmesi gerekir.

Azure portalını kullanarak AKS küme havuzunda HDInsight oluşturma

  1. Küme havuzu oluşturma.

    Küme havuzu temel sekmesini gösteren Diyagramı.

    Güvenlik sekmesini gösteren Diyagramı.

  2. Yol tablosu oluşturun.

    Bir yol tablosu oluşturun ve bunu küme havuzuyla ilişkilendirin. Daha fazla bilgi için bkz. yol tablosu oluşturma.

Küme havuzu arkasında oluşturulmuş olan AKS kümesi ayrıntılarını al.

Sonraki adımlarda yararlı olan AKS kümesi bilgilerini almak için adımları izleyin.

AKS_MANAGED_RG=$(az network vnet subnet show --name $HDIAKS_SUBNET_NAME --vnet-name $VNET_NAME --resource-group $RG --query routeTable.resourceGroup -o tsv)

AKS_ID=$(az group show --name $AKS_MANAGED_RG --query managedBy -o tsv)

HDIAKS_MANAGED_RG=$(az resource show --ids $AKS_ID --query "resourceGroup" -o tsv)

API_SERVER=$(az aks show --name $HDIAKS_CLUSTER_POOL --resource-group $HDIAKS_MANAGED_RG --query fqdn -o tsv)

Güvenlik duvarı oluşturma

  1. Standart SKU genel IP kaynağı oluşturun. Bu kaynak, Azure Güvenlik Duvarı ön uç adresi olarak kullanılır.

    az network public-ip create -g $RG -n $FWPUBLICIP_NAME -l $LOC --sku "Standard"
    
  2. Azure Güvenlik Duvarı oluşturmak için Azure Güvenlik Duvarı önizleme CLI uzantısını kaydedin.

       az extension add --name azure-firewall
    
  3. Azure Güvenlik Duvarı oluşturun ve DNS ara sunucusunu etkinleştirin.

       az network firewall create -g $RG -n $FWNAME -l $LOC --enable-dns-proxy true
    
  4. Azure Güvenlik Duvarı IP yapılandırması oluşturma.

    az network firewall ip-config create -g $RG -f $FWNAME -n $FWIPCONFIG_NAME --public-ip-address $FWPUBLICIP_NAME --vnet-name $VNET_NAME
    
  5. IP yapılandırma komutu başarılı olduktan sonra, daha sonra yapılandırma için güvenlik duvarı ön uç IP adresini kaydedin.

    FWPUBLIC_IP=$(az network public-ip show -g $RG -n $FWPUBLICIP_NAME --query "ipAddress" -o tsv)
    FWPRIVATE_IP=$(az network firewall show -g $RG -n $FWNAME --query "ipConfigurations[0].privateIPAddress" -o tsv)
    

Güvenlik duvarına ağ ve uygulama kuralları ekleme

  1. Ağ kurallarını oluşturun.

    az network firewall network-rule create -g $RG -f $FWNAME --collection-name 'aksfwnr' -n 'apiudp' --protocols 'UDP' --source-addresses '*' --destination-addresses "AzureCloud.$LOC" --destination-ports 1194 --action allow --priority 100
    
    az network firewall network-rule create -g $RG -f $FWNAME --collection-name 'aksfwnr' -n 'apitcp' --protocols 'TCP' --source-addresses '*' --destination-addresses "AzureCloud.$LOC" --destination-ports 9000
    
    az network firewall network-rule create -g $RG -f $FWNAME --collection-name 'aksfwnr' -n 'apiserver' --protocols 'TCP' --source-addresses '*' --destination-fqdns "$API_SERVER" --destination-ports 443
    
    #Add below step, in case you are integrating log analytics workspace
    
    az network firewall network-rule create -g $RG -f $FWNAME --collection-name 'aksfwnr' -n 'azuremonitor' --protocols 'TCP' --source-addresses '*' --destination-addresses "AzureMonitor" --destination-ports 443
    
  2. Uygulama kurallarını oluşturun.

    az network firewall application-rule create -g $RG -f $FWNAME --collection-name 'aksfwar' -n 'aks-fqdn' --source-addresses '*' --protocols 'http=80' 'https=443' --fqdn-tags "AzureKubernetesService" --action allow --priority 100 
    
    az network firewall application-rule create -g $RG -f $FWNAME --collection-name 'aksfwar' -n 'acr' --source-addresses '*' --protocols 'https=443' --target-fqdns "hiloprodrpacr00.azurecr.io"
    
    az network firewall application-rule create -g $RG -f $FWNAME --collection-name 'aksfwar' -n 'blob' --source-addresses '*' --protocols 'https=443' --target-fqdns "*.blob.core.windows.net"
    
    az network firewall application-rule create -g $RG -f $FWNAME --collection-name 'aksfwar' -n 'servicebus' --source-addresses '*' --protocols 'https=443' --target-fqdns "*.servicebus.windows.net"
    
    az network firewall application-rule create -g $RG -f $FWNAME --collection-name 'aksfwar' -n 'gsm' --source-addresses '*' --protocols 'https=443' --target-fqdns "*.table.core.windows.net"
    
    az network firewall application-rule create -g $RG -f $FWNAME --collection-name 'aksfwar' -n 'gcsmonitoring' --source-addresses '*' --protocols 'https=443' --target-fqdns "gcs.prod.monitoring.core.windows.net"
    
    az network firewall application-rule create -g $RG -f $FWNAME --collection-name 'aksfwar' -n 'graph' --source-addresses '*' --protocols 'https=443' --target-fqdns "graph.microsoft.com"
    

Trafiği güvenlik duvarına yönlendirmek için rota tablosunda yol oluşturma

AKS küme havuzundaki HDInsight ile ilişkilendirilecek bir yol tablosu oluşturun. Daha fazla bilgi için bkz. yol tablosu komutları oluşturma.

Küme oluşturma

Önceki adımlarda ağ trafiğini güvenlik duvarına yönlendirdik.

Aşağıdaki adımlar, her küme türü için gereken belirli ağ ve uygulama kuralları hakkında ayrıntılar sağlar. Apache Flink , Trino ve Apache Spark kümelerini ihtiyacınıza göre oluşturmak için küme oluşturma sayfalarına başvurabilirsiniz.

Önemli

Küme oluşturmadan önce trafiğe izin vermek için aşağıdaki kümeye özgü kuralları çalıştırdığınızdan emin olun.

Trino

  1. Trino kümesi için aşağıdaki ağ ve uygulama kurallarını ekleyin.

     az network firewall application-rule create -g $RG -f $FWNAME --collection-name 'aksfwar' -n 'dfs' --source-addresses '*' --protocols 'https=443' --target-fqdns "*.dfs.core.windows.net"
    
     az network firewall application-rule create -g $RG -f $FWNAME --collection-name 'aksfwar' -n 'mysql' --source-addresses '*' --protocols 'mssql=1433' --target-fqdns "*.database.windows.net"  
    

    Aşağıdaki ifadede Sql.<Region>'ı ihtiyacınıza göre bölgenizle değiştirin. Örneğin: Sql.EastUS

     az network firewall network-rule create -g $RG -f $FWNAME --collection-name 'aksfwnr' -n 'mysql' --protocols 'TCP' --source-addresses '*' --destination-addresses Sql.<Region> --destination-ports "11000-11999"
    
  1. Apache Flink kümesi için aşağıdaki uygulama kuralını ekleyin.

    az network firewall application-rule create -g $RG -f $FWNAME --collection-name 'aksfwar' -n 'dfs' --source-addresses '*' --protocols 'https=443' --target-fqdns "*.dfs.core.windows.net"
    

Apache Spark

  1. Spark kümesi için aşağıdaki ağ ve uygulama kurallarını ekleyin.

    İhtiyacınıza göre aşağıdaki söz dizimindeki Storage.<Region>'yi bölgenizle değiştirin. Örneğin: Storage.EastUS

     az network firewall network-rule create -g $RG -f $FWNAME --collection-name 'aksfwnr' -n 'smb' --protocols 'TCP' --source-addresses '*' --destination-addresses "Storage.<Region>" --destination-ports 445
    
     az network firewall application-rule create -g $RG -f $FWNAME --collection-name 'aksfwar' -n 'dfs' --source-addresses '*' --protocols 'https=443' --target-fqdns "*.dfs.core.windows.net"
    

    Koddaki Sql.<Region>'ı, gereksinimlerinize göre bölgenizle değiştirin. Örneğin: Sql.EastUS

     az network firewall network-rule create -g $RG -f $FWNAME --collection-name 'aksfwnr' -n 'mysql' --protocols 'TCP' --source-addresses '*' --destination-addresses "Sql.<Region>" --destination-ports '11000-11999'
    
     az network firewall application-rule create -g $RG -f $FWNAME --collection-name 'aksfwar' -n 'mysql' --source-addresses '*' --protocols 'mssql=1433' --target-fqdns "*.database.windows.net"
    

Simetrik yönlendirme sorununu çözme

Aşağıdaki adımlar, küme bazında yük dengeleyici giriş hizmeti talebinde bulunmanıza ve ağ yanıt trafiğinin güvenlik duvarına akmadığından emin olmanıza olanak tanır. Yanıt trafiğini istemci IP'nize İnternet'e yönlendirmek için yol tablosuna bir yol ekleyin ve ardından kümeye doğrudan ulaşabilirsiniz.

az network route-table route create -g $AKS_MANAGED_RG --name clientip --route-table-name $ROUTE_TABLE_NAME --address-prefix {Client_IPs} --next-hop-type Internet

NSG'yi yapılandırdıktan sonra kümeye ulaşamıyorsanız, trafiği kısıtlamak için 'ı, trafiğe izin vermek için'i kullanarak NSG'yi ayarlayın.

Bahşiş

Daha fazla trafiğe izin vermek istiyorsanız, bunu güvenlik duvarı üzerinden yapılandırabilirsiniz.

Hata ayıklama

Kümenin beklenmedik şekilde çalıştığını fark ederseniz, hangi trafiğin engellendiğini bulmak için güvenlik duvarı günlüklerini denetleyebilirsiniz.