Quanto maior o uso de tecnologia, maior a possível ameaça à segurança. Uma configuração típica do Ansible requer que você insira “Segredos”. Esses segredos podem ser literalmente qualquer coisa, senhas, tokens de API, chaves SSH públicas ou privadas, certificados SSL, etc. Como mantemos esses segredos seguros? O Ansible fornece um recurso chamado Ansible Vault.
Neste blog, vou demonstrar como usar o Ansible Vault e explorar algumas das práticas recomendadas para manter os dados seguros.
Tópicos abordados neste blog:
- O que é o Ansible Vault?
- Por que usar o Ansible Vault?
- Criação de arquivo criptografado
- Editando arquivos criptografados
- Visualizando Arquivo Criptografado
- Rekeying Vault Password
- Criptografando arquivos não criptografados
- Descriptografando arquivos criptografados
- Criptografando variáveis específicas
- Descriptografando arquivos criptografados durante o tempo de execução
- Usando o ID do Vault
Se você deseja dominar DevOps, ' o curso seria sua opção preferida.
O que é o Ansible Vault?
Ter a infraestrutura como código pode representar a ameaça de expor seus dados confidenciais para o mundo, levando a problemas de segurança indesejados. O Ansible Vault é um recurso que permite manter todos os seus segredos protegidos. Ele pode criptografar arquivos inteiros, playbooks inteiros de YAML 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.
O Vault é implementado com granularidade de nível de arquivo, em que os arquivos são totalmente criptografados ou totalmente não criptografados. Ele usa a mesma senha para criptografar, bem como para descriptografar arquivos, o que torna o uso do Ansible Vault muito amigável.
Por que usar o Ansible Vault?
Como o Ansible está sendo usado para automação, há uma grande possibilidade de que os manuais contenham certas credenciais, certificados SSL ou outros dados confidenciais. Salvar dados confidenciais como texto simples é uma má ideia. Um compromisso incorreto com o GitHub ou roubo de laptop pode causar uma grande perda para a organização. É aqui que o cofre de Ansible entra em cena. É uma ótima maneira de ter a infraestrutura como código, sem comprometer a segurança.
Suponha que temos um manual que provisiona sua instância EC2 na AWS. Você precisa fornecer seu ID de chave de acesso da AWS e chave secreta da AWS no manual. Você não compartilha essas chaves com outras pessoas por motivos óbvios. Como você os mantém não expostos? Existem duas maneiras - criptografar essas duas variáveis e incorporá-las ao manual ou criptografar todo o manual.
Este foi apenas um dos cenários em que a abóbada de ansible pode ser usada. Podemos criptografar arquivos inteiros ou apenas criptografar algumas variáveis que podem conter dados confidenciais e então o Ansible os descriptografa automaticamente durante o tempo de execução. Agora podemos comprometer esses valores com segurança no GitHub.
Criação de arquivo criptografado
Para criar um arquivo criptografado, use o ansible-vault criar comando e passe o nome do arquivo.
$ ansible-vault create filename.yaml
Será solicitado que você crie uma senha e confirme-a digitando-a novamente.
Assim que sua senha for confirmada, um novo arquivo será criado e uma janela de edição será aberta. Por padrão, o editor do Ansible Vault é o vi. Você pode adicionar dados, salvar e sair.
E seu arquivo está criptografado.
Editando arquivos criptografados
Se você quiser editar um arquivo criptografado, pode editá-lo usando edição do ansible-vault comando.
$ ansible-vault edit secrets.txt
Onde secrets.txt é um arquivo criptografado já criado.
Você será solicitado a inserir a senha do cofre. O arquivo (versão descriptografada) será aberto em um editor vi e então você poderá fazer as alterações necessárias.
Se você verificar a saída, verá que seu texto será criptografado automaticamente quando você salvar e fechar.
Visualizando Arquivo Criptografado
Se você deseja apenas ver um arquivo criptografado, você pode usar o vista da abóbada ansible comando.
$ ansible-vault view filename.yml
Novamente, você será solicitado a fornecer uma senha.
e você verá uma saída semelhante.
Rekeying Vault Password
Claro, há momentos em que você deseja alterar a senha do cofre. Você pode usar o rekey do ansible-vault comando.
$ ansible-vault rekey secrets.txt
Você será solicitado com a senha atual do cofre e, em seguida, a nova senha e, finalmente, confirmado a nova senha.
Criptografando arquivos não criptografados
Suponha que você tenha um arquivo que deseja criptografar, você pode usar o criptografar ansible-vault comando.
$ ansible-vault encrypt filename.txt
Você será solicitado a inserir e confirmar a senha e seu arquivo está criptografado.
Agora que você viu o conteúdo do arquivo, está tudo criptografado.
Descriptografando arquivos criptografados
Se você deseja descriptografar um arquivo criptografado, você pode usar Ansible-Vault descriptografar comando.
$ ansible-vault decrypt filename.txt
Como de costume, ele solicitará que você insira e confirme a senha do cofre.
Criptografando variáveis específicas
A prática recomendada ao usar o Ansible Vault é criptografar apenas os dados confidenciais. No exemplo explicado acima, a equipe de desenvolvimento não deseja compartilhar sua senha com a equipe de produção e de teste, mas pode precisar de acesso a certos dados para realizar suas próprias tarefas. Nesses casos, você deve criptografar apenas os dados que não deseja compartilhar com outras pessoas, deixando o resto como está.
O Ansible Vault permite criptografar apenas variáveis específicas. Você pode usar o ansible-vault encrypt_string comando para isso.
$ ansible-vault encrypt_string
Você será solicitado a inserir e confirmar a senha do cofre. Você pode então começar a inserir o valor da string que deseja criptografar. Pressione ctrl-d para encerrar a entrada. Agora você pode atribuir este criptografadovalora uma corda no manual.
Você também pode conseguir a mesma coisa em uma única linha.
$ ansible-vault encrypt_string 'string' --nome 'nome_variável'
Descriptografando arquivos criptografados durante o tempo de execução
Se você deseja descriptografar um arquivo durante o tempo de execução, você pode usar –Ask-vault-pass bandeira.
$ ansible-playbook launch.yml --ask-vault-pass
Isso irá descriptografar todos os arquivos criptografados usados para a execução deste manual launch.yml. Além disso, isso só é possível se todos os arquivos forem criptografados com a mesma senha.
As solicitações de senha podem ser irritantes. O objetivo da automação torna-se inútil. Como podemos tornar isso melhor? O Ansible possui um recurso denominado “arquivo de senha” que se refere a um arquivo que contém a senha. Você pode simplesmente passar esse arquivo de senha durante o tempo de execução para automatizá-lo.
$ ansible-playbook launch.yml --vault-password-file ~ / .vault_pass.txt
Também é possível ter um script separado que especifica as senhas. Você precisa se certificar de que o arquivo de script é executável e a senha impressa na saída padrão para que funcione sem erros irritantes.
como usar a classe scanner em java
$ ansible-playbook launch.yml --vault-password-file ~ / .vault_pass.py
Usando o ID do Vault
A ID do Vault é uma forma de fornecer um identificador para uma senha específica do Vault. O Vault ID ajuda a criptografar arquivos diferentes com senhas diferentes para serem referenciados em um manual. Esse recurso do Ansible foi lançado com o lançamento do Ansible 2.4. Antes deste lançamento, apenas uma senha do cofre podia ser usada em cada execução do manual ansible.
Então, agora, se você deseja executar um manual do Ansible que usa vários arquivos criptografados com senhas diferentes, você pode usar a ID do Vault.
$ ansible-playbook --vault-id vault-pass1 --vault-id vault-pass2 filename.yml
Com isso, chegamos ao fim deste blog do Ansible Vault. É incrível atualizar-se com a tecnologia e aproveitá-la ao máximo, mas sem comprometer a segurança. Esta é uma das melhores maneiras de ter Infraestrutura como código (IaC).
Se você achar este artigo útil, verifique o ' oferecido por Edureka. Abrange todas as ferramentas que tornaram o setor de TI mais inteligente.
Tem alguma questão para nós? Por favor, poste em e entraremos em contato com você.