Sikre hemmelighetene dine med Ansible Vault



Denne Ansible hvelvbloggen forklarer hvordan sensitive data (passord / hemmelig nøkkel / sert-filer) lagres i krypterte filer og er innebygd i Ansible Playbooks.

Høyere bruk av teknologi, jo større er den mulige trusselen mot sikkerheten. Et typisk Ansible-oppsett krever at du leverer inn 'Secrets'. Disse hemmelighetene kan være bokstavelig talt hva som helst, passord, API-tokens, SSH offentlige eller private nøkler, SSL-sertifikater osv. Hvordan holder vi disse hemmelighetene trygge? Ansible har en funksjon som heter Ansible Vault.

I denne bloggen vil jeg demonstrere hvordan du bruker Ansible Vault og utforske noen av de beste metodene for å holde dataene trygge.





Emner dekket i denne bloggen:

Hvis du ønsker å mestre DevOps, ' selvfølgelig ville være ditt valg til alternativet.



Hva er Ansible Vault?

Å ha infrastruktur som kode kan utgjøre en trussel om å eksponere sensitive data for verden, noe som kan føre til uønskede sikkerhetsproblemer. Ansible Vault er en funksjon som lar deg holde alle hemmelighetene dine trygge. Det kan kryptere hele filer, hele YAML-spillbøker eller til og med noen få variabler. Det gir et anlegg der du ikke bare kan kryptere sensitive data, men også integrere dem i spillbøkene dine.

Hvelv er implementert med granularitet på filnivå der filene enten er helt kryptert eller helt ukryptert. Den bruker samme passord for kryptering så vel som for dekryptering av filer, noe som gjør bruk av Ansible Vault veldig brukervennlig.

Hvorfor bruke Ansible Vault?

Ettersom Ansible brukes til automatisering, er det stor mulighet for at spillbøker inneholder visse legitimasjonsbeskrivelser, SSL-sertifikater eller andre sensitive data. Å lagre sensitive data som ren tekst er en dårlig idé. En feil forpliktelse til GitHub eller bærbar PC-tyveri kan føre til at en organisasjon mister et stort tap. Det er her Ansible hvelv kommer inn i bildet. Det er en flott måte å ha infrastruktur som kode uten å gå på akkord med sikkerheten.



Anta at vi har en lekebok som gir EC2-forekomsten din AWS. Du må oppgi AWS-tilgangsnøkkel-ID og AWS-hemmelige nøkkel i spillboken. Du deler ikke disse nøklene med andre av åpenbare grunner. Hvordan holder du dem ueksponert? Det er to måter - Enten krypterer disse to variablene og legger dem inn i spillboken, eller krypter hele spillboken.

Dette var bare ett av scenariene der ansible hvelv kan brukes. Vi kan enten kryptere hele filer eller bare kryptere noen variabler som kan inneholde sensitive data, og deretter dekrypteres Ansible dem automatisk i løpet av kjøretiden. Nå kan vi trygt forplikte disse verdiene til GitHub.

Opprette kryptert fil

For å opprette en kryptert fil, bruk ansible-hvelv opprette kommandoen og send filnavnet.

$ ansible-vault opprett filnavn.yaml

Du blir bedt om å opprette et passord og deretter bekrefte det ved å skrive det inn på nytt.

ansible vault create - Ansible Vault - Edureka

Når passordet ditt er bekreftet, opprettes en ny fil som åpner et redigeringsvindu. Som standard er redaktøren for Ansible Vault vi. Du kan legge til data, lagre og avslutte.

Og filen din er kryptert.

Redigere krypterte filer

Hvis du vil redigere en kryptert fil, kan du redigere den ved hjelp av ansible-hvelv redigere kommando.

$ ansible-vault rediger secrets.txt

Hvor secrets.txt er en allerede opprettet, kryptert fil.

Du blir bedt om å sette inn passordet til hvelvet. Filen (dekryptert versjon) åpnes i en vi-editor, og deretter kan du gjøre de nødvendige endringene.

Hvis du sjekker utdataene, ser du at teksten din blir kryptert automatisk når du lagrer og lukker.

Viser kryptert fil

