Ez az alaparchitektúra az alapszintű webalkalmazás-architektúrán alapul, és kibővíti, hogy részletes útmutatást nyújtson egy biztonságos, zónaredundáns és magas rendelkezésre állású webalkalmazás azure-beli tervezéséhez. Az architektúra nyilvános végpontot tesz elérhetővé Azure-alkalmazás átjárón keresztül webalkalmazási tűzfallal. A kéréseket a privát kapcsolaton keresztül irányítja át Azure-alkalmazás szolgáltatáshoz. Az App Service-alkalmazás virtuális hálózati integrációt és Private Linket használ az Olyan Azure PaaS-szolgáltatásokkal való biztonságos kommunikációhoz, mint az Azure Key Vault és az Azure SQL Database.
Fontos
Az útmutatót egy példa implementáció is alátámasztja, amely egy alapszintű App Service-implementációt mutat be az Azure-ban. Ez az implementáció használható a további megoldásfejlesztés alapjául az éles környezet felé vezető első lépésben.
Architektúra
1. ábra: Alapkonfiguráció Azure-alkalmazás szolgáltatásarchitektúra
Töltse le az architektúra Visio-fájlját.
Összetevők
Az architektúra számos összetevője megegyezik az alapszintű webalkalmazás-architektúrával. Az alábbi lista csak az alapvető architektúra módosításait emeli ki.
- Az Application Gateway egy 7. rétegbeli (HTTP/S) terheléselosztó és webes forgalomkezelő. URL-alapú útválasztással osztja el a bejövő forgalmat a rendelkezésre állási zónák között, és kiosztja a titkosítást az alkalmazás teljesítményének javítása érdekében.
- A webalkalmazási tűzfal (WAF) egy natív felhőszolgáltatás, amely megvédi a webalkalmazásokat az olyan gyakori biztonsági résektől, mint az SQL-injektálás és a helyek közötti szkriptelés. A WAF betekintést nyújt a webalkalmazásba irányuló és onnan érkező forgalomba, lehetővé téve az alkalmazás figyelését és védelmét.
- Az Azure Key Vault egy szolgáltatás, amely biztonságosan tárolja és kezeli a titkos kulcsokat, a titkosítási kulcsokat és a tanúsítványokat. Központosítja a bizalmas információk kezelését.
- Az Azure-beli virtuális hálózat egy szolgáltatás, amely lehetővé teszi izolált és biztonságos magánhálózatok létrehozását az Azure-ban. Az App Service-en futó webalkalmazások esetében egy virtuális hálózati alhálózatra van szükség, amely privát végpontokat használ az erőforrások közötti hálózati biztonságos kommunikációhoz.
- A Private Link lehetővé teszi az ügyfelek számára, hogy nyilvános IP-címzés nélkül közvetlenül a privát virtuális hálózatokról elérhessék az Azure Platform szolgáltatásként (PaaS) nyújtott szolgáltatásait.
- Az Azure DNS a DNS-tartományok üzemeltetési szolgáltatása, amely a Microsoft Azure-infrastruktúrával biztosít névfeloldást. saját DNS zónák lehetővé teszik a szolgáltatás teljes tartománynevének (FQDN) egy privát végpont IP-címére való leképezését.
Hálózat
A hálózati biztonság az App Services alaparchitektúrájának középpontjában áll (lásd a 2. ábrát). Magas szinten a hálózati architektúra a következőket biztosítja:
- Egyetlen biztonságos belépési pont az ügyfélforgalomhoz
- A hálózati forgalom szűrve van
- Az átvitel alatt lévő adatok végpontok közötti titkosítása TLS használatával történik
- Az adatkiszivárgás minimalizálható az Azure-beli forgalom privát kapcsolat használatával történő megtartásával
- A hálózati erőforrások logikailag vannak csoportosítva és elkülönítve egymástól a hálózat szegmentálásán keresztül
Hálózati folyamatok
2. ábra: Az alapkonfigurációs Azure-alkalmazás szolgáltatásalkalmazás hálózati architektúrája
Az alábbiakban az App Service-példány felé irányuló internetes forgalom bejövő forgalmát, valamint az App Service-ből az Azure-szolgáltatásokba irányuló folyamatot ismerteti.
Bejövő folyamat
- A felhasználó kérést küld az Application Gateway nyilvános IP-címére.
- A WAF-szabályok kiértékelése történik. A WAF-szabályok pozitívan befolyásolják a rendszer megbízhatóságát azáltal, hogy védelmet nyújtanak a különböző támadások ellen, például a helyek közötti szkriptelés (XSS) és az SQL-injektálás ellen. Azure-alkalmazás Átjáró hibát ad vissza a kérelmezőnek, ha egy WAF-szabályt megsértenek, és a feldolgozás leáll. Ha nem sérülnek a WAF-szabályok, az Application Gateway átirányítja a kérést a háttérkészletbe, amely ebben az esetben az App Service alapértelmezett tartománya.
- A privát DNS-zóna
privatelink.azurewebsites.net
a virtuális hálózathoz van csatolva. A DNS-zóna egy A rekorddal rendelkezik, amely leképozza az App Service alapértelmezett tartományát az App Service privát végpontjának privát IP-címére. Ez a társított privát DNS-zóna lehetővé teszi, hogy az Azure DNS feloldja az alapértelmezett tartományt a privát végpont IP-címére. - A rendszer átirányítja a kérést egy App Service-példányra a privát végponton keresztül.
App Service–Azure PaaS-szolgáltatások folyamata
- Az App Service kérést küld a szükséges Azure-szolgáltatás DNS-nevére. A kérés lehet egy titkos kód lekérése az Azure Key Vaulthoz, az Azure Storage a közzétételi zip-fájlhoz, az Azure SQL Database-hez vagy bármely más, a Private Linket támogató Azure-szolgáltatáshoz. Az App Service virtuális hálózat integrációs funkciója átirányítja a kérést a virtuális hálózaton keresztül.
- A bejövő folyamat 3. lépéséhez hasonlóan a csatolt privát DNS-zóna egy A rekorddal rendelkezik, amely leképezi az Azure-szolgáltatás tartományát a privát végpont privát IP-címére. Ez a társított privát DNS-zóna lehetővé teszi, hogy az Azure DNS feloldja a tartományt a szolgáltatás privát végpontjának IP-címére.
- A rendszer a kérést a privát végponton keresztül irányítja a szolgáltatáshoz.
Bejövő forgalom az App Servicesbe
Az Application Gateway egy regionális erőforrás, amely megfelel az alaparchitektúra követelményeinek. Az Application Gateway egy méretezhető, regionális, 7. rétegbeli terheléselosztó, amely támogatja az olyan funkciókat, mint a webalkalmazási tűzfal és a TLS-kiszervezés. Az Application Gateway Azure-alkalmazás-szolgáltatásokba való bejövő forgalomhoz való implementálásakor vegye figyelembe az alábbi szempontokat.
- Telepítse az Application Gatewayt, és konfiguráljon egy WAF-szabályzatot egy Microsoft által felügyelt szabálykészlettel. A megelőzési mód használatával mérsékelheti azokat a webes támadásokat, amelyek miatt egy forrásszolgáltatás (az architektúrában az App Service) elérhetetlenné válhat.
- Implementáljon végpontok közötti TLS-titkosítást.
- Privát végpontok használatával implementálhatja az App Service-hez való bejövő privát hozzáférést.
- Fontolja meg az Application Gateway automatikus skálázásának implementálását, hogy könnyen alkalmazkodjon a dinamikus forgalmi folyamatokhoz.
- Fontolja meg legalább három méretarányú példányszám használatát, és mindig használja a régió által támogatott összes rendelkezésre állási zónát. Bár az Application Gateway magas rendelkezésre állású módon van üzembe helyezve, még egyetlen méretezési példány esetében is, egy új példány létrehozása meghibásodás esetén akár hét percet is igénybe vehet. Ha több példányt helyez üzembe a rendelkezésre állási zónákban, akkor hiba esetén egy példány fut egy új példány létrehozásakor.
- A hálózatelkülönítés biztosítása érdekében tiltsa le a nyilvános hálózati hozzáférést az App Service-ben. A Bicepben ez a tulajdonságok/siteConfig beállítással
publicNetworkAccess: 'Disabled'
érhető el.
Folyamat az App Servicesből az Azure-szolgáltatásokba
Ez az architektúra virtuális hálózati integrációt használ az App Service-hez, különösen a magánvégpontokra irányuló forgalom átirányítására a virtuális hálózaton keresztül. Az alaparchitektúra nem teszi lehetővé , hogy az összes forgalom-útválasztás a virtuális hálózaton keresztül kényszerítse ki az összes kimenő forgalmat, csak a belső forgalmat, például a privát végpontokhoz kötött forgalmat.
Az olyan Azure-szolgáltatásoknak, amelyek nem igényelnek hozzáférést a nyilvános internetről, engedélyezniük kell a privát végpontokat, és le kell tiltani a nyilvános végpontokat. A privát végpontok az architektúra egészében a biztonság javítására szolgálnak, mivel lehetővé teszik, hogy az App Service közvetlenül a magánhálózatról csatlakozzon a Private Link-szolgáltatásokhoz nyilvános IP-címzés nélkül.
Ebben az architektúrában az Azure SQL Database, az Azure Storage és a Key Vault mind le van tiltva nyilvános végpontokkal. Az Azure-szolgáltatás tűzfalai csak más engedélyezett Azure-szolgáltatásokból érkező forgalom engedélyezésére szolgálnak. Konfiguráljon más Azure-szolgáltatásokat privát végpontokkal, például az Azure Cosmos DB-vel és az Azure Redis Cache-zel. Ebben az architektúrában az Azure Monitor nem használ privát végpontot, de lehetséges.
Az alaparchitektúra minden szolgáltatáshoz egy privát DNS-zónát implementál. A privát DNS-zóna egy A rekordot tartalmaz, amely megfelel a szolgáltatás teljes tartományneve és a privát végpont privát IP-címe között. A zónák a virtuális hálózathoz vannak csatolva. saját DNS zónacsoportok biztosítják a privát kapcsolat DNS-rekordjainak automatikus létrehozását és frissítését.
A virtuális hálózati integráció és a privát végpontok megvalósításakor vegye figyelembe az alábbi szempontokat.
- A privát DNS-zónák elnevezéséhez használja az Azure-szolgáltatások DNS-zóna konfigurációs útmutatóját.
- Konfigurálja a szolgáltatás tűzfalait, hogy a tárfiók, a kulcstartó, az SQL Database és más Azure-szolgáltatások csak privát módon legyenek csatlakoztatva.
Virtuális hálózatok szegmentálása és biztonsága
Az architektúra hálózata külön alhálózatokkal rendelkezik az Application Gatewayhez, az App Service-integrációs összetevőkhöz és a privát végpontokhoz. Minden alhálózat rendelkezik egy hálózati biztonsági csoporttal, amely az alhálózatok bejövő és kimenő forgalmát is a szükségesre korlátozza. Az alábbi táblázat az alapterv által az egyes alhálózatokhoz hozzáadott NSG-szabályok egyszerűsített nézetét mutatja be. A tábla megadja a szabály nevét és függvényét.
Alhálózat | Bejövő | Kimenő |
---|---|---|
snet-AppGateway | AppGw.In.Allow.ControlPlane : Bejövő vezérlősík-hozzáférés engedélyezéseAppGw.In.Allow443.Internet : Bejövő internetes HTTPS-hozzáférés engedélyezése |
AppGw.Out.Allow.AppServices : Kimenő hozzáférés engedélyezése az AppServicesSubnethezAppGw.Out.Allow.PrivateEndpoints : Kimenő hozzáférés engedélyezése a PrivateEndpointsSubnethezAppPlan.Out.Allow.AzureMonitor : Kimenő hozzáférés engedélyezése az Azure Monitorhoz |
snet-PrivateEndpoints | Alapértelmezett szabályok: Bejövő forgalom engedélyezése a virtuális hálózatról | Alapértelmezett szabályok: Kimenő forgalom engedélyezése a virtuális hálózatra |
snet-AppService | Alapértelmezett szabályok: Bejövő forgalom engedélyezése a virtuális hálózatról | AppPlan.Out.Allow.PrivateEndpoints : Kimenő hozzáférés engedélyezése a PrivateEndpointsSubnethezAppPlan.Out.Allow.AzureMonitor : Kimenő hozzáférés engedélyezése az Azure Monitorhoz |
A virtuális hálózatok szegmentálásának és biztonságának megvalósításakor vegye figyelembe az alábbi szempontokat.
- Engedélyezze a DDoS-védelmet a virtuális hálózat számára egy olyan alhálózattal, amely egy nyilvános IP-címmel rendelkező application gateway része.
- Ha lehetséges, adjon hozzá egy NSG-t minden alhálózathoz. A legszigorúbb szabályokat kell használnia, amelyek teljes körű megoldást tesznek lehetővé.
- Használjon alkalmazásbiztonsági csoportokat. Az alkalmazásbiztonsági csoportok lehetővé teszik az NSG-k csoportosítását, így egyszerűbbé téve a szabályok létrehozását összetett környezetekben.
Egy virtuális alhálózati séma például a következő lehet:
Típus | Név | Címtartomány |
---|---|---|
Virtual Network | Címelőtag | 10.0.0.0/16 |
Alhálózat | GatewaySubnet | 10.0.1.0/24 |
Alhálózat | AppServicesSubnet | 10.0.0.0/24 |
Alhálózat | PrivateEndpointsSubnet | 10.0.2.0/27 |
Alhálózat | AgentsSubject | 10.0.2.32/27 |
Referencia az Azure-Samples\app-service-baseline-implementációra
Megfontolások
Ezek a szempontok implementálják az Azure Well-Architected Framework alappilléreit, amely a számítási feladatok minőségének javítására használható vezérelvek halmaza. További információ: Microsoft Azure Well-Architected Framework.
Megbízhatóság
A megbízhatóság biztosítja, hogy az alkalmazás megfeleljen az ügyfelek felé vállalt kötelezettségeknek. További információ: A megbízhatósági pillér áttekintése.
Az alapkonfigurációs App Services-architektúra a fő regionális szolgáltatások zonális redundanciájával foglalkozik. A rendelkezésre állási zónák fizikailag különálló helyek egy régión belül. Zónaredundanciát biztosítanak a támogató szolgáltatásokhoz, ha két vagy több példányt helyeznek üzembe a támogató régiókban. Ha az egyik zóna állásidőt tapasztal, előfordulhat, hogy a többi zóna továbbra sem változik.
Az architektúra emellett elegendő Azure-szolgáltatáspéldányt is biztosít az igények kielégítéséhez. Az alábbi szakaszok megbízhatósági útmutatást nyújtanak az architektúra legfontosabb szolgáltatásaihoz. Így a rendelkezésre állási zónák a magas rendelkezésre állás és a hibatűrés biztosításával segítenek a megbízhatóság elérésében.
Application Gateway
Helyezze üzembe Azure-alkalmazás Átjáró v2-t zónaredundáns konfigurációban. Érdemes legalább három skálázási példányszámot használni, hogy elkerülje az Application Gateway egy példányának hat–hét perces indítási idejét, ha hiba történik.
App Services
- Az App Services legalább három példányának üzembe helyezése rendelkezésre állási zóna támogatással.
- Valósítsa meg az állapot-ellenőrzési végpontokat az alkalmazásokban, és konfigurálja az Alkalmazás Szolgáltatásállapot ellenőrzési funkciót a kérések nem megfelelő példányoktól való átirányításához. Az App Service állapot-ellenőrzéséről további információt az App Service-példányok állapot-ellenőrzéssel történő monitorozása című témakörben talál. Az állapot-ellenőrzési végpontok ASP.NET alkalmazásokban való implementálásával kapcsolatos további információkért lásd : Állapotellenőrzések a ASP.NET Core-ban.
- Túlterjeszkedő kapacitás a zónahibák kezeléséhez.
SQL Database
- Az Azure SQL DB általános célú, prémium vagy üzletileg kritikus üzembe helyezése engedélyezett zónaredundanciával. Az általános célú, prémium és üzletileg kritikus szintek támogatják a zónaredundanciát az Azure SQL DB-ben.
- Az SQL DB biztonsági mentéseinek konfigurálása zónaredundáns tárolás (ZRS) vagy georedundáns tárolás (GZRS) használatára.
Blob Storage
- Az Azure Zone-Redundáns Tárolás (ZRS) szinkron módon replikálja az adatokat a régió három rendelkezésre állási zónájában. Standard ZRS- vagy Standard GZRS-tárfiókok létrehozása az adatok rendelkezésre állási zónák közötti replikálásához.
- Hozzon létre külön tárfiókokat az üzemelő példányokhoz, webes eszközökhöz és egyéb adatokhoz, hogy külön kezelhesse és konfigurálhassa a fiókokat.
Teljesítmény hatékonysága
A teljesítménybeli hatékonyság lehetővé teszi, hogy a számítási feladatok hatékonyan méretezhetők legyenek a felhasználók igényei szerint. További információ: Teljesítményhatékonysági pillér áttekintése.
Az alábbi szakaszok az architektúra fő összetevőinek méretezhetőségét ismertetik.
Application Gateway
- Az Application Gateway automatikus skálázásának implementálása az igények kielégítése érdekében történő skálázáshoz vagy kiskálázáshoz.
- Állítsa a példányok maximális számát a vártnál magasabb számra. Csak a használt kapacitásegységekért kell fizetnie.
- Állítson be egy minimális példányszámot, amely képes kezelni a forgalom kis kiugrásait. A minimális példányszám kiszámításához használhatja az átlagos számításiegység-használatot .
- Kövesse az Application Gateway alhálózat méretezésére vonatkozó útmutatást.
App Service
- A magas rendelkezésre állás érdekében használjon standard vagy magasabb csomagokat három vagy több feldolgozópéldánysal.
- Az automatikus skálázás engedélyezésével gondoskodhat arról, hogy fel- és leskálázható legyen az igényeknek megfelelően.
- Érdemes lehet megnyitni egy támogatási jegyet, hogy a példányszám kétszeresére növelje a feldolgozók maximális számát, ha az App Service következetesen a maximális példányok számának felét használja. A példányok maximális száma egy Prémium App Service-csomag esetében legfeljebb 30, standard csomag esetén pedig 10 lehet.
- Fontolja meg az alkalmazás több bélyegének üzembe helyezését, amikor az App Service eléri a felső korlátot.
- Válassza ki a megfelelő Azure-alkalmazás szolgáltatáscsomagot, amely megfelel a számítási feladatokra vonatkozó követelményeknek.
- Adjon hozzá Azure CDN-t Azure-alkalmazás szolgáltatáshoz a statikus tartalom kiszolgálásához.
- Fontolja meg az App Service-környezetet , ha a zajos szomszédok aggodalomra adnak okot.
SQL Server
Az adatbázis-erőforrások skálázása az architektúra hatókörén kívül eső összetett témakör. Az adatbázis skálázása során vegye figyelembe a következő erőforrásokat:
- Adatbázis-erőforrások dinamikus méretezése minimális állásidővel
- Horizontális felskálázás az Azure SQL Database segítségével
- Írásvédett replikák használata írásvédett lekérdezési számítási feladatok kiszervezéséhez
Egyéb skálázhatósági útmutató
- Tekintse át az előfizetések korlátait és kvótáit annak biztosítása érdekében, hogy a szolgáltatások igény szerint skálázhatók legyenek.
- A teljesítmény és a méretezhetőség növelése érdekében fontolja meg a következő típusú adatok gyorsítótárazását :
- Félig statikus tranzakciós adatok.
- Munkamenet-állapot.
- HTML-kimenet. Ez az összetett HTML-kimenetet megjelenítő alkalmazások esetében lehet hasznos.
Biztonság
Az alapszintű App Service-architektúra a webalkalmazás alapvető biztonsági javaslataira összpontosít. A titkosítás és az identitás minden rétegben való működésének megértése kritikus fontosságú a számítási feladatok biztonságossá tételéhez.
App Service
- Helyi hitelesítési módszerek letiltása FTP- és SCM-helytelepítésekhez
- Kapcsolja ki a távoli hibakeresést.
- Használja a legújabb TLS-verziót.
- Engedélyezze a Microsoft Defender for App Service-t.
- Használja a támogatott platformok, programozási nyelvek, protokollok és keretrendszerek legújabb verzióit.
- Fontolja meg az App Service-környezetet , ha magasabb elkülönítést vagy biztonságos hálózati hozzáférést igényel.
Titkosítás
Az éles webalkalmazásnak HTTPS használatával kell titkosítania az átvitel alatt lévő adatokat. A HTTPS protokoll a Transport Layer Securityre (TLS) támaszkodik, és nyilvános és titkos kulcsokat használ a titkosításhoz. Egy tanúsítványt (X.509) kell tárolnia a Key Vaultban, és engedélyeznie kell az Application Gateway számára a titkos kulcs lekérését. Inaktív adatok esetén egyes szolgáltatások automatikusan titkosítják az adatokat, mások pedig lehetővé teszik a testreszabást.
Átvitt adatok
Az alaparchitektúrában az átvitt adatok titkosítva lesznek a felhasználótól a webalkalmazásba az App Service-ben. Az alábbi munkafolyamat bemutatja, hogyan működik a titkosítás magas szinten.
- A felhasználó HTTPS-kérelmet küld a webalkalmazásnak.
- A HTTPS-kérés eléri az application gatewayt.
- Az Application Gateway egy tanúsítványt (X.509) használ a Key Vaultban, hogy biztonságos TLS-kapcsolatot hozzon létre a felhasználó webböngészőjével. Az Application Gateway visszafejti a HTTPS-kérést, hogy a webalkalmazás tűzfala megvizsgálhassa.
- Az Application Gateway TLS-kapcsolatot hoz létre az App Service-vel a felhasználói kérés újratitkosításához. Az App Service natív támogatást nyújt a HTTPS-hez, így nem kell tanúsítványt hozzáadnia az App Service-hez. Az Application Gateway elküldi a titkosított forgalmat az App Service-nek. Az App Service visszafejti a forgalmat, és a webalkalmazás feldolgozza a kérést.
Az átvitel közbeni titkosítás konfigurálásakor vegye figyelembe az alábbi javaslatokat.
- Hozza létre vagy töltse fel a tanúsítványt a Key Vaultba. A HTTPS-titkosításhoz tanúsítvány szükséges (X.509). Az egyéni tartomány megbízható hitelesítésszolgáltatójától származó tanúsítványra van szüksége.
- Tárolja a titkos kulcsot a tanúsítványban a Key Vaultban.
- Kövesse az Azure-erőforrások Azure RBAC-beli és felügyelt identitásait használó Azure-kulcstartókhoz való hozzáférés engedélyezésének engedélyezése az alkalmazások számára című útmutatót, amely hozzáférést biztosít az Application Gateway számára a tanúsítvány titkos kulcsához. Ne használjon Key Vault-hozzáférési szabályzatokat a hozzáférés biztosításához. A hozzáférési szabályzatok csak széles körű engedélyek megadását teszik lehetővé, nem csak bizonyos értékekhez.
- Végpontok közötti titkosítás engedélyezése. Az App Service az Application Gateway háttérkészlete. Amikor a háttérkészlet háttérbeállítását konfigurálja, használja a HTTPS protokollt a 443-as háttérporton keresztül.
Inaktív adatok
- Bizalmas adatok titkosítása az Azure SQL Database-ben transzparens adattitkosítással. A transzparens adatok titkosítják a teljes adatbázist, biztonsági mentéseket és tranzakciónapló-fájlokat, és nem igényel módosításokat a webalkalmazásban.
- Az adatbázis titkosítási késésének minimalizálása. A titkosítási késés minimalizálása érdekében helyezze a biztonságossá tenni kívánt adatokat a saját adatbázisába, és csak az adott adatbázis titkosítását engedélyezze.
- A beépített titkosítási támogatás ismertetése. Az Azure Storage automatikusan titkosítja az inaktív adatokat kiszolgálóoldali titkosítással (256 bites AES). Az Azure Monitor automatikusan titkosítja az inaktív adatokat a Microsoft által felügyelt kulcsok (MMK-k) használatával.
Identitás- és hozzáférés-kezelés
Az App Service alapkonfigurációja konfigurálja a felhasználói identitások (felhasználók) és számítási feladatok identitásainak (Azure-erőforrások) hitelesítését és engedélyezését, és implementálja a minimális jogosultság elvét.
Felhasználói identitások
- Használja az App Service ("EasyAuth") integrált hitelesítési mechanizmusát. Az EasyAuth leegyszerűsíti az identitásszolgáltatók webalkalmazásba való integrálásának folyamatát. A webalkalmazáson kívüli hitelesítést kezeli, így nem kell jelentős kódmódosításokat végrehajtania.
- Konfigurálja az egyéni tartomány válasz URL-címét. A webalkalmazást át kell irányítania a következőre
https://<application-gateway-endpoint>/.auth/login/<provider>/callback
: . Cserélje le<application-gateway-endpoint>
a nyilvános IP-címre vagy az application gatewayhez társított egyéni tartománynévre. Cserélje le<provider>
a használt hitelesítési szolgáltatóra, például a Microsoft Entra ID "aad"-ra. Az Azure Front dokumentációjával beállíthatja ezt a folyamatot az Application Gatewayrel vagy az Application Gateway beállításával.
Számítási feladatok identitásai
- Felügyelt identitás használata számítási feladatok identitásaihoz. A felügyelt identitás szükségtelenné teszi a fejlesztők számára a hitelesítési hitelesítő adatok kezelését.
- Felhasználó által hozzárendelt felügyelt identitások használata. A rendszer által hozzárendelt identitások a versenyfeltételek és a műveletek sorrendje alapján okozhatják az infrastruktúra kódként történő üzembe helyezését. A felhasználó által hozzárendelt felügyelt identitások használatával elkerülhet néhány ilyen üzembe helyezési hibaforgatókönyvet. További információ: Felügyelt identitások.
Működés eredményessége
Az üzemeltetési kiválóság azokat az üzemeltetési folyamatokat fedi le, amelyek üzembe helyeznek egy alkalmazást, és éles környezetben tartják azt. További információ: A működési kiválósági pillér áttekintése.
Az alapkonfigurációs App Service-alkalmazás üzembe helyezése az Azure Web Apps és az Azure Pipelines CI/CD-ben található útmutatást követi. Az útmutatón kívül az App Services alaparchitektúrája figyelembe veszi, hogy az alkalmazás és az üzembehelyezési tárfiók hálózati védelem alatt áll. Az architektúra tagadja az App Service nyilvános elérését. Ez azt jelenti, hogy nem telepíthet a virtuális hálózaton kívülről. Az alapkonfiguráció bemutatja, hogyan helyezheti üzembe az alkalmazáskódot a virtuális hálózaton belül saját üzemeltetésű üzembehelyezési ügynökök használatával. Az alábbi üzembe helyezési útmutató az alkalmazáskód üzembe helyezésére összpontosít, és nem az infrastruktúra vagy az adatbázis változásainak üzembe helyezésére.
3. ábra: Azure-alkalmazás szolgáltatásalkalmazások üzembe helyezése
Üzembehelyezési folyamat
A kiadási folyamat részeként a folyamat feladatkérést küld a feladatsorban lévő saját üzemeltetésű ügynökök számára. A feladatkérés célja, hogy az ügynök feltöltse a közzétételi zip-fájl buildelési összetevőt egy Azure Storage-fiókba.
A saját üzemeltetésű üzembehelyezési ügynök lekérdezéssel veszi fel az új feladatkérést. Letölti a feladatot és a build összetevőt.
A saját üzemeltetésű üzembehelyezési ügynök feltölti a zip-fájlt a tárfiókba a tárfiók privát végpontján keresztül.
A folyamat folytatódik, és egy felügyelt ügynök felveszi a következő feladatot. A felügyelt ügynök cli-hívást indít az appSetting WEBSITE_RUN_FROM_PACKAGE frissítésére az előkészítési ponthoz tartozó új közzétételi zip-fájl nevére.
az webapp config appsettings set -g MyResourceGroupName -n MyUniqueApp --slot staging --settings WEBSITE_RUN_FROM_PACKAGE=UriToNewZip
Azure-alkalmazás szolgáltatás lekéri az új közzétételi zip-fájlt a tárfiók privát végpontjáról. Az átmeneti példány újraindul az új csomaggal, mert WEBSITE_RUN_FROM_PACKAGE másik fájlnévre lett beállítva.
A folyamat újraindul, és minden füsttesztet futtat, vagy jóváhagyásra vár. Ha a tesztek sikeresek vagy jóváhagyást kapnak, a folyamat felcseréli az előkészítési és az éles tárolóhelyeket.
Üzembe helyezési útmutató
Az alábbiakban az alaparchitektúra fő telepítési útmutatóját emeli ki.
- Az üzembehelyezési ütközések elkerülése érdekében használja a csomagból való futtatás parancsot. Ha az alkalmazást közvetlenül egy csomagból futtatja a Azure-alkalmazás Szolgáltatásban, a csomag fájljai nem lesznek átmásolva a wwwroot könyvtárba. Ehelyett maga a ZIP-csomag közvetlenül az írásvédett wwwroot könyvtárként lesz csatlakoztatva. Ez kiküszöböli a fájlzárolási ütközéseket az üzembe helyezés és a futtatókörnyezet között, és biztosítja, hogy csak a teljes mértékben üzembe helyezett alkalmazások futnak bármikor
- Adja meg a verziószámokat az üzembe helyezett csomag zip-fájljaiban.
WEBSITE_RUN_FROM_PACKAGE
Az appSetting másik fájlnévvel való frissítésével az App Services automatikusan felveszi az új verziót, és újraindítja a szolgáltatást. - Használjon üzembehelyezési pontokat a rugalmas kódtelepítésekhez.
- Fontolja meg a felügyelt és a saját üzemeltetésű ügynökök kombinációjának használatát.
- Saját üzemeltetésű ügynökök használatával töltse fel a csomag zip-fájlja a tárfiókba a privát végponton keresztül. Az ügynök lekérdezéssel kezdeményezi a folyamat felé irányuló kommunikációt , így nem szükséges megnyitni a hálózatot bejövő híváshoz.
- Felügyelt ügynökök használata a folyamat többi feladatához.
- Az infrastruktúra üzembe helyezésének automatizálása az infrastruktúra kódként (IaC) használatával.
- Folyamatosan ellenőrizze a számítási feladatot, hogy tesztelje a teljes megoldás teljesítményét és rugalmasságát olyan szolgáltatásokkal, mint az Azure Load Testing és az Azure Chaos Studio.
Konfiguráció
Az alkalmazásokhoz konfigurációs értékekre és titkos kódokra is szükség van. A konfigurációhoz és a titkos kódok kezeléséhez kövesse az alábbi útmutatást.
- Soha ne ellenőrizze a titkos kulcsokat, például a jelszavakat vagy a hozzáférési kulcsokat a forrásvezérlőben.
- Az Azure Key Vault használatával titkos kulcsokat tárolhat.
- Használja az App Service-konfigurációt az alkalmazáskonfigurációhoz. Ha ki kell külsőleg beállítania a konfigurációt az alkalmazáskonfigurációból, vagy funkciójelző-támogatást kell igényelnie, fontolja meg a Azure-alkalmazás Konfiguráció használatát.
- Key Vault-referenciák használata az App Service-konfigurációban a titkos kódok biztonságos felfedéséhez az alkalmazásban.
- Hozzon létre olyan alkalmazásbeállításokat, amelyek ragaszkodnak egy ponthoz, és nem lesznek felcserélve, ha különböző éles és előkészítési beállításokra van szüksége. Az üzembehelyezési pontok közötti váltáskor a rendszer alapértelmezés szerint vált az alkalmazásbeállítások között is.
- Helyi környezeti változókat állíthat be a helyi fejlesztéshez, vagy kihasználhatja az alkalmazásplatform funkcióit. Az App Services-konfiguráció környezeti változókként teszi elérhetővé az alkalmazásbeállításokat. A Visual Studio például lehetővé teszi a környezeti változók beállítását az indítási profilokban. Lehetővé teszi az alkalmazásbeállítások és a felhasználói titkos kódok használatát is a helyi alkalmazásbeállítások és titkos kódok tárolásához.
Figyelés
A monitorozás az informatikai rendszerekből származó adatok gyűjtése és elemzése. A monitorozás célja a webalkalmazások állapotának és biztonságának nyomon követése több rétegben. A megfigyelhetőség az alapkonfigurációs App Service-architektúra egyik fő aspektusa.
A webalkalmazás monitorozásához metrikákat és naplókat kell gyűjtenie és elemeznie az alkalmazáskódból, az infrastruktúrából (futtatókörnyezetből) és a platformról (Azure-erőforrások). További információ: Azure-tevékenységnapló, Azure-erőforrásnaplók és alkalmazásnaplók.
A platform figyelése
A platformmonitorozás az azure-szolgáltatásokból származó adatok gyűjtése az architektúrában. Tekintse meg a platformfigyeléssel kapcsolatos alábbi útmutatást.
Adjon hozzá diagnosztikai beállítást minden Azure-erőforráshoz. Minden Azure-szolgáltatás különböző naplókkal és metrikákkal rendelkezik, amelyet rögzíthet. Az alábbi táblázat segítségével állapítsa meg az összegyűjteni kívánt metrikákat és naplókat.
Azure-erőforrás Metrikák és naplók leírása Application Gateway Az Application Gateway metrikái és naplóinak leírásai Webalkalmazási tűzfal Webalkalmazás tűzfalmetrikái és naplóinak leírásai App Service App Service-metrikák és naplók leírása Azure SQL Database Az Azure SQL Database metrikáinak és naplóinak leírása CosmosDB Azure Cosmos DB-metrikák és naplók leírása Key Vault Key Vault-metrikák és naplók leírása Blob Storage Az Azure Blob Storage metrikái és naplóinak leírása Application Insights Application Insights-metrikák és naplók leírása Nyilvános IP-cím Nyilvános IP-címmetrikák és naplók leírásai A metrikák és naplók gyűjtésének költségeinek megismerése. Általában minél több metrikát és naplót gyűjt, annál többe kerül. További információkért tekintse meg a Log Analytics költségszámításait és beállításait , valamint a Log Analytics-munkaterület díjszabását.
Riasztások létrehozása Riasztásokat kell létrehoznia az architektúra összes Azure-erőforrásához, és konfigurálnia kell az Actionst a problémák megoldására. Válassza ki azokat a gyakori és ajánlott riasztási szabályokat, amelyekkel a rendszer szükség szerint megkezdi és módosítja azokat. További információk:
Application Gateway
Az Application Gateway a háttérkészletében figyeli az erőforrások állapotát. Az Application Gateway Access naplóiban olyan információkat gyűjthet, mint az időbélyeg, a HTTP-válaszkód és az URL-elérési út. További információt az Application Gateway alapértelmezett állapotadat-mintavételi és háttérállapot- és diagnosztikai naplóiban talál.
App Service
Az App Service beépített és integrált monitorozási eszközökkel rendelkezik, amelyeket engedélyeznie kell a jobb megfigyelhetőség érdekében. Ha a webalkalmazás már rendelkezik telemetriai és monitorozási funkciókkal ("folyamatban lévő rendszerállapot"), akkor továbbra is működnie kell az App Service-ben.
- Automatikus rendszerállapot engedélyezése. Az App Service rendelkezik egy eszközkiterjesztéssel, amelyet kódmódosítások nélkül engedélyezhet. Az alkalmazásteljesítmény-monitorozás (APM) láthatósága. További információ: Azure-alkalmazás szolgáltatás teljesítményének figyelése.
- Elosztott nyomkövetés engedélyezése. Az automatikus rendszerállapot lehetővé teszi az elosztott felhőrendszerek monitorozását elosztott nyomkövetéssel és teljesítményprofilozóval.
- Kódalapú rendszerállapot használata egyéni telemetriai adatokhoz. A Azure-alkalmazás Insights az egyéni alkalmazástelemetria kódalapú rendszerezését is támogatja. Adja hozzá az Application Insights SDK-t a kódhoz, és használja az Application Insights API-t.
- App Service-naplók engedélyezése. Az App Service platform négy további naplót támogat, amelyeket engedélyeznie kell a hibaelhárítás támogatásához. Ezek a naplók alkalmazásnaplók, webkiszolgálói naplók, részletes hibaüzenetek és sikertelen kérelmek nyomon követése.
- Strukturált naplózás használata. Strukturált naplózási kódtár hozzáadása az alkalmazáskódhoz. Frissítse a kódot kulcs-érték párok használatára, és engedélyezze az Alkalmazásnaplók app service-ben való tárolását a Log Analytics-munkaterületen.
- Kapcsolja be az App Service Health-ellenőrzést. Az állapot-ellenőrzés átirányítja a kéréseket a nem megfelelő állapotú példányoktól, és lecseréli a nem megfelelő példányokat. Az App Service-csomagnak két vagy több példányt kell használnia az állapot-ellenőrzések működéséhez.
Adatbázis
- Felhasználói adatbázis-elemzések. Azure SQL-adatbázisok esetén konfigurálnia kell az SQL Insightst az Azure Monitorban. A Database Insights dinamikus felügyeleti nézetekkel teszi elérhetővé az állapot figyeléséhez, a problémák diagnosztizálásához és a teljesítmény finomhangolásához szükséges adatokat. További információ: Az Azure SQL Database monitorozása az Azure Monitorral.
- Ha az architektúra tartalmazza a Cosmos DB-t, nem kell semmit engedélyeznie vagy konfigurálnia a Cosmos DB-elemzések használatához.
Szabályozás
A webalkalmazások architekturális és biztonsági döntések végrehajtásával élvezhetik az Azure Policy előnyeit. Az Azure Policy (1) lehetetlenné teheti az üzembe helyezést (megtagadás) vagy a (2) könnyen észlelhető (audit) konfigurációs eltérést az előnyben részesített kívánt állapottól. Ez segít elkapni az infrastruktúra kódalapú (IaC) üzemelő példányait vagy az Azure Portal azon módosításait, amelyek eltérnek a megállapodott architektúrától. Az összes erőforrást az architektúrában az Azure Policy szabályozása alá kell helyeznie. Ha lehetséges, használjon beépített szabályzatokat vagy szabályzatkezdeményezéseket az alapvető hálózati topológia, szolgáltatásfunkciók, biztonsági és monitorozási döntések kikényszerítéséhez, például:
- Az App Service-nek le kell tiltania a nyilvános hálózati hozzáférést
- Az App Service-nek virtuális hálózati integrációt kell használnia
- Az App Service-nek az Azure Private Link használatával kell csatlakoznia a PaaS-szolgáltatásokhoz
- Az App Service-nek le kell tiltani a helyi hitelesítési módszereket az FTP & SCM-helyek üzembe helyezéséhez
- Az App Service-nek ki kell kapcsolnia a távoli hibakeresést
- Az App Service-alkalmazásoknak a legújabb TLS-verziót kell használniuk
- Engedélyezni kell a Microsoft Defender for App Service-t
- A webalkalmazási tűzfalat (WAF) engedélyezni kell az Application Gatewayhez
További beépített szabályzatok az olyan kulcsfontosságú szolgáltatásokhoz, mint az Application Gateway és a hálózati összetevők, az App Service, a Key Vault és a Monitorozás. Létrehozhat egyéni szabályzatokat, vagy használhat közösségi szabályzatokat (például az Azure-beli kezdőzónákból), ha a beépített szabályzatok nem fedik le teljes mértékben az ön igényeit. A beépített szabályzatok előnyben részesíthetők, ha elérhetők.