Como usar o Ansible Vault para armazenar chaves secretas

Com a maior parte da automatização, são necessárias credenciais para autenticar e usar recursos seguros. Lo que siempre ha sido un desafo es cul es la mejor forma de almacenar esas credenciales de forma segura. Ansible é um sistema de automatização que fornece provisionamento de software, administração de configuração e implementação de aplicativos.

Ao mesmo tempo que precisa de um sistema de automatização, o Ansible precisa de uma forma segura de segredos de almacenar. No caso do Ansible, este sistema se chama Ansible Vault. O Ansible Vault oferece uma solução multiplataforma para o almacenamento seguro de credenciais.

índice de conteúdo

  1. Apresentamos o Ansible Vault
    1. Cifrado de arquivos
    2. Variável Cifrado
  2. Uso do Ansible Vault na prática
    1. No se requiere descifrado
    2. Ms Vault
    3. Redigitação
  3. Melhores práticas
  4. Concluindo

Apresentamos o Ansible Vault

O Ansible Vault pode ser usado para cifrar cada arquivo, ou as variáveis ​​propias, de dentro de um livro de jugadas. De forma predeterminada, se utiliza AES, que é um código secreto compartilhado. Tanto os métodos de cifrados de arquivos como as variáveis ​​tienen sus ventajas y desventajas.

Cifrado de arquivos

Para criar um novo arquivo cifrado chamado secrets.yml , solo usa ansible-vault .

 ansible-vault create secrets.yml

Despus de solicitar uma contrasea, o ansible-vault comando iniciar o editor de arquivos do sistema predeterminado, o que dará como resultado um arquivo criptografado para salvar.

De maneira semelhante, para criptografar um arquivo previamente não criptografado, use ansible-vault siguiente. Tenga en cuenta que está usando el encrypt parmetro no lugar de create parmetro.

 ansible-vault encrypt secrets.yml

O desventaja de usar o cifrado de arquivos é a legibilidade. Si abre el archivo, encontrar que sin el descifrado es imposible descifrar el contenido.

Variável Cifrado

Dentro de um livro de jugadas, você pode usar uma variável criptografada prefijando os dados criptografados com a etiqueta !vault . executando o tema encrypt_string do ansible_vault comando dá como resultado uma cadeia criptografada que pode ser usada dentro de seus livros de jugadas.

 ansible-vault encrypt_string 'secret_data' --name 'my_secret'

Despus de solicitar una contrasea, obtendr la siguiente cadena encriptada.

 my_secret: !vault | $ANSIBLE_VAULT;1.1;AES256 37636561366636643464376336303466613062633537323632306566653533383833366462366662 6565353063303065303831323539656138653863353230620a653638643639333133306331336365 62373737623337616130386137373461306535383538373162316263386165376131623631323434 3866363862363335620a376466656164383032633338306162326639643635663936623939666238 3161

A variável cifrada é excelente para a legibilidade, mas sacrifica a capacidade de usar a mudança de clave da lnea de comandos que usa este mtodo.

Uso do Ansible Vault na prática

Puede encontrar que usar o Ansible Vault em produção é um desafo. Para usar o Ansible Vault de forma eficaz, as técnicas simplificadas simplificam este processo.

  • No se requiere descifrado
  • Ms Vault
  • Redigitação

No se requiere descifrado

Uma opção para descrever a forma transparente de um arquivo ou variável em uso Ansible é almacenar o contraste dentro de um arquivo de contraste protegido e sem versin. Para fazer referência a esta almacenada contrasea, basta passar a ubicação do arquivo usando o parâmetro vault-password-file .

 ansible-playbook --vault-password-file /path/vault-password-file secrets.yml

Esto descifrar cualquier archivo cifrado o variable incluida usando la contrasea incluida.

É muito importante não colocar o arquivo de contrasea no texto para cifrar o sistema de controle de versões. Asimismo, proteja este arquivo solo para o usuário ou grupo que precisa acessar a contrasea almacenada no sistema de arquivos mediante listas de controle de acesso (ACL).

Ms Vault

Se é conveniente ter uma única bveda com todos os segredos cifrados, uma melhor prática de segurança é separada das credenciais seguras em bvedas relevantes independentes. Un ejemplo de esto sera la separacin de un entorno de produccin y desarrollo. Felizmente, o Ansible Vault nos permite criar mltiples bvedas e referencias dos dados cifrados fornecidos pelo uso de uma etiqueta.

 ansible-vault create --vault-id [email protected] prod-secrets.yml

El cdigo anterior crear un prod bveda y pedir la contrasea en tiempo de ejecucin (como lo indica el @prompt soga). Se você tiver um arquivo de contraste que desea usar, simplesmente passe a rota do arquivo.

 ansible-vault create --vault-id [email protected] /path/prod-vault-password-file prod-secrets.yml

