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