Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ebben a cikkben egy App Service-alkalmazást konfigurálhat biztonságos, hálózat által elkülönített kommunikációval a háttérszolgáltatások felé. A példahelyzet a Tutorial: Secure Cognitive Service-kapcsolat az App Service-ből a Key Vault segítségével. Ha végzett, egy App Service-alkalmazással rendelkezik, amely egy Azure-beli virtuális hálózaton keresztül fér hozzá a Key Vaulthoz és az Foundry Toolshoz is. Más forgalom nem férhet hozzá ezekhez a háttérerőforrásokhoz. A virtuális hálózaton belül minden forgalom el lesz különítve a virtuális hálózati integráció és a privát végpontok révén.
Több-bérlős szolgáltatásban az App Service-alkalmazásból más Azure-szolgáltatásokba irányuló kimenő hálózati forgalom ugyanazt a környezetet más alkalmazásokkal vagy akár más előfizetésekkel is megosztja. Bár maga a forgalom titkosítható, bizonyos forgatókönyvek további biztonsági szintet igényelhetnek a háttérbeli kommunikáció más hálózati forgalomtól való elkülönítésével. Ezek a forgatókönyvek általában magas szintű szakértelemmel rendelkező nagyvállalatok számára érhetők el, de az App Service a virtuális hálózati integrációval elérhető.
Ebben az architektúrában:
- A háttérszolgáltatások nyilvános forgalma le van tiltva.
- Az App Service kimenő forgalmát a rendszer a virtuális hálózatra irányítja, és elérheti a háttérszolgáltatásokat.
- Az App Service a privát DNS-zónákon keresztül képes DNS-feloldási műveleteket végezni a háttérszolgáltatásokban.
A következő tudnivalókat fogja elsajátítani:
- Virtuális hálózat és alhálózatok létrehozása az App Service virtuális hálózati integrációjához
- Privát DNS-zónák létrehozása
- Privát végpontok létrehozása
- Virtuális hálózati integráció konfigurálása az App Service-ben
Előfeltételek
Teljes oktatóanyag: A Cognitive Service-kapcsolat védelme az App Service-ből a Key Vault használatával , és a nyelvérzékelő alkalmazás létrehozása.
Ügyeljen arra, hogy a következő környezeti változókat állítsa be az oktatóanyagból: Secure Cognitive Service-kapcsolat az App Service-ből a Key Vault használatával:
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>
Virtuális hálózat és alhálózatok létrehozása
Hozzon létre egy virtuális hálózatot. Cserélje le <a virtuális hálózat nevét> egy egyedi névre.
# 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/16Hozzon létre egy alhálózatot az App Service virtuális hálózati integrációjához.
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 EnabledAz App Service esetében a javaslat az, hogy a virtuális hálózat integrációs alhálózata legalább CIDR-blokktal
/26rendelkezzen. (Lásd a virtuális hálózati integráció alhálózati követelményeit.)/24több mint elegendő.--delegations Microsoft.Web/serverfarmsmegadja, hogy az alhálózat delegálva legyen az App Service virtuális hálózati integrációjához.Hozzon létre egy másik alhálózatot a privát végpontokhoz.
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 DisabledA privát végpont alhálózatai esetében le kell tiltania a privát végpont hálózati szabályzatait.
Privát DNS-zónák létrehozása
Mivel a Key Vault és az Foundry Tools-erőforrások privát végpontok mögött fognak elhelyezkedni, privát DNS-zónákat kell definiálnia hozzájuk. Ezek a zónák a privát végpontok DNS-rekordjainak üzemeltetésére szolgálnak, és lehetővé teszik, hogy az ügyfelek név alapján megtalálják a háttérszolgáltatásokat.
Hozzon létre két privát DNS-zónát, egyet az Foundry Tools erőforráshoz, egyet pedig a kulcstartóhoz.
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.netTovábbi információ ezekről a beállításokról: Azure Private Endpoint DNS-konfiguráció.
Csatlakoztassa a privát DNS-zónákat a virtuális hálózathoz.
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
Privát végpontok létrehozása
A virtuális hálózat privát végpont alhálózatában hozzon létre egy privát végpontot az Foundry Tools-erőforráshoz.
# 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-subnetHozzon létre egy DNS-zónacsoportot az Foundry Tools privát végponthoz. A DNS-zónacsoport a privát DNS-zóna és a privát végpont közötti kapcsolat. Ez a hivatkozás segít automatikusan frissíteni a privát DNS-zónát a privát végpont frissítésekor.
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.comTiltsa le a nyilvános forgalmat az Foundry Tools erőforrás felé.
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.provisioningStateMegjegyzés:
Győződjön meg arról, hogy a módosítás kiépítési állapota
"Succeeded". Ezután megfigyelheti a viselkedésváltozást a mintaalkalmazásban. Az alkalmazást továbbra is betöltheti, de ha az Észlelés gombra próbál kattintani, hibaüzenet jelenikHTTP 500meg. Az alkalmazás elvesztette a kapcsolatát a Foundry Tools erőforrással a megosztott hálózaton keresztül.Ismételje meg a key vault előző lépéseit.
# 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 DenyAz alkalmazás beállításainak alaphelyzetbe állításával kényszerítheti a key vault-hivatkozások azonnali visszaállítását az alkalmazásban. (További információ: Rotáció.)
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)"Megjegyzés:
Ismét megfigyelheti a mintaalkalmazás viselkedésváltozását. Az alkalmazás már nem tölthető be, mert már nem fér hozzá a kulcstartó hivatkozásaihoz. Az alkalmazás elvesztette a kapcsolódását a kulcstárhoz a megosztott hálózaton keresztül.
A két privát végpont csak a létrehozott virtuális hálózaton belüli ügyfelek számára érhető el. A kulcstartóban lévő titkos kulcsokat az Azure Portal Titkos kulcsok oldaláról sem érheti el, mert a portál a nyilvános interneten keresztül éri el őket. (Lásd : Zárolt erőforrások kezelése.)
Virtuális hálózati integráció konfigurálása az alkalmazásban
Skálázza fel az alkalmazást egy támogatott tarifacsomagra. (Lásd : Alkalmazás integrálása Azure-beli virtuális hálózattal.)
az appservice plan update --name $planName --resource-group $groupName --sku S1HTTPS kényszerítése bejövő kérésekhez. (Ez a lépés nem az aktuális forgatókönyvhöz kapcsolódik, de fontos.)
az webapp update --resource-group $groupName --name $appName --https-onlyVirtuális hálózati integráció engedélyezése az alkalmazásban.
az webapp vnet-integration add --resource-group $groupName --name $appName --vnet $vnetName --subnet vnet-integration-subnetA virtuális hálózat integrációja lehetővé teszi, hogy a kimenő forgalom közvetlenül a virtuális hálózatba áramoljon. Alapértelmezés szerint csak az RFC-1918-ban definiált helyi IP-forgalom lesz átirányítva a virtuális hálózathoz, ami a privát végpontokhoz szükséges. A virtuális hálózat felé irányuló összes forgalom átirányításáról további információt a Virtuális hálózat integrációs útválasztásának kezelése című témakörben talál. Az összes forgalmat irányíthatja is, ha az internetes forgalmat a virtuális hálózaton keresztül szeretné irányítani, például az Azure NAT Gatewayen vagy az Azure Firewallon keresztül.
Nyissa meg
<app-name>.azurewebsites.neta böngészőben, és várja meg, amíg az integráció érvénybe lép. HA HTTP 500-ás hibát kap, várjon néhány percet, és próbálkozzon újra. Ha be tudja tölteni a lapot, és megkapja az észlelési eredményeket, a kulcstároló hivatkozásait használva csatlakozik a Foundry Tools végponthoz.Megjegyzés:
Ha hosszú ideig HTTP 500 hibákat kap, segíthet a kulcstartó-tárhely hivatkozások újbóli kényszerített lekérése:
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)"
Zárolt erőforrások kezelése
A forgatókönyvtől függően előfordulhat, hogy nem tudja kezelni a privát végponttal védett erőforrásokat az Azure Portalon, az Azure CLI-n vagy az Azure PowerShellen (például a Key Vaulton) keresztül. Ezek az eszközök mind REST API-hívásokat kezdeményeznek az erőforrások nyilvános interneten keresztüli eléréséhez, és a konfiguráció letiltja őket. Íme néhány lehetőség a zárolt erőforrások elérésére:
- A Key Vault esetében adja hozzá a helyi gép nyilvános IP-címét a privát végpontok által védett titkos kódok megtekintéséhez vagy frissítéséhez.
- Ha a helyszíni hálózat vpn-átjárón vagy Azure ExpressRoute-on keresztül van kiterjesztve az Azure-beli virtuális hálózatra, a privát végpont védett erőforrásait közvetlenül a helyszíni hálózatról kezelheti.
- Kezelje a privát végpont által védett erőforrásokat egy ugrókiszolgálóról a virtuális hálózaton belül.
- A virtuális hálózatba Cloud Shell üzembe helyezése.
Erőforrások tisztítása
Az előző lépésekben Azure erőforrásokat hozott létre egy erőforráscsoportban. Ha a jövőben nem lesz szüksége ezekre az erőforrásokra, törölje az erőforráscsoportot az alábbi parancs futtatásával a Cloud Shell:
az group delete --name $groupName
A parancs futtatása eltarthat egy percig.