Hvis du bare vil se en kryptert fil, kan du bruke ansible-hvelvvisning kommando.

$ ansible-vault se filnavn.yml

Igjen blir du bedt om å oppgi passord.

og du vil se lignende utdata.

Gjenta passord for hvelv

Selvfølgelig er det tidspunkter hvor du vil endre hvelvpassordet. Du kan bruke ansible-hvelv rekey kommando.

$ ansible-vault rekey secrets.txt

Du blir bedt om hvelvets nåværende passord og deretter det nye passordet, og til slutt gjøres ved å bekrefte det nye passordet.

Kryptering av ukrypterte filer

Anta at du har en fil som du vil kryptere, kan du bruke ansible-hvelv kryptere kommando.

$ ansible-vault krypterer filnavn.txt

Du blir bedt om å sette inn og bekrefte passordet, og filen din er kryptert.

Nå som du ser på filinnholdet, er alt kryptert.

Dekryptere krypterte filer

Hvis du vil dekryptere en kryptert fil, kan du bruke den ansible-hvelv dekrypter kommando.

$ ansible-vault dekrypter filnavn.txt

Som vanlig vil den be deg om å sette inn og bekrefte passordet til hvelvet.

Kryptering av spesifikke variabler

Beste fremgangsmåten når du bruker Ansible Vault er å kryptere bare sensitive data. I eksemplet som er forklart ovenfor, ønsker ikke utviklingsteamet å dele passordet sitt med produksjonen og iscenesettelsesteamet, men de kan trenge tilgang til visse data for å utføre sin egen oppgave. I slike tilfeller bør du bare kryptere dataene du ikke vil dele med andre, og la resten være som den er.

Ansible Vault lar deg kryptere bare spesifikke variabler. Du kan bruke ansible-vault encrypt_string kommando for dette.

$ ansible-vault encrypt_string

Du blir bedt om å sette inn og bekrefte passordet. Du kan da begynne å sette inn strengverdien du vil kryptere. Trykk ctrl-d for å avslutte inngangen. Nå kan du tilordne dette kryptertverditil en streng i lekeboken.

lage en rekke objekter java

Du kan også oppnå det samme i en enkelt linje.

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

Dekryptere krypterte filer i løpetid

Hvis du ønsker å dekryptere en fil i løpet av kjøretiden, kan du bruke den –Ask-vault-pass flagg.

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

Dette vil dekryptere alle de krypterte filene som brukes til å starte denne.book-spillboken. Dette er også bare mulig hvis alle filene er kryptert med samme passord.

Passordmeldinger kan bli irriterende. Formålet med automatisering blir meningsløst. Hvordan gjør vi dette bedre? Ansible har en funksjon kalt “passordfil” som refererer til en fil som inneholder passordet. Du kan da bare sende denne passordfilen i løpet av kjøretiden for å automatisere den.

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

Å ha et eget skript som spesifiserer passordene er også mulig. Du må sørge for at skriptfilen er kjørbar og passordet skrives ut til standard utdata for at den skal fungere uten irriterende feil.

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

Bruke Vault Id

Vault Id er en måte å gi en identifikator til et bestemt hvelvpassord. Vault ID hjelper deg med å kryptere forskjellige filer med forskjellige passord som det skal henvises til i en spillbok. Denne funksjonen i Ansible kom ut med utgivelsen av Ansible 2.4. Før denne utgivelsen kunne bare ett hvelvpassord brukes i hver utførbare spillbok.

Så nå hvis du ønsker å utføre en Ansible-spillbok som bruker flere filer kryptert med forskjellige passord, kan du bruke Arkiv Id.

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

Med dette kommer vi til slutten av denne Ansible Vault-bloggen. Det er utrolig å ta igjen teknologien og få det meste ut av dem, men ikke ved å gå på akkord med sikkerheten. Dette er en av de beste måtene å ha infrastruktur som kode (IaC).

Hvis du synes denne artikkelen er nyttig, kan du sjekke ut ' tilbudt av Edureka. Den dekker alle verktøyene som har gjort IT-bransjen smartere.

Har du et spørsmål til oss? Vennligst legg den ut på og vi kommer tilbake til deg.