Digamos que queremos cifrar a variável mismo my_secret , mas esta vez la guardamos en la nuestra prod hora. Como antes, usando encrypt_string pero com o vault-id pariente permite que o segredo se almacene na ubicacin especificada.

 ansible-vault encrypt_string --vault-id [email protected] /path/prod-vault-password-file 'secret_data' --name 'my_secret'

Notas que despus de la AES256 cadena, una nueva pieza de texto, prod se muestra. Indica la bveda donde se encuentra o texto cifrado.

 my_secret: !vault | $ANSIBLE_VAULT;1.1;AES256;prod 37636561366636643464376336303466613062633537323632306566653533383833366462366662 6565353063303065303831323539656138653863353230620a653638643639333133306331336365 62373737623337616130386137373461306535383538373162316263386165376131623631323434 3866363862363335620a376466656164383032633338306162326639643635663936623939666238 3161

Que sucede se desea incluir vários depsitos em um livro de jugadas? Pode alterar facilmente as declarações vault-id sobre um ansible-playbook lnea de comando.

 ansible-playbook --vault-id [email protected] /path/dev-vault-password-file --vault-id [email protected] /path/prod-vault-password-file site.yml

Redigitação

Por último, é importante realizar um ciclo de contra-mares com regularidade. Para arquivos criptografados, você pode usar la lnea de comando a continuacin. Passando em new-vault-id El parmetro facilita a troca da contrasea com la que se cifran los secretos.

 ansible-vault rekey --vault-id [email protected] /path/prod-vault-password-file-old --new-vault-id [email protected] /path/prod-vault-password-file-new site.yml

Como selo anteriormente, a mudança de clave da lnea de comandos não funciona para as variáveis ​​cifradas. Neste caso, deber volver a las cadenas individualmente e reemplazar em um livro de jugadas determinadas.

Melhores práticas

A segurança é difícil, especialmente quando trata de usar segredos dentro dos sistemas de automatização. Teniendo esto en cuenta, a continuacin se muestran varias prticas recomendadas para uso cuando se usa Ansible Vault. Aunque ya hemos hablado de esto antes, es prudente reiterar estas práticas.

  • Arquivos de contrasea sin versin y protegidos por ACL Os arquivos de contrasea no deben almacenarse em sistemas de controle de versões, como GIT. Adems, assegrese de que solo los usuarios adecuados puedan acceder al archivo de contraseas.
  • Normalmente, você utiliza muitos ambientes diferentes. Por tanto, é melhor separar as credenciais exigidas e as bvedas apropiadas.
  • Repetição regular de contrastes de arquivos e variáveis. Si las contraseas se reutilizan o se pierden, es mejor volver a escribir las contraseas en use con regularidad para limit la exposicin.

Concluindo

Assim como o sistema de automatização, é de vital importância que os segredos estão debidamente protegidos e controladores. Com Ansible Vault, este processo se torna fácil e flexível. Usando as minhas práticas mais seguras, almacenar e usar secretos dentro de A es seguro.

Para ampliar o ms Ansible Vault e levar este processo ao nível siguiente, você pode usar scripts que se integram nas soluções de gerenciamento de contraseas. Como podemos ver, Ansible Vault é uma excelente maneira de usar segredos dentro dos livros de jugadas do Ansible.

  • AirPods Max de Apple para um mínimo histórico na Amazon
  • A semana do ransomware – 9 de julho de 2021

Descobre ms contenido

Que é um amplificador integrado?

Google Pixel Watch também tem detecção de cadas, pero no hasta el prximo ao

Las melhores tazas de caf calentadas de 2022

Cmo automatize seu iPhone segn el tiempo, la actividad ou la ubicacin

"Eso debe haber sido antes de mi tiempo"

Por qu la NASA enva a Snoopy a la Luna? – Revisando geek

Deja una respuesta Cancelar la respuesta

O que é cofre ansible?

O Ansible Vault é um recurso do Ansible que ajuda a criptografar informações confidenciais sem comprometer a segurança .

O cofre ansible é seguro?

O Ansible Vault é um recurso que permite manter todos os seus segredos seguros . Ele pode criptografar arquivos inteiros, playbooks YAML inteiros ou até mesmo algumas variáveis. Ele fornece um recurso onde você pode não apenas criptografar dados confidenciais, mas também integrá-los em seus manuais.

Como você usa o cofre no ansible-playbook?

Para habilitar esse recurso, uma ferramenta de linha de comando, ansible-vault, é usada para editar arquivos e um sinalizador de linha de comando -ask-vault-pass ou -vault-password-file é usado . Você também pode modificar seu ansible. cfg para especificar o local de um arquivo de senha ou configurar o Ansible para sempre solicitar a senha.

Onde a senha do ansible Vault é armazenada?

Você pode armazenar suas senhas de cofre no chaveiro do sistema, em um banco de dados ou em um gerenciador de segredos e recuperá-las no Ansible usando um script de cliente de senha de cofre. Digite a senha como uma string em uma única linha. Se sua senha tiver um ID de cofre, armazene-o de uma maneira que funcione com sua ferramenta de armazenamento de senha.

Ir arriba