O que é Ansible Vault?

Ansible Vault é um recurso integrado do Ansible que criptografa dados sensíveis como senhas, chaves de API e certificados para que possam ser armazenados com segurança junto com playbooks e roles no controle de versão. Ele usa criptografia simétrica AES-256 com derivação de chave PBKDF2, o que significa que uma única senha é usada tanto para criptografia quanto para descriptografia. O conteúdo criptografado com Vault é identificado pelo cabeçalho $ANSIBLE_VAULT;1.1;AES256 seguido por texto cifrado codificado em hexadecimal.

Ansible Vault resolve um desafio fundamental de DevOps: como manter segredos no mesmo repositório que o código de infraestrutura sem expô-los. Em vez de gerenciar armazenamentos de segredos separados ou depender de variáveis de ambiente, as equipes podem fazer commit de arquivos criptografados diretamente no Git e descriptografá-los em tempo de execução durante a execução do playbook.

Descrição da ferramenta

Esta ferramenta criptografa e descriptografa conteúdo Ansible Vault diretamente no navegador. Digite uma senha de vault e texto simples para produzir um blob de vault criptografado totalmente compatível, ou cole um blob de vault existente para revelar o segredo original. Nenhum dado sai do navegador — todas as operações criptográficas são executadas no lado do cliente.

Exemplos

Criptografando texto simples:

Entrada (texto simples):

db_password: s3cur3P@ss!

Saída (vault criptografado):

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

Descriptografando conteúdo de vault:

Cole o bloco criptografado acima com a senha correta para recuperar o valor original db_password: s3cur3P@ss!.

Recursos

  • Criptografia AES-256 totalmente compatível com o formato Ansible Vault 1.1
  • Apenas no lado do cliente — nenhum dado é enviado para nenhum servidor
  • Suporta criptografia e descriptografia com um único campo de senha
  • Conversão instantânea com visualização ao vivo conforme você digita
  • Funciona com segredos multi-linha, fragmentos YAML e texto arbitrário

Casos de uso

  • Criptografar rapidamente um novo segredo antes de fazer commit em um repositório Git contendo playbooks Ansible
  • Descriptografar e inspecionar conteúdo de vault durante depuração sem precisar ter Ansible instalado localmente
  • Compartilhar segredos criptografados com colegas de equipe que podem descriptografá-los no navegador usando uma senha de vault compartilhada

Como funciona

Ansible Vault 1.1 usa o seguinte processo:

  1. Derivação de chave — PBKDF2-HMAC-SHA256 deriva uma chave de 80 bytes a partir da senha e um salt aleatório (10.000 iterações). A chave é dividida em uma chave de criptografia de 32 bytes, uma chave HMAC de 32 bytes e um IV de 16 bytes.
  2. Criptografia — O texto simples é criptografado com AES-256-CTR usando a chave derivada e o IV.
  3. Autenticação — Um HMAC-SHA256 é calculado sobre o texto cifrado para garantir integridade.
  4. Codificação — O salt, digest HMAC e texto cifrado são codificados em hexadecimal e combinados sob o cabeçalho $ANSIBLE_VAULT;1.1;AES256.

A descriptografia inverte o processo: a senha re-deriva as mesmas chaves, verifica o HMAC e descriptografa o texto cifrado.

Limitações

  • Suporta apenas o formato Ansible Vault 1.1 com criptografia AES-256
  • Não suporta rótulos de ID de vault para configurações com múltiplas senhas
  • Arquivos grandes podem causar breves atrasos na interface do usuário devido à etapa de derivação de chave intensiva em CPU