用户和管理员将机器和云凭证上传到 Tower,以便它能够代表用户和管理员访问机器和外部服务。默认情况下,Tower 中的敏感凭证值(如 SSH 密码、SSH 私钥、云服务的 API 令牌)在加密后存储在数据库中。使用由凭证插件支持的外部凭证,您可以将凭证字段(类似密码或 SSH 私钥)映射到存储在 secret management system 中的值,而不是直接将值提供给 Tower。从版本 3.5 开始,Ansible Tower 提供了包括以下几项集成的 secret 管理系统:
CyberArk Application Identity Manager (AIM)
CyberArk Conjur
HashiCorp Vault Key-Value Store (KV)
HashiCorp Vault SSH Secrets Engine
Microsoft Azure Key Management System (KMS)
这些外部密钥值将在运行需要它们的 playbook 之前获取。有关在 Tower 用户界面中指定这些凭证的更多信息,请参阅 凭证。
在配置 Tower 以从第三方系统拉取 (pull) secret 时,本质上是将凭证字段链接到外部系统。要将凭证字段链接到存储在外部系统中的值,请选择与该系统对应的外部凭证,并提供 metadata 来查找所需的值。元数据输入字段是 source credential 的 external credential type 定义的一部分。
Tower 为开发人员、集成人员、管理员和电源用户提供了一个 credential plugin 界面,它能够向 Tower 添加新的外部凭证类型,使其可以扩展以支持其他 secret 管理系统。如需更多详情,请参阅 development docs for credential plugins。
使用 Ansible Tower 用户界面配置和使用每个支持的第三方 secret 管理系统。
首先,创建一个外部凭证来使用 secret 管理系统进行身份验证。至少,为外部凭证提供名称,并为 Credential Type 选择以下其中之一:
导航到目标凭证的凭证表单,并将一个或多个输入字段链接到外部凭证以及元数据,以便在外部系统中找到 secret。在本示例中,Demo Credential 是目标凭证。
对于您想要链接到外部凭证的 Type Details 区域下面的任何字段,请点击输入字段的 按钮。系统会提示您设置输入源,用于检索您的 secret 信息。
选择您要链接的凭证,并点击 Next。这将进入输入源的元数据选项卡。此示例显示了 HashiVault Secret Lookup 的元数据提示。
所需的元数据取决于所选的输入源:
输入源 |
元数据 |
描述 |
---|---|---|
CyberArk AIM |
对象查询(必需) |
对象查找查询。 |
对象查询格式 |
选择 |
|
原因 |
如果对象的策略规定为必需,则请提供签出 secret 的原因,如同 CyberArk 日志。 |
|
CyberArk Conjur |
secret 标识符 |
secret 的标识符。 |
secret 版本 |
如果需要,请指定 secret 的版本,否则保留为空,以使用最新版本。 |
|
HashiVault Secret Lookup |
secret 后端的名称 |
指定要使用的 KV 后端系统的名称。留空代表使用 Path to Secret 字段中的第一个路径片段。 |
Path to Secret(必需) |
保存 secret 信息的路径(例如: /path/username)。 |
|
Key Name (必需) |
用来查找 secret 的密钥名称。 |
|
Secret Version(只适用于 V2) |
如果需要,请指定版本,否则为空,以使用最新版本。 |
|
HashiCorp Signed SSH |
Unsigned Public Key(必需) |
指定您要签名的证书的公钥,它需要包括在目标主机的授权密钥文件中。 |
Path to Secret(必需) |
保存 secret 信息的路径(例如: /path/username)。 |
|
Role Name(必需) |
角色(role)是存储在 Hashi vault 中的 SSH 设置和参数的集合。通常,您可以使用不同的特权、超时等来指定多个不同的角色。这样,您可以使用一个角色为 root 获得签名的证书,使用其他角色获得特权较低的证书。 |
|
Valid Principals |
指定非默认用户,您在请求 vault 为存储密钥授权证书。Hashi vault 有一个它为其签名的默认用户(例如 ec2-user)。 |
|
Azure KMS |
Secret Name(必需) |
在 Azure 的 Key vault 应用程序中引用的 secret 的实际名称。 |
secret 版本 |
如果需要,请指定 secret 的版本,否则保留为空,以使用最新版本。 |
点击 Test 以验证到 secret 管理系统的连接。如果查找失败,就会显示如下出错信息:
完成后,点击 OK。这会关闭提示窗口并返回到目标凭证的 Details 屏幕。重复这些步骤,从 step 3 above 开始填写目标凭证的其余输入字段。通过以这种方式链接信息,Tower 可检索敏感信息,如来自第三方管理系统的用户名、密码、密钥、证书和令牌,并将这些数据填充到目标凭证表单的其余字段。
如果需要,请为不使用链接作为检索敏感信息方法的那些字段,手动提供全部信息。有关每个字段的更多详情,请参阅相应的 凭证类型。
完成后请点击 Save。
为了使这个集成可以正常工作,需要 CyberArk Central Credential Provider web 服务正在运行以存储 secret。如果 Credential Type 被选择为 CyberArk AIM Credential Provider Lookup,请提供以下元数据来正确配置您的查询:
**CyberArk AIM URL**(必需):提供用于与 CyberArk AIM 的 secret 管理系统通信的 URL
**Application ID**(必需):指定 CyberArk AIM 服务给出的标识符
Client Key:如果由 CyberArk 提供,则粘贴客户端密钥
Client Certificate:如果由 CyberArk 提供,请在粘贴证书时包括 BEGIN CERTIFICATE
和 END CERTIFICATE
行。
Verify SSL Certificates:只有在 URL 使用 HTTPS 时此选项才可用。检查该选项以允许 Tower 验证服务器的 SSL 证书是否有效且可信。使用内部或私有 CA 的环境应当不勾选此选项以禁用验证。
下面显示了一个配置了 CyberArk AIM 凭证的示例。
当为 Credential Type 选择 CyberArk Conjur Secret Lookup 时,请提供以下元数据以正确配置您的查找:
**Conjur URL**(必需):提供用于与 CyberArk Conjur 的 secret 管理系统通信的 URL
**API Key**(必需):提供 Conjur admin 提供的密钥
**Account**(必需):机构的帐户名称
**Username**(必需):此服务的具体经过身份验证的用户
Public Key Certificate:如果由 CyberArk 提供,请在粘贴公钥时包括 BEGIN CERTIFICATE
和 END CERTIFICATE
行。
下面显示了一个配置了 CyberArk Conjur 凭证的示例。
当为 Credential Type 选择 HashiCorp Vault Secret Lookup 时,请提供以下元数据以正确配置您的查找:
**Server URL**(必需):提供用于与 HashiCorp Vault 的 secret 管理系统通信的 URL
**Token**(必需):指定用于身份验证 HashiCorp 的服务器的访问令牌
**API Version**(必需):选择 v1 进行静态查找,选择 v2 进行版本化查找
下面显示了一个配置了 HashiCorp KV 凭证的示例。
当为 Credential Type 选择了 HashiCorp Vault Signed SSH 时,请提供以下元数据以正确配置您的查找:
**Server URL**(必需):提供用于与 HashiCorp Signed SSH 的 secret 管理系统通信的 URL
**Token**(必需):指定用于身份验证 HashiCorp 的服务器的访问令牌
下面显示了一个配置了 HashiCorp SSH Secrets Engine 凭证的示例。
当为 Credential Type 选择 Microsoft Azure Key Vault 时,请提供以下元数据以正确配置您的查找:
**Vault URL (DNS Name)**(必需):提供用于与 MS Azure 的密钥管理系统通信的 URL
**Client ID**(必需):提供 Azure Active Directory 获取的标识符
**Client secret**(必需):提供 Azure Active Directory 获取的 secret
**Tenant ID**(必需):提供与 Azure 订阅中的 Azure Active Directory 实例关联的唯一标识符
下面显示了一个配置了 Microsoft Azure KMS 凭证的示例。