Asigurați-vă secretele cu Ansible Vault



Acest blog Ansible seif explică modul în care datele sensibile (parole / cheie secretă / fișiere cert) sunt stocate în fișiere criptate și încorporate în Ansible Playbooks.

Cu cât este mai mare utilizarea tehnologiei, cu atât este mai mare posibilă amenințare la adresa securității. O configurație Ansible tipică necesită introducerea „Secretelor”. Aceste secrete ar putea fi literalmente orice, parole, jetoane API, chei publice sau private SSH, certificate SSL etc. Cum putem păstra aceste secrete în siguranță? Ansible oferă o caracteristică numită Ansible Vault.

În acest blog, voi demonstra cum să utilizați Ansible Vault și voi explora câteva dintre cele mai bune practici pentru păstrarea siguranței datelor.





Subiecte tratate în acest blog:

Dacă doriți să stăpâniți DevOps, ' Desigur, ar fi opțiunea dvs. preferată.



Ce este Ansible Vault?

A avea infrastructură ca cod poate reprezenta amenințarea expunerii datelor sensibile la lume, ducând la probleme de securitate nedorite. Ansible Vault este o caracteristică care vă permite să vă păstrați toate secretele în siguranță. Poate cripta fișiere întregi, cărți de redare YAML întregi sau chiar câteva variabile. Acesta oferă o facilitate în care puteți nu numai să criptați datele sensibile, ci și să le integrați în cărțile de joc.

Vault este implementat cu granularitate la nivel de fișier, unde fișierele sunt fie complet criptate, fie complet necriptate. Folosește aceeași parolă pentru criptare, precum și pentru decriptarea fișierelor, ceea ce face ca utilizarea Ansible Vault să fie foarte ușor de utilizat.

De ce să folosești Ansible Vault?

Deoarece Ansible este utilizat pentru automatizare, există o mare posibilitate ca playbook-urile să conțină anumite acreditări, certificate SSL sau alte date sensibile. Salvarea unor date sensibile precum textul simplu este o idee proastă. Un angajament greșit la GitHub sau furt de laptop poate provoca o organizație o pierdere imensă. Acesta este locul în care seiful Ansible intră în imagine. Este o modalitate excelentă de a avea infrastructura drept cod, fără a compromite securitatea.



Să presupunem că avem un playbook care furnizează instanța dvs. EC2 pe AWS. Trebuie să furnizați ID-ul cheii de acces AWS și cheia secretă AWS în playbook. Nu împărtășiți aceste chei altora din motive evidente. Cum le menții neexpuse? Există două moduri - Fie criptează aceste două variabile și încorporează-le în playbook sau criptează întregul playbook.

Acesta a fost doar unul dintre scenariile în care se poate utiliza seiful ansible. Putem fie să criptăm fișiere întregi, fie să criptăm doar câteva variabile care ar putea conține date sensibile și apoi Ansible le decriptează automat în timpul rulării. Acum putem transfera în siguranță aceste valori către GitHub.

Crearea fișierului criptat

Pentru a crea un fișier criptat, utilizați ansible-seif crea comandați și treceți numele fișierului.

$ ansible-vault create filename.yaml

Vi se va solicita să creați o parolă și apoi să o confirmați din nou tastând-o.

ansible seif create - Ansible Vault - Edureka

Odată ce parola dvs. este confirmată, va fi creat un nou fișier și va deschide o fereastră de editare. În mod implicit, editorul pentru Ansible Vault este vi. Puteți adăuga date, salva și ieși.

Și fișierul dvs. este criptat.

Editarea fișierelor criptate

Dacă doriți să editați un fișier criptat, îl puteți edita folosind editare ansible-seif comanda.

$ ansible-vault edit secrets.txt

Unde secrets.txt este un fișier criptat deja creat.

Vi se va solicita să introduceți parola seifului. Fișierul (versiunea decriptată) se va deschide într-un editor vi și apoi puteți face modificările necesare.

Dacă verificați rezultatul, textul dvs. va fi criptat automat atunci când salvați și închideți.

Vizualizarea fișierului criptat

Dacă doriți doar să vizualizați un fișier criptat, puteți utiliza fișierul vedere ansible-seif comanda.

$ ansible-vault view filename.yml

Din nou, vi se va solicita o parolă.

și veți vedea rezultate similare.

Reconectarea parolei seifului

