用户和管理员将机器和云凭据上传到 Tower,以便 Tower 可以代表他们访问机器和外部服务。 默认情况下,Tower 中的敏感凭据值(例如 SSH 密码、SSH 私钥、云服务的 API 令牌)在加密后存储在数据库中。 对于由凭据插件支持的外部凭据,您可以将凭据字段(如密码或 SSH 私钥)映射到存储在 密钥管理系统 中的值,而不是直接提供给 Tower。 Ansible Tower 提供了一个密钥管理系统,其中包括以下集成的密钥管理系统:
CyberArk 应用程序身份管理器 (AIM)
CyberArk Conjur
HashiCorp Vault 密钥值存储 (KV)
HashiCorp Vault SSH 密钥引擎
Microsoft Azure 密钥管理系统 (KMS)
这些外部密钥值将在运行需要它们的剧本之前获取。 有关在 Tower 用户界面中指定这些凭据的更多信息,请参阅 凭据.
在将 Tower 配置为从第三方系统中提取密钥时,它实际上是在将凭据字段链接到外部系统。 要将凭据字段链接到存储在外部系统中的值,请选择与该系统相对应的外部凭据,并提供 元数据 以查找所需的值。 元数据输入字段是 外部凭据类型 定义的一部分,即 源凭据.
Tower 为开发人员、集成商、管理员和高级用户提供 凭据插件 接口,使他们能够向 Tower 添加新的外部凭据类型,以便扩展 Tower 以支持其他密钥管理系统。 有关更多详细信息,请参阅 凭据插件的开发文档.
使用 Ansible Tower 用户界面来配置和使用每个支持的第三方密钥管理系统。
首先,创建一个用于对密钥管理系统进行身份验证的外部凭据。 至少,为外部凭据提供一个名称,并为 **凭据类型** 选择以下选项之一
导航到目标凭据的凭据表单,并将一个或多个输入字段链接到外部凭据,以及用于在外部系统中定位密钥的元数据。 在此示例中,演示凭据 是目标凭据。
对于 **类型详细信息** 区域下方您要链接到外部凭据的任何字段,单击输入字段的 按钮。 系统将提示您设置要用来检索密钥信息的输入源。
选择要链接到的凭据,然后单击 **下一步**。 这将带您进入输入源的 **元数据** 选项卡。 此示例显示了 HashiVault 密钥查找的元数据提示。
所需的元数据取决于所选的输入源
输入源 |
元数据 |
描述 |
---|---|---|
CyberArk AIM |
对象查询 (必填) |
对象的查找查询。 |
对象查询格式 |
对于特定密钥名称,请选择 |
|
原因 |
如果对象策略需要,请提供检查密钥的原因,因为 CyberArk 会记录这些原因。 |
|
CyberArk Conjur |
密钥标识符 |
密钥的标识符。 |
密钥版本 |
如果需要,请指定密钥的版本,否则,请将其留空以使用最新版本。 |
|
HashiVault 密钥查找 |
密钥后端名称 |
指定要使用的 KV 后端的名称。 请将其留空以使用 **密钥路径** 字段的第一个路径段。 |
密钥路径 (必填) |
指定存储密钥信息的路径(例如,/path/username)。 |
|
密钥名称 (必填) |
指定要查找密钥信息的密钥的名称。 |
|
密钥版本 (仅限 V2) |
如果需要,请指定版本,否则请留空以使用最新版本。 |
|
HashiCorp 签署的 SSH |
未签署的公钥(必需) |
指定要签署的证书的公钥。它需要出现在目标主机(s)的授权密钥文件中。 |
密钥路径 (必填) |
指定存储密钥信息的路径(例如,/path/username)。 |
|
角色名称(必需) |
角色是存储在 Hashi Vault 中的一组 SSH 设置和参数。通常,您可以指定几个具有不同权限、超时等的角色。因此,您可能有一个角色允许签署根证书,以及其他权限较低的角色,例如。 |
|
有效主体 |
指定除了默认用户之外的用户(或用户),您请求 Vault 为存储的密钥授权证书。Hashi Vault 具有一个默认用户,它为其签署证书(例如,ec2-user)。 |
|
Azure KMS |
密钥名称(必需) |
密钥的实际名称,如 Azure 的密钥保管库应用程序中所引用。 |
密钥版本 |
如果需要,请指定密钥的版本,否则,请将其留空以使用最新版本。 |
点击测试以验证与密钥管理系统的连接。如果查找不成功,将显示类似于此的错误消息
完成后,点击确定。这将关闭提示窗口,并返回到目标凭证的详细信息屏幕。重复这些步骤,从上面的步骤 3开始,完成目标凭证的剩余输入字段。通过这种方式链接信息,Tower 会从第三方管理系统中检索敏感信息,例如用户名、密码、密钥、证书和令牌,并将这些数据填充到目标凭证表单的剩余字段中。
如有必要,请为那些不使用链接作为检索敏感信息方式的字段手动提供任何信息。有关每个字段的更多详细信息,请参阅相应的凭据类型。
完成后,点击保存。
您需要运行 CyberArk Central 凭据提供程序 Web 服务来存储密钥,以便此集成正常工作。当为凭据类型选择CyberArk AIM 凭据提供程序查找时,请提供以下元数据以正确配置您的查找
CyberArk AIM URL(必需):提供用于与 CyberArk AIM 密钥管理系统通信的 URL
应用程序 ID(必需):指定 CyberArk AIM 服务提供的标识符
客户端密钥:如果 CyberArk 提供,请粘贴客户端密钥
客户端证书:如果 CyberArk 提供,请在粘贴证书时包含BEGIN CERTIFICATE
和 END CERTIFICATE
行
验证 SSL 证书:此选项仅在 URL 使用 HTTPS 时可用。选中此选项以允许 Tower 验证服务器的 SSL 证书是否有效且受信任。使用内部或私有 CA 的环境应取消选中此选项以禁用验证。
下面显示了一个已配置的 CyberArk AIM 凭据示例。
当为凭据类型选择CyberArk Conjur 密钥查找时,请提供以下元数据以正确配置您的查找
Conjur URL(必需):提供用于与 CyberArk Conjur 密钥管理系统通信的 URL
API 密钥(必需):提供 Conjur 管理员提供的密钥
帐户(必需):组织的帐户名称
用户名(必需):此服务的特定身份验证用户
公钥证书:如果 CyberArk 提供,请在粘贴公钥时包含BEGIN CERTIFICATE
和 END CERTIFICATE
行
下面显示了一个已配置的 CyberArk Conjur 凭据示例。
当为凭据类型选择HashiCorp Vault 密钥查找时,请提供以下元数据以正确配置您的查找
服务器 URL(必需):提供用于与 HashiCorp Vault 密钥管理系统通信的 URL
令牌:指定用于身份验证 HashiCorp 服务器的访问令牌
CA 证书:指定用于验证 HashiCorp 服务器的 CA 证书
Approle Role_ID:指定 Approle 身份验证的 ID
Approle Secret_ID:指定 Approle 身份验证的相应密钥 ID
Approle Auth 路径:指定除默认路径/approle
之外的路径
API 版本(必需):为静态查找选择 v1,为版本化查找选择 v2
有关 Approle 及其字段的更多详细信息,请参阅Vault 文档的 Approle Auth 方法。下面显示了一个已配置的 HashiCorp Vault 密钥查找凭据示例。
当为凭据类型选择HashiCorp Vault 签署的 SSH时,请提供以下元数据以正确配置您的查找
服务器 URL(必需):提供用于与 HashiCorp 签署的 SSH 密钥管理系统通信的 URL
令牌:指定用于身份验证 HashiCorp 服务器的访问令牌
CA 证书:指定用于验证 HashiCorp 服务器的 CA 证书
Approle Role_ID:指定 Approle 身份验证的 ID
Approle Secret_ID:指定 Approle 身份验证的相应密钥 ID
Approle Auth 路径:指定除默认路径/approle
之外的路径
有关 Approle 及其字段的更多详细信息,请参阅Vault 文档的 Approle Auth 方法。
下面显示了一个已配置的 HashiCorp SSH Secrets Engine 凭据示例。
当为凭据类型选择Microsoft Azure 密钥保管库时,请提供以下元数据以正确配置您的查找
保管库 URL(DNS 名称)(必需):提供用于与 MS Azure 密钥管理系统通信的 URL
客户端 ID(必需):提供 Azure Active Directory 获取的标识符
客户端密钥(必需):提供 Azure Active Directory 获取的密钥
租户 ID(必需):提供与 Azure 订阅中的 Azure Active Directory 实例关联的唯一标识符
云环境:选择适用的云环境以应用
下面显示了一个已配置的 Microsoft Azure KMS 凭据示例。