cyberark.conjur-host-identity
Conjur Ansible 角色
这个 Ansible 角色提供了为主机授权 Conjur 机器身份的能力。 一旦主机通过这个角色创建了身份,就可以使用 Summon 工具安全地获取秘密。
推荐阅读
- 想了解更多关于 Conjur 的信息,试试看。
- 想了解更多关于如何将 Conjur 与 Ansible 集成的信息,请访问 集成文档。
- 想了解更多关于 Summon 的信息,该工具可以将从 Conjur 检索的秘密值导入到应用程序,访问 Summon 网页。
- 想了解关于其他与 Conjur 集成方式的信息,请访问 Conjur 文档。
要求
- Conjur v1+ 或 Conjur Enterprise(以前称为 DAP)v10+
- Conjur Enterprise v4
- Ansible v2.8
如果您使用的是 Ansible v2.9+,请考虑使用我们的 Ansible 集合。
使用 ansible-conjur-host-identity 与 Conjur 开源版本
您是否在使用 Conjur 开源版 的这个项目?那么我们 强烈 建议您从最新的 Conjur OSS 套件发布 选择要使用的这个项目的版本。Conjur 维护者对套件发布版本进行了额外的测试,以确保兼容性。尽可能将您的 Conjur 版本升级到匹配 最新的套件发布;在使用集成时,选择与您的 Conjur 版本匹配的最新套件发布。如有任何问题,请通过 Discourse 联系我们。
使用说明
在您的 playbook 目录中使用以下命令安装 Conjur 角色:
$ ansible-galaxy install cyberark.conjur-host-identity
Conjur 角色提供了一种方法来“Conjurize” 或建立远程节点的 Conjur 身份。然后可以授予该节点最低权限,以安全地检索所需的秘密。
角色变量
conjur_appliance_url
*
:您要连接的 Conjur / Conjur Enterprise 实例的 URL。 在连接到 HA Conjur Enterprise 主集群时,这将是主负载均衡器的 URL。conjur_account
*
:您要连接的 Conjur 实例的账户名称。conjur_host_factory_token
*
:主机工厂 注册令牌。 应在 Ansible 控制主机的环境中指定。conjur_host_name
*
:主机工厂创建的主机身份名称。conjur_ssl_certificate
:您要连接的 Conjur Enterprise 实例的 PE 中编码的 x509 CA 证书链。您可以通过运行以下命令获取此值:$ openssl s_client -showcerts -servername [CONJUR_DNS_NAME] -connect [CONJUR_DNS_NAME]:443 < /dev/null 2> /dev/null
conjur_validate_certs
:布尔值,用于指示客户端是否应验证 Conjur 服务器证书。summon.version
:要安装的 Summon 版本。默认值为0.8.3
。summon_conjur.version
:要安装的 Summon-Conjur 提供程序的版本。默认值为0.5.3
。
带有 *
标记的变量是必填字段。其他变量在使用 HTTPS Conjur 端点时是必需的,但在使用 HTTP Conjur 端点时不是必需的。
示例 Playbook
配置具有 Conjur 身份和 Summon 的远程节点:
- hosts: servers
roles:
- role: cyberark.conjur-host-identity
conjur_appliance_url: 'https://conjur.myorg.com/api',
conjur_account: 'myorg',
conjur_host_factory_token: "{{lookup('env', 'HFTOKEN')}}",
conjur_host_name: "{{inventory_hostname}}"
此示例:
- 使用提供的主机工厂令牌将主机注册到 Conjur,并将其添加到特定层中。
- 安装 Summon 及其 Summon-Conjur 提供程序,以从 Conjur 检索秘密。
Summon 和服务管理器
安装 Summon 后,使用 Conjur 和服务管理器(如 SystemD)变得很简单。 以下是连接到 Conjur 的 SystemD 文件的简单示例:
[Unit]
Description=DemoApp
After=network-online.target
[Service]
User=DemoUser
#Environment=CONJUR_MAJOR_VERSION=4
ExecStart=/usr/local/bin/summon --yaml 'DB_PASSWORD: !var staging/demoapp/database/password' /usr/local/bin/myapp
上面的示例使用 Summon 检索存储在 staging/myapp/database/password
中的密码,将其设置为环境变量 DB_PASSWORD
,并提供给演示应用程序进程。使用 Summon 后,秘密不会存储在磁盘上。如果服务被重新启动,Summon 会在应用程序启动时再次检索密码。
依赖
无
推荐
- 重要: 在每个使用敏感数据的 play 中添加
no_log: true
, 否则这些数据可能会打印到日志中。 - 将 Ansible 文件设置为最小权限。Ansible 使用运行它的用户的权限。
贡献
我们欢迎各种形式的贡献到这个存储库。有关如何开始和我们开发工作流程的说明,请参见我们的 贡献指南。
许可
版权所有 (c) 2020 CyberArk Software Ltd. 保留所有权利。
本存储库依据 Apache License 2.0 授权 - 详见 LICENSE
文件。
ansible-galaxy install cyberark.conjur-host-identity