Azure CLI kullanarak giden trafiği kısıtlamak için güvenlik duvarı kullanma
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ğlama adımları sağlanır.
Aşağıdaki diyagramda, kurumsal senaryo benzetimi yapmak için bu makalede kullanılan örnek gösterilmektedir:
Bu makalede açıklanan örnek, Azure Could Shell'i kullanmaktı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"
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ı için 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
- alt ağına
HDIAKS_SUBNET_NAME
NSG eklerseniz, belirli giden ve gelen kurallarını el ile eklemeniz gerekir. Trafiği kısıtlamak için NSG'yi kullanın. - 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.
- alt ağına
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 havuzunun arkasında oluşturulan AKS kümesi ayrıntılarını alma
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
bir 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
bir Azure Güvenlik Duvarı IP yapılandırması oluşturun.
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. İhtiyacınıza göre Apache Flink, Trino ve Apache Spark kümeleri 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"
Sql.<Region>
Aşağıdaki söz dizimindeki öğesini, 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"
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.
Storage.<Region>
Aşağıdaki söz dizimindeki öğesini, gereksinimlerinize göre 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"
Sql.<Region>
Aşağıdaki söz dizimindeki öğesini, 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 yük dengeleyici giriş hizmetine göre küme isteğinde 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 trafiğe izin verecek şekilde kısıtlamak için NSG'yi kullanın.
İpucu
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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin