12. 密钥管理系统
用户和管理员上传机器和云凭据,以便自动化可以代表他们访问机器和外部服务。默认情况下,敏感的凭据值(例如 SSH 密码、SSH 私钥、云服务的 API 令牌)在加密后存储在数据库中。使用由凭据插件支持的外部凭据,您可以将凭据字段(如密码或 SSH 私钥)映射到存储在密钥管理系统中的值,而不是直接将其提供给 AWX。AWX 提供了一个密钥管理系统,其中包含以下集成的功能:
HashiCorp Vault 密钥查找 (KV)
这些外部密钥值将在运行需要它们的剧本之前获取。有关在用户界面中指定这些凭据的更多信息,请参阅凭据。
12.1. 配置和链接密钥查找
在配置 AWX 以从第三方系统提取密钥时,它本质上是在将凭据字段链接到外部系统。要将凭据字段链接到存储在外部系统中的值,请选择与该系统对应的外部凭据,并提供元数据以查找所需的值。元数据输入字段是外部凭据类型定义的一部分,也是源凭据的一部分。
AWX 为开发人员、集成人员、管理员和高级用户提供了一个凭据插件接口,使他们能够添加新的外部凭据类型以将其扩展到支持其他密钥管理系统。有关更多详细信息,请参阅凭据插件的开发文档。
使用 AWX 用户界面配置和使用每个受支持的第三方密钥管理系统。
首先,创建一个外部凭据以对密钥管理系统进行身份验证。至少,为外部凭据提供一个名称,并为**凭据类型**选择以下选项之一:
导航到目标凭据的凭据表单,并将一个或多个输入字段链接到外部凭据以及用于在外部系统中查找密钥的元数据。在此示例中,演示凭据是目标凭据。
对于**类型详细信息**区域下方要链接到外部凭据的任何字段,请单击输入字段的
按钮。系统将提示您设置要用于检索密钥信息的输入源。
![Credential section of the external secret management system dialog](../_images/credentials-link-credential-prompt.png)
选择要链接到的凭据,然后单击**下一步**。这将带您到输入源的**元数据**选项卡。元数据特定于您选择的输入源
输入源 |
元数据 |
描述 |
---|---|---|
AWS Secrets Manager |
AWS Secrets Manager 区域(必填) |
密钥管理器所在区域。 |
AWS 密钥名称(必填) |
指定由 AWS 访问密钥生成的 AWS 密钥名称。 |
|
Centrify Vault 凭据提供程序查找 |
帐户名称(必填) |
与 Centrify Vault 关联的系统帐户或域的名称。 |
系统名称 |
指定 Centrify 门户使用的名称。 |
|
CyberArk Central 凭据提供程序查找 |
对象查询(必填) |
对象的查找查询。 |
对象查询格式 |
对于特定密钥名称,选择 |
|
对象属性 |
指定要返回的属性名称(例如, |
|
原因 |
如果根据对象的策略需要,请提供检查密钥的原因,因为 CyberArk 会记录这些原因。 |
|
CyberArk Conjur 密钥查找 |
密钥标识符 |
密钥的标识符。 |
密钥版本 |
如有必要,请指定密钥版本,否则,请将其留空以使用最新版本。 |
|
HashiVault 密钥查找 |
密钥后端名称 |
指定要使用的 KV 后端的名称。将其留空以使用**密钥路径**字段的第一个路径段。 |
密钥路径(必填) |
指定存储密钥信息的位置的路径;例如, |
|
密钥名称(必填) |
指定要查找密钥信息的密钥的名称。 |
|
密钥版本(仅限 V2) |
如有必要,请指定版本,否则,请将其留空以使用最新版本。 |
|
HashiCorp 签名 SSH |
未签名公钥(必填) |
指定要签名的证书的公钥。它需要存在于目标主机上的授权密钥文件中。 |
密钥路径(必填) |
指定存储密钥信息的位置的路径;例如, |
|
角色名称(必填) |
角色是存储在 Hashi Vault 中的一组 SSH 设置和参数。通常,您可以指定几个具有不同权限、超时时间等的角色。因此,您可以有一个角色允许为 root 获取证书签名,以及其他权限较低的角色,例如。 |
|
有效主体 |
指定除默认用户以外的用户(或用户),您请求 Vault 为存储的密钥授权证书。Hashi Vault 具有一个默认用户,它为其签名(例如,ec2-user)。 |
|
Azure KMS |
密钥名称(必填) |
密钥在 Azure 的 Key Vault 应用程序中引用的实际名称。 |
密钥版本 |
如有必要,请指定密钥版本,否则,请将其留空以使用最新版本。 |
|
Thycotic DevOps Secrets Vault |
密钥路径(必填) |
指定存储密钥信息的位置的路径(例如,/path/username)。 |
Thycotic Secret Server |
密钥 ID(必填) |
密钥的标识符。 |
密钥字段 |
指定要从密钥中使用的字段。 |
此示例显示了 HashiVault 密钥查找的元数据提示。
![Metadata section of the external secret management system dialog](../_images/credentials-link-metadata-prompt.png)
单击**测试**以验证与密钥管理系统的连接。如果查找不成功,将显示类似于以下错误消息
![Example exception dialog for credentials lookup](../_images/credentials-link-metadata-test-error.png)
完成后,单击**确定**。这将关闭提示窗口并返回到目标凭据的详细信息屏幕。**重复这些步骤**,从上面步骤 3开始,以完成目标凭据的其余输入字段。通过以这种方式链接信息,AWX 从第三方管理系统中检索敏感信息,例如用户名、密码、密钥、证书和令牌,并将这些数据填充到目标凭据表单的其余字段中。
如有必要,请手动填写那些不使用链接方式检索敏感信息的字段。有关每个字段的更多详细信息,请参阅相应的凭据类型。
完成后,点击保存。
12.1.1. AWS Secrets Manager 查找
此插件允许使用 AWS 作为凭据输入源,从 AWS SecretsManager 中提取密钥。 AWS Secrets Manager 提供与Microsoft Azure Key Vault类似的服务,并且 AWS 集合为此提供了查找插件。
当为凭据类型选择AWS Secrets Manager 查找时,请提供以下属性以正确配置您的查找
AWS 访问密钥(必填):提供用于与 AWS 密钥管理系统通信的访问密钥
AWS 密钥(必填):提供通过 AWS IAM 控制台获得的密钥
下面显示了一个已配置的 AWS Secret Manager 凭据示例。
![Example new AWS Secret Manager credential lookup dialog](../_images/credentials-create-aws-secret-credential.png)
12.1.2. Centrify Vault 凭据提供程序查找
您需要运行 Centrify Vault Web 服务才能存储密钥,才能使此集成正常工作。当为凭据类型选择Centrify Vault 凭据提供程序查找时,请提供以下属性以正确配置您的查找
Centrify 租户 URL(必填):提供用于与 Centrify 的密钥管理系统通信的 URL
Centrify API 用户(必填):提供用户名
Centrify API 密码(必填):提供密码
OAuth2 应用程序 ID:指定与 OAuth2 客户端关联的标识符
OAuth2 范围:指定 OAuth2 客户端的范围
下面显示了一个已配置的 CyberArk AIM 凭据示例。
![Example new centrify vault credential lookup dialog](../_images/credentials-create-centrify-vault-credential.png)
12.1.3. CyberArk Central 凭据提供程序 (CCP) 查找
您需要运行 CyberArk Central 凭据提供程序 Web 服务才能存储密钥,才能使此集成正常工作。当为凭据类型选择CyberArk Central 凭据提供程序查找时,请提供以下属性以正确配置您的查找
CyberArk CCP URL(必填):提供用于与 CyberArk CCP 密钥管理系统通信的 URL;必须包含 URL 方案(http、https 等)
Web 服务 ID:可选地指定 Web 服务的标识符;留空默认为 AIMWebService
应用程序 ID(必填):指定 CyberArk CCP 服务提供的标识符
客户端密钥:如果 CyberArk 提供,请粘贴客户端密钥
客户端证书:如果 CyberArk 提供,请在粘贴证书时包含
BEGIN CERTIFICATE
和END CERTIFICATE
行验证 SSL 证书:此选项仅在 URL 使用 HTTPS 时可用。选中此选项以验证服务器的 SSL 证书是否有效且受信任。使用内部或私有 CA 的环境应取消选中此选项以禁用验证。
下面显示了一个已配置的 CyberArk CCP 凭据示例。
![Example new CyberArk vault credential lookup dialog](../_images/credentials-create-cyberark-ccp-credential.png)
12.1.4. CyberArk Conjur Secrets Manager 查找
如果可以使用 Conjur Cloud 租户作为目标,请按照文档配置 CyberArk Conjur Secrets Lookup 外部管理系统凭据插件。
当为凭据类型选择CyberArk Conjur Secrets Manager 查找时,请提供以下属性以正确配置您的查找
Conjur URL(必填):提供用于与 CyberArk Conjur 的密钥管理系统通信的 URL;必须包含 URL 方案(http、https 等)
API 密钥(必填):提供您的 Conjur 管理员提供的密钥
帐户(必填):组织的帐户名称
用户名(必填):此服务的特定已认证用户
公钥证书:如果 CyberArk 提供,请在粘贴公钥时包含
BEGIN CERTIFICATE
和END CERTIFICATE
行
下面显示了一个已配置的 CyberArk Conjur 凭据示例。
![Example new CyberArk Conjur Secret lookup dialog](../_images/credentials-create-cyberark-conjur-credential.png)
12.1.5. HashiCorp Vault 密钥查找
当为凭据类型选择HashiCorp Vault 密钥查找时,请提供以下属性以正确配置您的查找
服务器 URL(必填):提供用于与 HashiCorp Vault 的密钥管理系统通信的 URL
令牌:指定用于验证 HashiCorp 服务器的访问令牌
CA 证书:指定用于验证 HashiCorp 服务器的 CA 证书
Approle Role_ID:如果使用 Approle 进行身份验证,请指定 ID
Approle Secret_ID:为 Approle 身份验证指定相应的密钥 ID
客户端证书:使用 TLS 身份验证方法时,指定 PEM 编码的客户端证书,包括 Vault 预期的任何必需的中间证书
客户端证书密钥:使用 TLS 身份验证方法时,指定 PEM 编码的证书私钥
TLS 身份验证角色:使用 TLS 身份验证方法时,指定与您的客户端证书相对应的 Vault 中的角色或证书名称。如果未提供,Vault 将尝试自动匹配证书
命名空间名称指定命名空间名称(仅限 Vault Enterprise)
Kubernetes 角色使用 Kubernetes 身份验证时指定角色名称
用户名:输入要用于验证此服务的用户的用户名
密码:输入与要验证此服务的用户关联的密码
身份验证路径:如果路径不是默认路径
/approle
,则指定路径API 版本(必填):对于静态查找,选择 v1;对于版本化查找,选择 v2。
有关 Approle 身份验证方法及其字段的更多详细信息,请参阅Vault Approle 身份验证方法文档。
LDAP 身份验证需要在 HashiCorp 的 Vault UI 中配置 LDAP。如果用户希望访问创建的特定引擎,则可以向用户添加策略。只要绑定设置正确,用户应该能够成功进行身份验证。Cubbyhole 是默认密钥挂载的名称。如果您拥有正确的权限,您可以创建其他挂载并将键值写入这些挂载。有关 LDAP 身份验证方法及其字段的更多详细信息,请参阅Vault LDAP 身份验证方法文档。
有关 userpass 身份验证方法及其字段的更多详细信息,请参阅Vault userpass 身份验证方法文档。
有关 Kubernetes 身份验证方法及其字段的更多详细信息,请参阅Vault Kubernetes 身份验证方法文档。
有关 TLS 证书身份验证方法及其字段的更多详细信息,请参阅Vault TLS 证书身份验证方法文档。
下面显示了一个为 LDAP 配置的 HashiCorp Vault 密钥查找凭据示例。
![Example new HashiCorp Vault Secret lookup dialog](../_images/credentials-create-hashicorp-kv-credential.png)
要测试查找,请创建另一个使用 HashiCorp Vault 查找的凭据。以下示例显示了配置为查找 HashiCorp Vault 密钥凭据的机器凭据的属性
![Example machine credential lookup metadata for HashiCorp Vault.](../_images/credentials-machine-test-hashicorp-metadata.png)
12.1.6. HashiCorp Vault 签名 SSH
当为凭据类型选择HashiCorp Vault 签名 SSH时,请提供以下属性以正确配置您的查找
服务器 URL(必填):提供用于与 HashiCorp Signed SSH 的密钥管理系统通信的 URL
令牌:指定用于验证 HashiCorp 服务器的访问令牌
CA 证书:指定用于验证 HashiCorp 服务器的 CA 证书
Approle Role_ID:为 Approle 身份验证指定 ID
Approle Secret_ID:为 Approle 身份验证指定相应的密钥 ID
客户端证书:使用 TLS 身份验证方法时,指定 PEM 编码的客户端证书,包括 Vault 预期的任何必需的中间证书
客户端证书密钥:使用 TLS 身份验证方法时,指定 PEM 编码的证书私钥
TLS 身份验证角色:使用 TLS 身份验证方法时,指定与您的客户端证书相对应的 Vault 中的角色或证书名称。如果未提供,Vault 将尝试自动匹配证书
命名空间名称指定命名空间名称(仅限 Vault Enterprise)
Kubernetes 角色使用 Kubernetes 身份验证时指定角色名称
用户名:输入要用于验证此服务的用户的用户名
密码:输入与要验证此服务的用户关联的密码
身份验证路径:如果路径不是默认路径
/approle
,则指定路径
有关 Approle 身份验证方法及其字段的更多详细信息,请参阅Vault Approle 身份验证方法文档。
有关 Kubernetes 身份验证方法及其字段的更多详细信息,请参阅Vault Kubernetes 身份验证方法文档。
有关 TLS 证书身份验证方法及其字段的更多详细信息,请参阅Vault TLS 证书身份验证方法文档。
下面显示了一个已配置的 HashiCorp SSH 密钥引擎凭据示例。
![Example new HashiCorp Vault Signed SSH credential lookup dialog](../_images/credentials-create-hashicorp-ssh-credential.png)
12.1.7. Microsoft Azure Key Vault
当为凭据类型选择Microsoft Azure Key Vault时,请提供以下属性以正确配置您的查找
保管库 URL(DNS 名称)(必填):提供用于与 MS Azure 的密钥管理系统通信的 URL
客户端 ID(必填):提供通过 Azure Active Directory 获得的标识符
客户端密钥(必填):提供通过 Azure Active Directory 获得的密钥
租户 ID(必填):提供与 Azure 订阅中的 Azure Active Directory 实例关联的唯一标识符
云环境:选择适用的云环境以应用
下面显示了一个已配置的 Microsoft Azure KMS 凭据示例。
![Example new Microsoft Azure Key Vault credential lookup dialog](../_images/credentials-create-azure-kms-credential.png)
12.1.8. Thycotic DevOps Secrets Vault
当为凭据类型选择Thycotic DevOps Secrets Vault时,请提供以下属性以正确配置您的查找
租户(必填):提供用于与 Thycotic 的密钥管理系统通信的 URL
顶级域名 (TLD):提供与您要集成的密钥保管库关联的顶级域名(例如,com、edu、org)
客户端 ID(必填):提供通过 Thycotic 密钥管理系统获得的标识符
客户端密钥(必填):提供通过 Thycotic 密钥管理系统获得的密钥
下面显示了一个已配置的 Thycotic DevOps Secrets Vault 凭据示例。
![Example new Thycotic DevOps Secrets Vault credential lookup dialog](../_images/credentials-create-thycotic-devops-credential.png)
12.1.9. Thycotic Secret Server
当为凭据类型选择Thycotic Secrets Server时,请提供以下属性以正确配置您的查找
Secret Server URL(必填):提供用于与 Thycotic Secrets Server 管理系统通信的 URL
用户名(必填):指定此服务的已认证用户
密码(必填):提供与用户关联的密码
下面显示了一个已配置的 Thycotic Secret Server 凭据示例。
![Example new Thycotic Secret Server credential lookup dialog](../_images/credentials-create-thycotic-server-credential.png)