Înainte ca un charm Juju să devină VPN-ul tău: identitate, contract, porturi
Cinci pași separă ceea ce un charm livrează de fapt de ceea ce presupui: fixează revizia, citește configurația și apoi tratează expunerea ca pe o acțiune de firewall.
Cineva găsește un charm care susține că rulează un VPN, îl implementează, expune aplicația și așteaptă ca un client să se conecteze. Implementarea reușește, portul se deschide, iar tunelul tot nu funcționează, pentru că trei promisiuni fără legătură au fost contopite într-una. Un charm este o implementare de implementare cu un contract anume. Analizează aceste promisiuni separat și lacunele apar înainte de lansare, nu după.
Primul pas: fixează artefactul despre care citești
Citește metadatele candidatului însuși: editor, depozit sursă, canal, revizie, bază și arhitectură. Apoi stabilește cine întreține software-ul VPN din cadrul sarcinii de lucru și cine livrează actualizările sale de securitate, pentru că adesea sunt două părți diferite. Un upstream neîntreținut într-un charm bine întreținut este o problemă de suport care așteaptă o săptămână proastă.
juju info CHARM_NAME raportează canale, baze și arhitecturi în Juju 3.6, iar documentația notează că o interogare pentru o revizie anume nu poate fi combinată cu acele filtre. Întreabă revizia separat în loc să construiești o combinație pe care comanda o respinge. Citește și baza și arhitectura, fiindcă un canal poate acoperi mai mult de una.
Notează combinația exactă pe care ai revizuit-o lângă implementare. Atunci o reîmprospătare care mută canalul este o schimbare intenționată cu un înainte și un după, nu o surpriză într-o zi de luni.
Al doilea pas: citește configurația ca pe un contract
Stabilește rolul pe care îl joacă charm-ul: terminarea accesului la distanță, alăturarea la un VPN existent sau cu totul altceva. Apoi află cum documentează înscrierea clienților, emitenții de încredere, rotația acreditărilor și revocarea. Acele patru decid dacă poți opera lucrul, iar un fișier de client generat este o ieșire sensibilă, nu un fișier pentru un tichet.
Urmează interfețele și acțiunile pe care charm-ul le expune efectiv. Nu presupune că există o acțiune de înscriere doar pentru că alt charm pentru același software are una.
Întreabă ce face reconcilierea cu modificările manuale. Dacă charm-ul suprascrie un fișier de configurare la următoarea actualizare, o corectare manuală are o durată de viață de o singură actualizare. Întreabă întreținătorii unde este documentat acest comportament și tratează tăcerea ca necunoscut.
Al treilea pas: separă ascultătorul de calea redirecționată
Ascultătorul exterior este socketul care acceptă tunelul. Redirecționarea este ceea ce se întâmplă cu traficul din interiorul lui, iar o cale de întoarcere este ceea ce permite răspunsurilor să revină. Un charm poate livra primul și lăsa celelalte două echipei de infrastructură.
Ieșirea este a treia piesă. Dacă clienții tunelului trebuie să ajungă la internet prin acest host, trebuie să existe o soluție de adresare sau traducere, iar ea nu este creată deschizând un port. Atribuie un proprietar acelei piese înainte să sosească primul client.
Al patrulea pas: expunerea este o acțiune de firewall
În Juju 3.6, expunerea unei aplicații ajustează regulile firewall-ului din cloud și, implicit, permite trafic din orice sursă către porturile pe care sarcina de lucru le-a deschis. Selectoarele endpoint și CIDR ale comenzii există exact pentru ca această valoare implicită să poată fi restrânsă.
Expunerea nu creează utilizatori VPN, nu le validează acreditările și nu instalează politici de redirecționare. De asemenea, nu dovedește că sarcina de lucru ascultă pe adresa și transportul pe care le aștepți, motiv pentru care testul de după expunere contează mai mult decât mesajul de succes. Verifică socketul care ascultă pe unitate și regula din cloud.
Al cincilea pas: acceptă cu patru teste
După o implementare aprobată, înscrie un client nou și confirmă serviciul privat dorit. Apoi revocă acea identitate și confirmă că accesul chiar se termină, nu doar că următoarea autentificare este refuzată. Repetă verificarea dintr-o rețea pe care nu o controlezi și apoi din interiorul biroului, pentru că acele două căi răspund la întrebări diferite.
Încheie cu o actualizare și o reconectare, pentru că acolo interacționează reconcilierea, gestionarea acreditărilor și repornirile serviciului. Dacă documentația nu poate explica cine deține una dintre acele operațiuni, notează asta ca o lacună de adoptare în loc să o umpli cu o rețetă neîntreținută în spatele aceluiași nume de charm. O lacună notată este o decizie; o lacună umplută în tăcere este o viitoare cădere. Predă-o celui care deține decizia serviciului, cu data la care ai găsit-o.