如何在Ansible AWX中安全配置并自动获取Conjur API密钥
Ansible AWX 对接 CyberArk Conjur 自动拉取API Key配置方案
核心采用Conjur JWT认证模式实现无手动输入密钥的对接流程,全程不会将任何凭据存储在Ansible剧本或AWX的明文配置中,符合安全管控要求。
前置配置(Conjur侧)
- 确认你的Conjur版本支持JWT认证能力,在Conjur侧编写并加载JWT认证策略,绑定AWX的服务身份,同时给该身份授予对应目标密钥的访问权限
- 记录Conjur实例访问地址、组织账号、目标密钥的完整存储路径
- 放行AWX集群节点到Conjur服务443端口的网络访问策略
AWX侧凭据配置(对应你提供的配置界面)
前提确认:AWX版本≥17.0,已内置CyberArk Conjur外部凭据源支持,版本过低需先升级或提前在AWX执行环境中安装conjur-api Python依赖。
进入AWX控制台「凭据」管理页,点击「添加凭据」后按以下规则配置:
- 凭据类型选择 CyberArk Conjur Secret Lookup
- 按界面提示填入基础配置:
- Conjur服务URL:填写你的Conjur实例访问地址
- Conjur组织账号:填写Conjur侧分配的组织名称
- Conjur认证登录名:填写Conjur策略中绑定的AWX服务身份ID
- 认证方式选择JWT认证,无需手动填写Conjur API Key,AWX会在需要拉取密钥时自动生成合法JWT令牌,向Conjur申请临时API Key完成身份认证
- 关联业务凭据:在你需要用到Conjur存储密钥的其他业务凭据(如SSH凭据、云API凭据、数据库凭据等)的密钥输入项,选择「从外部凭据源查找」,选中刚才配置的Conjur凭据,填入目标密钥在Conjur中的存储路径即可
功能验证
你可以通过以下测试剧本验证配置是否生效,全程不需要在剧本内写入任何密钥信息:
- name: Conjur密钥拉取测试 hosts: 目标主机组 tasks: - name: 验证密钥注入(生产环境禁止执行该打印操作) ansible.builtin.debug: var: 你的凭据变量名 no_log: true # 生产环境必须开启该配置,避免密钥泄露到执行日志
执行作业时AWX会自动向Conjur请求对应密钥,直接注入到剧本的运行时环境,作业执行结束后临时密钥会自动销毁,不会做持久化存储。
内容的提问来源于stack exchange,提问作者san
相关产品推荐
相关产品推荐

