Tento runbook pokrýva prostredie Container Apps s profilmi pracovnej záťaže a interným vstupom do virtuálnej siete, ku ktorému sa z notebooku pristupuje cez schválenú VPN typu bod-lokalita, s použitím priameho FQDN aplikácie a bez HTTP trás na úrovni prostredia. vstup do prostredia je z klienta dostupný, rozsah prichádzajúcej prevádzky aplikácie pripúšťa volajúceho a názov hostiteľa sa prekladá na súkromný vstup. Každý krok nižšie zanecháva overiteľný výsledok a vrátenie späť, ktoré sa nedotkne ničoho, čo ste nezmenili. Prejdite ich v uvedenom poradí, pretože žiadny neskorší krok nenahradí rozhodnutie o rozsahu prijaté nesprávne v kroku 1.

Skôr než sa dotknete DNS, ujasnite si slovo interný. V tomto produkte sa používa pre dva rôzne rozsahy a ich zámena je najčastejším dôvodom, prečo funkčný názov stále nevracia nič užitočné.

Krok 1: stanovte rozsah prostredia a aplikácie

Prečítajte si konfiguráciu prichádzajúcej prevádzky aplikácie, skôr než zmeníte akýkoľvek záznam:

SettingBoundary
Internal environmentThe environment entry is reached through its private network arrangement
App with internal ingressCallers from the environment VNet only; a VPN laptop qualifies once it has a route into that VNet and the domain resolves privately
App with external ingress in an internal environmentThe app accepts outside traffic through the environment's private entry

Interná prichádzajúca prevádzka je vystavená na internom nástroji na vyrovnávanie záťaže prostredia vnútri VNet prostredia, takže otázka neznie, či je notebook iná kontajnerová aplikácia, ale či sa do tejto VNet dostane. Klient VPN s trasou do VNet a predvolenou doménou prostredia, ktorá sa prekladá cez súkromnú zónu, je spôsobilý volajúci, a práve to zostávajúce kroky budujú. Interné prostredie bez verejného vstupu je iný fakt než aplikácia s internou prichádzajúcou prevádzkou a externá prichádzajúca prevádzka na úrovni aplikácie nedáva prostrediu verejné dvere. Zapíšte rozsah do tiketu aj do portálu, pretože ďalší inžinier číta najprv tiket.

Potvrďte tento rozsah s vlastníkom konfigurácie, skôr než budete pokračovať, a držte bránu úzku: ak do VNet prostredia neexistuje trasa alebo sa predvolená doména prostredia neprekladá cez súkromnú zónu, zastavte sa a najprv opravte túto cestu. Žiadny neskorší krok nenahradí volajúceho, ktorý sa do VNet nedostane alebo nedokáže preložiť názov.

Krok 2: zhromaždite skutočný názov hostiteľa a adresu vstupu

Zaznamenajte predvolenú doménu prostredia, jeho statickú súkromnú adresu vstupu a nakonfigurovaný FQDN aplikácie, prevzaté zo zdroja, nie zo starého snímku obrazovky alebo wiki stránky:

az containerapp env show -n ENV -g RG \
  --query "{domain:properties.defaultDomain, ip:properties.staticIp}"
az containerapp show -n APP -g RG \
  --query "properties.configuration.ingress.fqdn"

Pokyny pre súkromný vstup Container Apps opisujú zladenie domény prostredia s jeho internou adresou pri zachovaní názvov hostiteľov aplikácie. Presne tento tvar tu budujete ručne, preto s ním zlaďte obsah zóny, namiesto vymýšľania novej schémy pomenovania.

Ak doména, ktorú ste prečítali, nezodpovedá FQDN, ktorý aplikácia hlási, zastavte sa a hneď ich zlaďte. Budovanie zóny na nesprávnej prípone vytvorí názov hostiteľa, ktorý sa dokonale preloží a napriek tomu skončí na nesprávnom virtuálnom hostiteľovi.

