Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, bir App Service uygulamasını arka uç hizmetlerine güvenli, ağdan yalıtılmış iletişimle yapılandıracaksınız. Kullanılan örnek senaryo Tutorial: Key Vault kullanarak App Service'ten Güvenli Bilişsel Hizmet bağlantısıdır. bitirdiğinizde, Azure sanal ağı üzerinden hem Key Vault'a hem de Döküm Araçları'na erişen bir App Service uygulamanız vardır. Bu arka uç kaynaklarına başka hiçbir trafiğin erişmesine izin verilmez. Tüm trafik, sanal ağ tümleştirmesi ve özel uç noktalar aracılığıyla sanal ağınızda yalıtılır.
Çok kiracılı bir hizmette App Service uygulamanızdan diğer Azure hizmetlerine giden ağ trafiği, diğer uygulamalarla ve hatta diğer aboneliklerle aynı ortamı paylaşır. Trafiğin kendisi şifrelenebilir ancak bazı senaryolarda arka uç iletişiminin diğer ağ trafiğinden yalıtılması yoluyla ek bir güvenlik düzeyi gerekebilir. Bu senaryolara genellikle yüksek düzeyde uzmanlığa sahip büyük kuruluşlar erişebilir, ancak App Service sanal ağ tümleştirmesi ile bu senaryoları ulaşılabilir hale getirir.
Bu mimaride:
- Arka uç hizmetlerine yönelik genel trafik engellenir.
- App Service'ten giden trafik sanal ağa yönlendirilir ve arka uç hizmetlerine ulaşabilir.
- App Service, özel DNS bölgeleri aracılığıyla arka uç hizmetlerinde DNS çözümlemesi gerçekleştirebilir.
Öğreneceğiniz şeyler:
- App Service sanal ağ tümleştirmesi için sanal ağ ve alt ağlar oluşturma
- Özel DNS bölgeleri oluşturma
- Özel uç noktalar oluşturma
- App Service'te sanal ağ tümleştirmesini yapılandırma
Önkoşullar
Öğreticiyi tamamlayın: Key Vault üzerinden App Service'ten Bilişsel Hizmet bağlantısını güvenli hale getirin ve dil algılayıcı uygulaması oluşturun.
Öğretici: Key Vault kullanarak App Service'ten Bilişsel Hizmet bağlantısının güvenliğini sağlama: öğreticisinden aşağıdaki ortam değişkenlerini ayarladığınızdan emin olun:
groupName=myKVResourceGroup region=canadacentral csResourceName=<cs-resource-name> appName=<app-name> vaultName=<vault-name> planName=<plan-name> csResourceKVUri=<cs-resource-kv-uri> csKeyKVUri=<cs-key-kv-uri>
Sanal ağı ve alt ağları oluşturma
Sanal ağ oluşturma. sanal ağ-adını< benzersiz bir adla değiştirin>.
# Save the virtual network name as a variable for convenience vnetName=<virtual-network-name> az network vnet create --resource-group $groupName --location $region --name $vnetName --address-prefixes 10.0.0.0/16App Service sanal ağ tümleştirmesi için bir alt ağ oluşturun.
az network vnet subnet create --resource-group $groupName --vnet-name $vnetName --name vnet-integration-subnet --address-prefixes 10.0.0.0/24 --delegations Microsoft.Web/serverfarms --private-endpoint-network-policies EnabledApp Service için öneri, sanal ağ tümleştirme alt ağının en az CIDR bloğuna
/26sahip olmasıdır. (Bkz . Sanal ağ tümleştirme alt ağ gereksinimleri.)/24fazla yeterlidir.--delegations Microsoft.Web/serverfarmsAlt ağın App Service sanal ağ entegrasyonu için tahsis edildiğini belirtir.Özel uç noktalar için başka bir alt ağ oluşturun.
az network vnet subnet create --resource-group $groupName --vnet-name $vnetName --name private-endpoint-subnet --address-prefixes 10.0.1.0/24 --private-endpoint-network-policies DisabledÖzel uç nokta alt ağları için özel uç nokta ağ ilkelerini devre dışı bırakmanız gerekir.
Özel DNS bölgeleri oluşturma
Key Vault ve Foundry Araçları kaynaklarınız özel uç noktaların arkasında bulunacağından, bunlar için özel DNS bölgeleri tanımlamanız gerekir. Bu bölgeler, özel uç noktaların DNS kayıtlarını barındırmak ve istemcilerin arka uç hizmetlerini ada göre bulmasına izin vermek için kullanılır.
Foundry Tools kaynağınız ve Key Vault için iki özel DNS bölgesi oluşturun.
az network private-dns zone create --resource-group $groupName --name privatelink.cognitiveservices.azure.com az network private-dns zone create --resource-group $groupName --name privatelink.vaultcore.azure.netBu ayarlar hakkında daha fazla bilgi için bkz . Azure Özel Uç Nokta DNS yapılandırması.
Özel DNS bölgelerini sanal ağa bağlayın.
az network private-dns link vnet create --resource-group $groupName --name cognitiveservices-zonelink --zone-name privatelink.cognitiveservices.azure.com --virtual-network $vnetName --registration-enabled False az network private-dns link vnet create --resource-group $groupName --name vaultcore-zonelink --zone-name privatelink.vaultcore.azure.net --virtual-network $vnetName --registration-enabled False
Özel uç noktalar oluşturma
Sanal ağınızın özel uç nokta alt ağında, Döküm Araçları kaynağınız için özel bir uç nokta oluşturun.
# Get Foundry Tools resource ID csResourceId=$(az cognitiveservices account show --resource-group $groupName --name $csResourceName --query id --output tsv) az network private-endpoint create --resource-group $groupName --name securecstext-pe --location $region --connection-name securecstext-pc --private-connection-resource-id $csResourceId --group-id account --vnet-name $vnetName --subnet private-endpoint-subnetDöküm Araçları özel uç noktası için bir DNS bölge grubu oluşturun. DNS bölge grubu, özel DNS bölgesi ile özel uç nokta arasındaki bağlantıdır. Bu bağlantı, özel uç noktada bir güncelleştirme olduğunda özel DNS bölgesini otomatik olarak güncelleştirmenize yardımcı olur.
az network private-endpoint dns-zone-group create --resource-group $groupName --endpoint-name securecstext-pe --name securecstext-zg --private-dns-zone privatelink.cognitiveservices.azure.com --zone-name privatelink.cognitiveservices.azure.comDöküm Araçları kaynağına yönelik genel trafiği engelleyin.
az rest --uri $csResourceId?api-version=2024-10-01 --method PATCH --body '{"properties":{"publicNetworkAccess":"Disabled"}}' --headers 'Content-Type=application/json' # Repeat the following command until the output is "Succeeded" az cognitiveservices account show --resource-group $groupName --name $csResourceName --query properties.provisioningStateUyarı
Yaptığınız değişikliğin sağlanma durumunun
"Succeeded"olduğundan emin olun. Daha sonra örnek uygulamada davranış değişikliğini gözlemleyebilirsiniz. Uygulamayı yine de yükleyebilirsiniz, ancak Algıla düğmesini seçmeye çalışırsanız birHTTP 500hata alırsınız. Uygulama, paylaşılan ağ üzerinden Döküm Araçları kaynağına bağlantısını kaybetti.Anahtar kasası için önceki adımları yineleyin.
# Create a private endpoint for the key vault vaultResourceId=$(az keyvault show --name $vaultName --query id --output tsv) az network private-endpoint create --resource-group $groupName --name securekeyvault-pe --location $region --connection-name securekeyvault-pc --private-connection-resource-id $vaultResourceId --group-id vault --vnet-name $vnetName --subnet private-endpoint-subnet # Create a DNS zone group for the endpoint az network private-endpoint dns-zone-group create --resource-group $groupName --endpoint-name securekeyvault-pe --name securekeyvault-zg --private-dns-zone privatelink.vaultcore.azure.net --zone-name privatelink.vaultcore.azure.net # Block public traffic to the key vault az keyvault update --name $vaultName --default-action DenyUygulama ayarlarını sıfırlayarak uygulamanızdaki anahtar kasası referanslarının hemen yeniden alınmasını zorlayın. (Daha fazla bilgi için bkz. Döndürme.)
az webapp config appsettings set --resource-group $groupName --name $appName --settings CS_ACCOUNT_NAME="@Microsoft.KeyVault(SecretUri=$csResourceKVUri)" CS_ACCOUNT_KEY="@Microsoft.KeyVault(SecretUri=$csKeyKVUri)"Uyarı
Yine örnek uygulamadaki davranış değişikliğini gözlemleyebilirsiniz. Artık anahtar kasası referanslarına erişemediğinizden uygulamayı yükleyemezsiniz. Uygulama, paylaşılan ağ üzerinden anahtar kasasıyla bağlantısını kaybetti.
İki özel uç noktaya yalnızca oluşturduğunuz sanal ağın içindeki istemciler erişebilir. Azure portalının Gizli Anahtarlar sayfasından anahtar kasasındaki gizli anahtarlara bile erişemezsiniz çünkü portal bunlara genel İnternet üzerinden erişir. (Bkz. Kilitli kaynakları yönetme.)
Uygulamanızda sanal ağ tümleştirmesini yapılandırma
Uygulamayı desteklenen bir fiyatlandırma katmanına ölçeklendirin. (Bkz. Uygulamanızı Azure sanal ağıyla tümleştirme.)
az appservice plan update --name $planName --resource-group $groupName --sku S1Gelen istekler için HTTPS'i zorunlu kılma. (Bu adım geçerli senaryoyla ilgili değildir, ancak önemlidir.)
az webapp update --resource-group $groupName --name $appName --https-onlyUygulamanızda sanal ağ tümleştirmesini etkinleştirin.
az webapp vnet-integration add --resource-group $groupName --name $appName --vnet $vnetName --subnet vnet-integration-subnetSanal ağ tümleştirmesi, giden trafiğin doğrudan sanal ağa akmasını sağlar. Varsayılan olarak, yalnızca RFC-1918'de tanımlanan yerel IP trafiği, özel uç noktalar için ihtiyacınız olan sanal ağa yönlendirilir. Tüm trafiğinizi sanal ağa yönlendirme hakkında bilgi için bkz. Sanal ağ tümleştirme yönlendirmesini yönetme. Ayrıca, İnternet trafiğini sanal ağınız üzerinden yönlendirmek istiyorsanız( örneğin, Azure NAT Gateway veya Azure Güvenlik Duvarı) tüm trafiği yönlendirebilirsiniz.
Tarayıcıda
adresine gidin ve tümleştirmenin devreye girmesini bekleyin. HTTP 500 hatası alırsanız, birkaç dakika bekleyin ve yeniden deneyin. Sayfayı yükleyip algılama sonuçları alabiliyorsanız, Key Vault başvurularını kullanarak Foundry Tools endpoint'ına bağlanıyorsunuz demektir. Uyarı
HTTP 500 hatalarını uzun süre almaya devam ederseniz , anahtar kasası başvurularını yeniden kullanmaya zorlamak yararlı olabilir:
az webapp config appsettings set --resource-group $groupName --name $appName --settings CS_ACCOUNT_NAME="@Microsoft.KeyVault(SecretUri=$csResourceKVUri)" CS_ACCOUNT_KEY="@Microsoft.KeyVault(SecretUri=$csKeyKVUri)"
Kilitli kaynakları yönetme
Senaryolarınıza bağlı olarak, özel uç nokta korumalı kaynakları Azure portalı, Azure CLI veya Azure PowerShell (örneğin, Key Vault) aracılığıyla yönetemeyebilirsiniz. Bu araçların tümü genel İnternet üzerinden kaynaklara erişmek için REST API çağrıları yapar ve yapılandırmanız tarafından engellenir. Kilitli kaynaklara erişmek için birkaç seçenek şunlardır:
- Key Vault için, özel uç noktalar tarafından korunan gizli bilgileri görüntülemek veya güncellemek için yerel makinenizin genel IP'sini ekleyin.
- Şirket içi ağınız bir VPN ağ geçidi veya Azure ExpressRoute aracılığıyla Azure sanal ağına genişletildiyse, özel uç nokta korumalı kaynaklarını doğrudan şirket içi ağınızdan yönetebilirsiniz.
- Özel uç nokta korumalı kaynakları sanal ağdaki bir atlama sunucusundan yönetin.
- Cloud Shell'i sanal ağa dağıt.
Kaynakları temizle
Önceki adımlarda, bir kaynak grubunda Azure kaynakları oluşturdunuz. Gelecekte bu kaynaklara ihtiyaç duymayı beklemiyorsanız, Cloud Shell aşağıdaki komutu çalıştırarak kaynak grubunu silin:
az group delete --name $groupName
Bu komutun çalıştırılması bir dakika sürebilir.