Nodrošiniet savus noslēpumus ar Ansible Vault



Šajā blogā Ansible vault ir paskaidrots, kā sensitīvi dati (paroles / slepenās atslēgas / sertfaili) tiek glabāti šifrētos failos un iegulti Ansible Playbooks.

Augstāk izmantojot tehnoloģiju, jo lielāks ir iespējamais drauds drošībai. Lai izveidotu tipisku Ansible iestatījumu, jums jāievada “Secrets”. Šie noslēpumi var būt burtiski jebkas, paroles, API marķieri, SSH publiskās vai privātās atslēgas, SSL sertifikāti utt. Kā mēs šos noslēpumus glabājam drošībā? Ansible nodrošina funkciju ar nosaukumu Ansible Vault.

Šajā emuārā es parādīšu, kā izmantot Ansible Vault, un izpētīšu dažus paraugprakses piemērus datu drošībai.





Šajā emuārā apskatītās tēmas:

Ja vēlaties apgūt DevOps, ' kurss būtu jūsu izvēles iespēja.



Kas ir Ansible Vault?

Infrastruktūras kā koda lietošana var apdraudēt jūsu sensitīvo datu parādīšanos pasaulē, izraisot nevēlamus drošības jautājumus. Ansible Vault ir funkcija, kas ļauj saglabāt visus noslēpumus drošībā. Tas var šifrēt veselus failus, visas YAML atskaņošanas grāmatas vai pat dažus mainīgos. Tas nodrošina iespēju, kur jūs varat ne tikai šifrēt sensitīvus datus, bet arī integrēt tos savās atskaņošanas grāmatās.

Vault tiek ieviests ar faila līmeņa precizitāti, kur faili ir vai nu pilnībā šifrēti, vai arī pilnīgi nešifrēti. Tas izmanto to pašu paroli failu šifrēšanai, kā arī failu atšifrēšanai, kas padara Ansible Vault lietošanu ļoti draudzīgu lietotājam.

Kāpēc izmantot Ansible Vault?

Tā kā automatizēšanai tiek izmantots Ansible, pastāv liela iespēja, ka atskaņošanas grāmatās ir noteikti akreditācijas dati, SSL sertifikāti vai citi sensitīvi dati. Šādu sensitīvu datu kā vienkārša teksta saglabāšana ir slikta ideja. Viena nepareiza saistība ar GitHub vai klēpjdatora zādzība var radīt organizācijai milzīgus zaudējumus. Šeit attēlā parādās Ansible vault. Tas ir lielisks veids, kā infrastruktūru izmantot kā kodu, neapdraudot drošību.



Pieņemsim, ka mums ir spēļu grāmata, kas nodrošina jūsu EC2 instanci AWS. Spēlgrāmatā ir jānorāda AWS piekļuves atslēgas ID un AWS slepenā atslēga. Acīmredzamu iemeslu dēļ šīs atslēgas nedalāties citiem. Kā jūs tos uzturat neeksponētus? Ir divi veidi - vai nu šifrēt šos divus mainīgos un iegult tos playbook, vai arī šifrēt visu playbook.

Šis bija tikai viens no scenārijiem, kur var izmantot pieļaujamo velvju. Mēs varam vai nu šifrēt visus failus, vai arī vienkārši šifrēt dažus mainīgos, kas var saturēt sensitīvus datus, un pēc tam Ansible izpildlaika laikā tos automātiski atšifrē. Tagad mēs varam droši nodot šīs vērtības GitHub.

Šifrēta faila izveide

Lai izveidotu šifrētu failu, izmantojiet ansible-velve izveidot komandu un nodot faila nosaukumu.

$ ansible-vault izveidojiet faila nosaukumu.yaml

Jums tiks piedāvāts izveidot paroli un pēc tam to apstiprināt, atkārtoti ierakstot.

ansible velve izveidot - Ansible Vault - Edureka

Kad parole būs apstiprināta, tiks izveidots jauns fails, kas atvērs rediģēšanas logu. Pēc noklusējuma Ansible Vault redaktors ir vi. Jūs varat pievienot datus, saglabāt un iziet.

Un jūsu fails ir šifrēts.

Šifrētu failu rediģēšana

Ja vēlaties rediģēt šifrētu failu, varat to rediģēt, izmantojot ansible-velvju rediģēšana komandu.

$ ansible-vault edit secrets.txt

Kur secrets.txt ir jau izveidots, šifrēts fails.

Jums tiks piedāvāts ievietot glabātuves paroli. Fails (atšifrētā versija) tiks atvērts vi redaktorā, un pēc tam jūs varat veikt nepieciešamās izmaiņas.

Ja pārbaudīsit izvadi, redzēsit, ka saglabājot un aizverot, teksts tiks automātiski šifrēts.

Šifrētā faila skatīšana

Ja vēlaties tikai apskatīt šifrētu failu, varat izmantot skats uz ansible-velvju komandu.

$ ansible-vault skata faila nosaukums.yml

Atkal jums tiks lūgts ievadīt paroli.

