Šis vadovas apima Container Apps aplinką su darbo krūvio profiliais ir vidiniu virtualaus tinklo įėjimu, pasiekiamu iš nešiojamojo kompiuterio per patvirtintą VPN iš taško į vietą, naudojant tiesioginį programos FQDN ir be HTTP maršrutų aplinkos lygiu. aplinkos įėjimas pasiekiamas iš kliento, programos įėjimo apimtis leidžia skambintoją, o pagrindinio kompiuterio vardas išsprendžiamas į privatų įėjimą. Kiekvienas žingsnis žemiau palieka patikrinamą rezultatą ir atšaukimą, kuris neliečia nieko, ko nepakeitėte. Atlikite juos nurodyta tvarka, nes joks vėlesnis žingsnis negali kompensuoti 1 žingsnyje neteisingai priimto apimties sprendimo.

Prieš liesdami DNS, išsiaiškinkite žodį vidinis. Šiame produkte jis vartojamas dviem skirtingoms apimtims, ir jų sumaišymas yra dažniausia priežastis, kodėl veikiantis vardas vis tiek negrąžina nieko naudingo.

1 žingsnis: nustatykite aplinkos ir programos apimtį

Prieš keisdami bet kurį įrašą, perskaitykite programos įėjimo konfigūraciją:

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

Vidinis įėjimas atveriamas aplinkos vidiniame apkrovos balansuotojuje aplinkos VNet viduje, todėl klausimas yra ne tai, ar nešiojamasis kompiuteris yra kita konteinerio programa, o tai, ar jis gali pasiekti tą VNet. VPN klientas, turintis maršrutą į VNet ir aplinkos numatytąjį domeną, išsprendžiamą per privačią zoną, yra tinkamas skambintojas, ir būtent tai kuria likę žingsniai. Vidinė aplinka be viešo įėjimo yra kitas faktas nei programa su vidiniu įėjimu, o išorinis įėjimas programos lygiu nesuteikia aplinkai viešų durų. Užrašykite apimtį biliete ir portale, nes kitas inžinierius pirmiausia skaito bilietą.

Prieš tęsdami patvirtinkite šią apimtį su konfigūracijos savininku ir laikykite vartus siaurus: jei nėra maršruto į aplinkos VNet arba aplinkos numatytasis domenas neišsprendžiamas per privačią zoną, sustokite ir pirmiausia sutvarkykite tą kelią. Joks vėlesnis žingsnis negali pakeisti skambintojo, kuris negali pasiekti VNet ar išspręsti vardo.

2 žingsnis: surinkite tikrąjį pagrindinio kompiuterio vardą ir įėjimo adresą

Užsirašykite aplinkos numatytąjį domeną, jos statinį privatų įėjimo adresą ir sukonfigūruotą programos FQDN, paimtus iš ištekliaus, o ne iš senos ekrano kopijos ar wiki puslapio:

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"

Container Apps privataus įėjimo gairės aprašo aplinkos domeno derinimą su jos vidiniu adresu, išlaikant programos pagrindinio kompiuterio vardus nepažeistus. Būtent šią formą čia kuriate rankomis, todėl suderinkite zonos turinį su ja, o ne išgalvokite naują pavadinimų schemą.

Jei perskaitytas domenas nesutampa su FQDN, kurį praneša programa, sustokite ir dabar juos suderinkite. Zonos kūrimas neteisingu galūne sukuria pagrindinio kompiuterio vardą, kuris puikiai išsprendžiamas ir vis tiek patenka į netinkamą virtualų pagrindinį kompiuterį.

3 žingsnis: įdėkite privačią zoną į VPN sprendėjo kelią

Sukurkite arba naudokite palaikomą privačią DNS zoną tikrajam aplinkos numatytajam domenui, su dokumentuotais pakaitos simbolio ir adreso įrašais, nukreiptais į statinį įėjimą. Susiekite tą zoną su atitinkamu virtualiu tinklu ir padarykite privatų valdymą pasiekiamą per patvirtintą VPN sprendėjo kelią, o ne manydami, kad ryšio pakanka.

Iš taško į vietą klientui paprastai reikia privataus sprendėjo įeinančio galinio taško arba palaikomo DNS persiuntėjo, kad pasiektų tą zoną. Zonos susiejimas keičia tai, ką Azure išsprendžia susietiems tinklams; jis nepersiunčia kiekvieno išorinio nešiojamojo kompiuterio viešo sprendėjo. Nepakeiskite jos privačiojo galinio taško DNS zona, pasiskolinta iš kito Container Apps tinklo modelio, nes įrašų pavadinimai ir zonos galūnė nesutaps.

Šio žingsnio atšaukimas yra zonos ryšio arba pridėto įrašo pašalinimas. Užsirašykite, kuris iš jų tai buvo, nes bendros zonos trynimas norint atšaukti vieną ryšį yra gerai žinomas būdas sugadinti antrą aplinką.

4 žingsnis: išbandykite vardą, tada atmestą auditoriją

Išbandykite pagrindinio kompiuterio vardą ir TLS tapatybę kartu, o ne tik adresą. Kontroliuojamai vardų susiejimo diagnostikai galite prisegti adresą išlaikydami pagrindinio kompiuterio vardą:

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

Pakeiskite pagrindinio kompiuterio vardą tikruoju programos FQDN, o adresą – tikruoju vidiniu įėjimu. Tai paveikia tik tą vieną užklausą ir nėra DNS tiekimas. Nepridėkite -k, kad tapatybės klaidą paverstumėte tariamu praėjimu, nes sertifikato neatitikimas yra signalas, kad pasiekiate netinkamą klausytoją.

Tiesioginis skaitmeninio adreso užklausimas gali pasirinkti netinkamą virtualų pagrindinį kompiuterį arba nepavykti validuoti net tada, kai TCP 443 atsako, todėl sėkmingą IP testą laikykite tinklo įrodymu ir niekuo daugiau. Iš numatytojo nešiojamojo kompiuterio įprastas sprendėjo kelias yra kliento DNS persiuntėjas arba zoną priimančio privataus sprendėjo įeinantis galinis taškas, o tenykštė klaida yra sprendėjo pasiekiamumo problema, o ne trūkstamas įrašas. Patvirtinkite, kad ta pati užklausa pavyksta tame kelyje, tada patvirtinkite, kad atmesta auditorija vis dar atmetama.

Ką užrašyti ir ką atšaukti

Konteinerio tikslinis prievadas ir kliento HTTPS prievadas yra atskiri nustatymai. Neskelbkite konteinerio tikslinio prievado per VPN todėl, kad konteineris ten klausosi, ir neplėskite tinklo taisyklės, kad prievado testas praeitų. Abu pakeitimai išgyvena incidentą ir vėliau juos sunku priskirti.

Užbaikite nauja programos operacija iš numatytojo nešiojamojo kompiuterio, naudodami jo įgaliotą tapatybę ir įprastą DNS, tada patikrinkite, kad neįgaliotas skambintojas vis dar nepavyksta. Būdami programos konfigūracijoje, taip pat patvirtinkite, ar aplinkos lygio HTTP maršrutas atskleidžia šią programą kaip tikslą, nes tas maršrutas yra antros durys, kurių įėjimo apimtis neaprašo.

Užrašykite penkias reikšmes kartu: aplinkos apimtį, programos įėjimo apimtį, FQDN, privatų įėjimo adresą ir sprendėjo savininką. Tos penkios aprašo visą prieigos sutartį, ir kitas žmogus, kuris tai derins, prašys būtent jų.

Susiję straipsniai