Hva er Ansible Vault?

Ansible Vault er en innebygd funksjon i Ansible som krypterer sensitiv data som passord, API-nøkler og sertifikater slik at de kan lagres sikkert sammen med playbooks og roller i versjonskontroll. Den bruker AES-256 symmetrisk kryptering med PBKDF2-nøkkelderivering, noe som betyr at ett enkelt passord brukes til både kryptering og dekryptering. Vault-kryptert innhold identifiseres av $ANSIBLE_VAULT;1.1;AES256-headeren etterfulgt av heksadesimal-kodet chiffertekst.

Ansible Vault løser en fundamental DevOps-utfordring: hvordan holde hemmeligheter i samme depot som infrastrukturkode uten å eksponere dem. I stedet for å administrere separate hemmelighetslagre eller stole på miljøvariabler, kan team committe krypterte filer direkte til Git og dekryptere dem ved kjøretid under playbook-kjøring.

Verktøybeskrivelse

Dette verktøyet krypterer og dekrypterer Ansible Vault-innhold direkte i nettleseren. Skriv inn et vault-passord og ren tekst for å produsere en fullt kompatibel kryptert vault-blob, eller lim inn en eksisterende vault-blob for å avsløre den opprinnelige hemmeligheten. Ingen data forlater nettleseren — alle kryptografiske operasjoner kjøres på klientsiden.

Eksempler

Kryptering av ren tekst:

Inndata (ren tekst):

db_password: s3cur3P@ss!

Utdata (kryptert vault):

$ANSIBLE_VAULT;1.1;AES256
33383239333036363833303565653032383832663162356533343630623030613133623032636566
6536303436646561356461623866386133623462383832620a646363626137626635353462386430
34333937313366383038346135656563316236313139333933383139376333353266666436316536
6335376265313432610a313537363637383264646261303637646631346137393964386432313633
3666

Dekryptering av vault-innhold:

Lim inn den krypterte blokken ovenfor med det riktige passordet for å gjenopprette den opprinnelige db_password: s3cur3P@ss!-verdien.

Funksjoner

  • AES-256-kryptering fullt kompatibel med Ansible Vault 1.1-format
  • Kun klientsiden — ingen data sendes til noen server
  • Støtter både kryptering og dekryptering med ett enkelt passordsfelt
  • Øyeblikkelig konvertering med live forhåndsvisning mens du skriver
  • Fungerer med flerlinjehemmeligheter, YAML-fragmenter og vilkårlig tekst

Brukstilfeller

  • Raskt kryptere en ny hemmelighet før du committer den til et Git-depot som inneholder Ansible playbooks
  • Dekryptere og inspisere vault-innhold under feilsøking uten å trenge Ansible installert lokalt
  • Dele krypterte hemmeligheter med lagkamerater som kan dekryptere dem i nettleseren ved hjelp av et delt vault-passord

Hvordan det fungerer

Ansible Vault 1.1 bruker følgende prosess:

  1. Nøkkelderivering — PBKDF2-HMAC-SHA256 utleder en 80-byte-nøkkel fra passordet og en tilfeldig salt (10 000 iterasjoner). Nøkkelen deles inn i en 32-byte-krypteringsnøkkel, en 32-byte-HMAC-nøkkel og en 16-byte-IV.
  2. Kryptering — Renteksten krypteres med AES-256-CTR ved hjelp av den utledede nøkkelen og IV-en.
  3. Autentisering — En HMAC-SHA256 beregnes over chifferteksten for å sikre integritet.
  4. Koding — Salten, HMAC-sammendraget og chifferteksten blir heksadesimal-kodet og kombinert under $ANSIBLE_VAULT;1.1;AES256-headeren.

Dekryptering reverserer prosessen: passordet utleder på nytt de samme nøklene, bekrefter HMAC-en og dekrypterer chifferteksten.

Begrensninger

  • Støtter kun Ansible Vault 1.1-format med AES-256-kryptering
  • Støtter ikke vault ID-etiketter for flerpasords-oppsett
  • Store filer kan forårsake korte UI-forsinkelser på grunn av det CPU-intensive nøkkelderiveringstrinnet