Desigur, există momente în care veți dori să modificați parola seifului. Puteți utiliza ansible-seif rekey comanda.

$ ansible-vault rekey secrets.txt

Vi se va solicita parola actuală a seifului, apoi noua parolă și, în cele din urmă, confirmați noua parolă.

Criptarea fișierelor necriptate

Să presupunem că aveți un fișier pe care doriți să îl criptați, puteți utiliza fișierul criptare ansible-seif comanda.

$ ansible-vault criptează numele fișierului.txt

Vi se va solicita să introduceți și să confirmați parola, iar fișierul dvs. este criptat.

Acum că te uiți la conținutul fișierului, totul este criptat.

Decriptarea fișierelor criptate

Dacă doriți să decriptați un fișier criptat, puteți utiliza ansible-seif decriptare comanda.

$ ansible-vault decriptează numele fișierului.txt

Ca de obicei, vă va solicita să introduceți și să confirmați parola seifului.

Criptarea variabilelor specifice

Cea mai bună practică în timpul utilizării Ansible Vault este criptarea numai a datelor sensibile. În exemplul explicat mai sus, echipa de dezvoltare nu dorește să împărtășească parola cu echipa de producție și de organizare, dar ar putea avea nevoie de acces la anumite date pentru a-și îndeplini propria sarcină. În astfel de cazuri, ar trebui să criptați doar datele pe care nu doriți să le distribuiți altora, lăsând restul așa cum este.

Ansible Vault vă permite să criptați numai anumite variabile. Puteți utiliza ansible-vault encrypt_string comanda pentru aceasta.

$ ansible-vault encrypt_string

Vi se va solicita să introduceți și apoi să confirmați parola seifului. Puteți începe apoi să inserați valoarea șirului pe care doriți să o criptați. Apăsați ctrl-d pentru a termina intrarea. Acum puteți atribui acest lucru criptatvaloarela un șir din playbook.

De asemenea, puteți realiza același lucru într-o singură linie.

$ ansible-vault encrypt_string 'string' --name 'variable_name'

Decriptarea fișierelor criptate în timpul rulării

Dacă doriți să decriptați un fișier în timpul rulării, puteți utiliza –Ask-vault-pass steag.

$ ansible-playbook launch.yml --ask-vault-pass

Aceasta va decripta toate fișierele criptate care sunt utilizate pentru acest play.yml playbook pentru a fi executat. De asemenea, acest lucru este posibil numai dacă toate fișierele sunt criptate cu aceeași parolă.

Solicitările pentru parolă pot deveni enervante. Scopul automatizării devine inutil. Cum îmbunătățim acest lucru? Ansible are o caracteristică numită „fișier parolă” care face trimitere la un fișier care conține parola. Puteți trece apoi acest fișier de parolă în timpul runtime-ului pentru a-l automatiza.

$ ansible-playbook launch.yml --vault-password-file ~ / .vault_pass.txt

Este posibil, de asemenea, să aveți un script separat care specifică parolele. Trebuie să vă asigurați că fișierul script este executabil și parola este imprimată la ieșirea standard pentru a funcționa fără erori enervante.

$ ansible-playbook launch.yml --vault-password-file ~ / .vault_pass.py

Folosind Vault Id

Id-ul seifului este un mod de a furniza un identificator unei anumite parole a seifului. Vault ID ajută la criptarea diferitelor fișiere cu parole diferite pentru a fi menționate într-un playbook. Această caracteristică a Ansible a apărut odată cu lansarea Ansible 2.4. Înainte de această versiune, o singură parolă seif ar putea fi utilizată în fiecare execuție ansamblu playbook.

Deci, acum, dacă doriți să executați un manual Ansible care folosește mai multe fișiere criptate cu parole diferite, puteți utiliza Vault Id.

$ ansible-playbook --vault-id vault-pass1 --vault-id vault-pass2 filename.yml

Cu aceasta, ajungem la sfârșitul acestui blog Ansible Vault. Este uimitor să prindeți pasul cu tehnologia și să profitați din plin de ele, dar nu prin compromiterea securității. Aceasta este una dintre cele mai bune modalități de a avea infrastructura ca cod (IaC).

ce este fasolea în java

Dacă vi se pare util acest articol, consultați ' oferit de Edureka. Acoperă toate instrumentele care au făcut industria IT mai inteligentă.

Ai o întrebare pentru noi? Vă rugăm să o postați pe și ne vom întoarce la tine.