un jūs redzēsiet līdzīgu rezultātu.

Atkārtoti glabātavas parole

Protams, ir gadījumi, kad vēlaties nomainīt glabātavas paroli. Jūs varat izmantot ansible-velvju rekey komandu.

$ ansible-vault rekey secrets.txt

Jums tiks piedāvāts uzrādīt pašreizējo paroli un pēc tam jauno paroli, un, visbeidzot, apstipriniet jauno paroli.

Nešifrētu failu šifrēšana

Pieņemsim, ka jums ir fails, kuru vēlaties šifrēt, varat izmantot ansible-velvju šifrēšana komandu.

$ ansible-vault šifrēt faila nosaukumu.txt

Jums tiks piedāvāts ievietot un apstiprināt paroli, un fails tiks šifrēts.

Tagad, kad skatāties faila saturu, tas viss ir šifrēts.

Šifrētu failu atšifrēšana

Ja vēlaties atšifrēt šifrētu failu, varat to izmantot atšifrējams komandu.

$ ansible-vault atšifrēt faila nosaukumu.txt

Kā parasti, tas liks jums ievietot un apstiprināt glabātavas paroli.

Konkrētu mainīgo šifrēšana

Labākā prakse, izmantojot Ansible Vault, ir šifrēt tikai sensitīvos datus. Iepriekš izskaidrotajā piemērā izstrādes komanda nevēlas koplietot savu paroli ar ražošanas un iestudēšanas komandu, taču viņiem, iespējams, būs nepieciešama piekļuve noteiktiem datiem, lai veiktu savu uzdevumu. Šādos gadījumos jums vajadzētu šifrēt tikai tos datus, kurus nevēlaties kopīgot ar citiem, pārējos atstājot tādus, kādi tie ir.

Ansible Vault ļauj šifrēt tikai konkrētus mainīgos. Jūs varat izmantot ansible-vault encrypt_string komandu.

$ ansible-vault encrypt_string

Jums tiks piedāvāts ievietot un pēc tam apstiprināt glabātavas paroli. Pēc tam jūs varat sākt ievietot virknes vērtību, kuru vēlaties šifrēt. Nospiediet taustiņu kombināciju Ctrl-d, lai beigtu ievadi. Tagad jūs varat piešķirt šo šifrētovērtībauz virkni spēļu grāmatā.

Jūs varat arī sasniegt to pašu vienā rindā.

$ ansible-vault encrypt_string 'string' - nosaukums 'mainīgais_nosaukums'

Šifrētu failu atšifrēšana izpildes laikā

Ja vēlaties atšifrēt failu izpildes laikā, varat to izmantot –Uzdevums-velvju pase karogu.

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

Tas atšifrēs visus šifrētos failus, kas tiek izmantoti šīs palaišanas .yml izpildīšanai. Tas ir iespējams tikai tad, ja visi faili ir šifrēti ar vienu un to pašu paroli.

anonīma klase java]

Paroles uzvednes var kļūt nepatīkamas. Automatizācijas mērķis kļūst bezjēdzīgs. Kā mēs to uzlabosim? Ansible ir funkcija ar nosaukumu “paroles fails”, kas atsaucas uz failu, kurā ir parole. Pēc tam izpildes laikā varat vienkārši nodot šo paroles failu, lai to automatizētu.

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

Ir iespējams arī izveidot atsevišķu skriptu, kas norāda paroles. Jums jāpārliecinās, vai skripta fails ir izpildāms, un parole ir izdrukāta standarta izvadē, lai tas darbotos bez kaitinošām kļūdām.

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

Izmantojot Vault Id

Vault ID ir veids, kā nodrošināt identifikatoru konkrētai glabātavas parolei. Vault ID palīdz šifrēt dažādus failus ar dažādām parolēm, uz kurām var atsaukties playbook. Šī Ansible funkcija parādījās, izlaižot Ansible 2.4. Pirms šīs laidiena katrā iespējamā atskaņošanas grāmatas izpildē varēja izmantot tikai vienu glabātavas paroli.

Tāpēc tagad, ja vēlaties izpildīt Ansible playbook, kurā tiek izmantoti vairāki faili, kas šifrēti ar dažādām parolēm, varat izmantot Vault Id.

$ ansible-playbook --vault-id vault-pass1 --vault-id vault-pass2 faila nosaukums.yml

Ar to mēs esam nonākuši pie šī Ansible Vault emuāra beigām. Ir pārsteidzoši panākt tehnoloģijas un izmantot tās pēc iespējas pilnīgāk, bet ne kompromitējot drošību. Tas ir viens no labākajiem veidiem, kā iegūt infrastruktūru kā kodu (IaC).

Ja jums šķiet, ka šis raksts ir noderīgs, skatiet vietni ' piedāvā Edureka. Tas aptver visus rīkus, kas ir padarījuši IT nozari gudrāku.

Vai mums ir jautājums? Lūdzu, ievietojiet to vietnē un mēs sazināsimies ar jums.