Ansible 的 PAM360 插件

Ansible 是一款由 Red Hat 提供的广受欢迎的开源编排工具,可帮助组织实现配置管理及类似重复性流程的自动化。Ansible 用户可以“剧本”(playbook)的形式编写常规任务的指令,该剧本本质上是一个自动化计划。 执行这些剧本时,通常需要用户凭证以及特权密码、API 密钥和访问令牌等敏感信息,以便与环境中的其他系统、应用程序和服务进行交互。在大多数 DevOps 环境中,此类凭证以明文形式存储在剧本中,以确保任务执行顺畅且不造成服务延迟,但这可能导致许多安全和管理问题。

专为 Ansible 密钥管理开发的 PAM360 查询插件,有助于提升企业 DevOps 管道的安全性。 该插件在 Ansible 中启用后,可确保每次执行剧本时,所需凭证均从 PAM360 的保险库中安全检索,而非嵌入到模板的明文中。凭证安全检索后,即可用于连接远程服务器等操作。此外,该插件还免去了用户每次更新时都需手动在剧本中更新密码/SSH 密钥的繁琐工作。 通常,模板中的凭证过期会导致剧本执行失败。如今,凭证存储在 PAM360 中,不仅会在密钥库中定期轮换,还会在相应的远程设备上同步更新,从而确保在运行剧本时,仅从密钥库中检索到最新的密码或密钥。

以下是使用 PAM360 在 Ansible 中配置并开始管理密钥的两个主要步骤。

  1. 在 PAM360 中启用 Ansible 集成
  2. 在 Ansible 剧本中激活插件

1. 在 PAM360 中启用 Ansible 集成

  1. 登录 PAM360,导航至“管理”>>“DevSecOps”>>“CI/CD 平台”。
  2. 点击“Ansible”选项。
  3. AUTH 令牌点击“生成”以自动生成一个 AUTH 令牌。后续在 Ansible 剧本中配置插件时将需要此令牌。配置完成后,PAM360 将使用此 AUTH 令牌验证所有来自 Ansible 的传入连接。
    Jenkins
  4. 用户名:在此处输入一个有效的 PAM360 用户的用户名,Ansible 将自动使用该账户从 PAM360 的保险库中安全地检索所需的密码。

    注意

    请确保您提供的 PAM360 用户账户具备此工作流所需的最低权限,即查看/检索 Ansible 需连接的资源密码的权限。Ansible 在 PAM360 中仅能访问由该用户拥有并共享的资源密码。

  5. 点击“启用”以在 PAM360 界面中启用此集成。

2. 在 Ansible Playbooks 中激活插件

从技术上讲,PAM360 插件在 Ansible 中被称为“查找插件”。作为 Ansible 用户,您只需将其添加到 Ansible 安装目录下的 lookup 文件夹中,即可激活此自定义查找插件。添加完成后,您可以配置 Playbook,使其在执行过程中需要凭证时触发该插件,插件将自动连接到 PAM360 以检索所需的密码或密钥。

注意

PAM360 的 Ansible 查询插件仅支持Ansible Python 3 及以上版本

以下是使用 PAM360 的查找插件在 Ansible 中实现凭证管理工作流的详细步骤。

  1. 首先,下载该查询插件 此处。从压缩包中提取插件的 Python 脚本(.py)。

    注意

    下载文件时请务必核对 SHA256 值 —SHA256 校验和:3164196bf9feba013367740ae225ffb233ba3977212718db8e5208bf39ea0a32

  2. 现在进入 Ansible 的安装目录,并沿以下路径查找:ansible/lib/ansible/plugins/lookup。
  3. 在 lookup 文件夹中放入该插件文件,然后重启 Ansible 服务。
  4. 服务重新启动后,打开一个嵌入了凭据的剧本,并删除其中的明文凭据。取而代之,添加一条命令来调用 PAM360 查找插件,以连接到 PAM360 并从保险库中安全地检索这些凭据。
  5. 该命令还应指定插件需从 PAM360 检出的资源和账户名称。
  6. 在 playbook 中配置调用插件的命令时,应采用以下格式:
    {{ lookup('pam360','RESOURCENAME', 'ACCOUNTNAME')}}
  7. 对于每个需要特权凭据的 Playbook,请重复上述步骤。在此过程中,请确保您指定的每个资源和账户名称都已预先添加到 PAM360 的保险库中。
  8. 在所需 playbook 中完成必要修改后,请将 PAM360 的 URL 以及之前生成的 AUTH 令牌作为环境变量配置在 Ansible 中。
    • PAM360_URL
    • PAM360_AUTHTOKEN
  9. 至此,您已完成所有配置,现在可以使用 PAM360 在 Ansible 中开始进行凭证管理。



Top