ansible-vault_使用Ansible Vault改善您的DevOps安全游戏

ansible-vault

您可能已经确定了DevOps的工作流程,但是您应该不断努力提高此类实现的操作成熟度。 我使用的一种工具是Red Hat的Ansible ,它非常适合编排和配置管理。 Ansible的入门门槛低且简单,这就是为什么这么多开始使用Ansible的人学会爱上它的原因。

Ansible中的一个功能是开发人员应该更经常使用的功能是Ansible Vault

根据其文档,Ansible Vault(1.5)的最新版本允许将“敏感数据(例如密码或密钥)保留在加密文件中,而不是在剧本或角色中保留为纯文本。然后可以分发或存储这些保管库文件。置于源代码管理中。”

通常,私有SSL证书,API密钥和其他敏感数据会在GitHub上或通过其他一些意外方式公开发布。 Ansible Vault通过AES256加密您的机密,以便您可以将其安全地存储在Ansible Playbook和清单中。

创建文件库很简单:


ansible-vault create vault.yml 

系统将提示您输入密码,该密码将与需要访问Vault的其他用户共享。 您输入变量,秘密等,并在完成后保存文件。 如果您尝试在文本编辑器中编辑vault.yml ,您将看到类似以下内容:

Up your DevOps security game with Ansible Vault

编辑库文件就像创建一个库文件一样简单:


ansible-vault edit vault.yml 

您可以将Ansible的配置( ansible.cfg )指向存储库外部的Vault密码文件。 该文件中只有Ansible Vault密码。 此步骤使您无需在每次编辑Ansible Vault时都输入密码:


vault_password_file = ~/.ansible_vault 

当使用多个库文件(例如host_varsgroup_vars时,它还可以提供host_vars group_vars 。 如果您有一个包含文件库文件的目录,则可以将所有文件grep到可能已放错位置的变量中:


ls -1 | while read N ; do echo -n $N: ; ansible-vault --vault-password-file ~/.ansible_vault view $N | grep STRING ; done 

另一个不错的技巧是使用Ansible Vault加密SSL / TLS密钥。 这样,您可以将它们及其配置保留在版本控制中。 您可以使用简单的命令对密钥进行加密:


ansible-vault encrypt private.pem 

然后,您可以通过查找将键作为变量调用,并将其部署到远程系统上的文件中:



   
   
---
- hosts: host.domain.tld
  vars:
    - private_key: "{{ lookup('file', 'files/private.pem') }}"
  tasks:
    - name: Place certs on systems
      copy: content={{ item.content }} dest=/etc/pki/tls/certs/{{ item.dest }} owner=root group=root mode={{ item.mode }}
      with_items:
        - { content: "{{ private_key }}", dest: 'private.pem', mode: '0600' }

您解密的私钥将落在系统上,可以立即使用。

如您所见,Ansible Vault的可能性是无限的,您的开发和运营可以从其使用中受益匪浅。

翻译自: https://opensource.com/article/16/12/devops-security-ansible-vault

ansible-vault

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值