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:
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
Sanal ağ ve alt ağlar oluşturma
az group create komutunu kullanarak bir kaynak grubu oluşturun.
az group create --name $RG --location $LOC
Bir sanal ağ ve iki alt ağ oluşturun.
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
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
-
HDIAKS_SUBNET_NAME
alt 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. - 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
Küme havuzu oluşturma.
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
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"
Azure Güvenlik Duvarı oluşturmak için Azure Güvenlik Duvarı önizleme CLI uzantısını kaydedin.
az extension add --name azure-firewall
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
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
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
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
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
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"
Apache Flink
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
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.