Krok 3: umiestnite súkromnú zónu na cestu prekladača VPN

Vytvorte alebo znova použite podporovanú súkromnú zónu DNS pre skutočnú predvolenú doménu prostredia, s dokumentovanými záznamami zástupného znaku a adresy ukazujúcimi na statický vstup. Prepojte túto zónu s príslušnou virtuálnou sieťou a sprístupnite súkromnú autoritu cez schválenú cestu prekladača VPN, namiesto predpokladu, že prepojenie stačí.

Klient typu bod-lokalita zvyčajne potrebuje prichádzajúci koncový bod súkromného prekladača alebo podporovaný preposielač DNS, aby sa do tejto zóny dostal. Prepojenie zóny mení, čo Azure prekladá pre prepojené siete; nepresmerúva verejný prekladač každého externého notebooku. Nenahrádzajte ju zónou DNS súkromného koncového bodu požičanou z iného sieťového modelu Container Apps, pretože názvy záznamov a prípona zóny sa nebudú zhodovať.

Vrátením tohto kroku je odstránenie prepojenia zóny alebo záznamu, ktorý ste pridali. Poznamenajte si, ktoré z toho to bolo, pretože zmazanie zdieľanej zóny na zrušenie jediného prepojenia je známy spôsob, ako pokaziť druhé prostredie.

Krok 4: otestujte názov a potom odmietnuté publikum

Testujte názov hostiteľa a identitu TLS spoločne, nie iba adresu. Pre riadenú diagnostiku mapovania názvov môžete adresu pripnúť a názov hostiteľa zachovať:

curl --resolve app.ENVIRONMENT_DOMAIN:443:10.40.0.10 \
    https://app.ENVIRONMENT_DOMAIN/

Nahraďte názov hostiteľa skutočným FQDN aplikácie a adresu skutočným interným vstupom. Týka sa to iba tejto jednej požiadavky a nie je to zriaďovanie DNS. Nepridávajte -k, aby ste zlyhanie identity zmenili na zdanlivý úspech, pretože nezhoda certifikátu je signál, že mierite na nesprávny listener.

Priama požiadavka na číselnú adresu môže vybrať nesprávneho virtuálneho hostiteľa alebo zlyhať pri validácii, aj keď TCP 443 odpovedá, preto úspešný test IP berte ako dôkaz o sieti a nič viac. Z zamýšľaného notebooku je normálnou cestou prekladača preposielač DNS klienta alebo prichádzajúci koncový bod súkromného prekladača, ktorý zónu hostuje, a zlyhanie tam je problém dostupnosti prekladača, nie chýbajúci záznam. Potvrďte, že tá istá požiadavka na tejto ceste uspeje, a potom potvrďte, že odmietnuté publikum je stále odmietnuté.

Čo zaznamenať a čo vrátiť späť

Cieľový port kontajnera a port HTTPS klienta sú samostatné nastavenia. Nezverejňujte cieľový port kontajnera cez VPN preto, že tam kontajner počúva, a nerozširujte sieťové pravidlo, aby test portu prešiel. Obe zmeny prežijú incident a neskôr sa ťažko pripisujú.

Skončite čerstvou operáciou aplikácie zo zamýšľaného notebooku s jeho oprávnenou identitou a bežným DNS a potom skontrolujte, že neoprávnený volajúci stále zlyháva. Kým ste v konfigurácii aplikácie, potvrďte aj to, či HTTP trasa na úrovni prostredia vystavuje túto aplikáciu ako cieľ, pretože táto trasa sú druhé dvere, ktoré rozsah prichádzajúcej prevádzky neopisuje.

Zaznamenajte päť hodnôt spoločne: rozsah prostredia, rozsah prichádzajúcej prevádzky aplikácie, FQDN, súkromnú adresu vstupu a vlastníka prekladača. Týchto päť opisuje celú zmluvu o prístupe a nasledujúci človek, ktorý to bude ladiť, sa opýta presne na ne.

Súvisiace články