搜索

第 12 章 Secret 管理系统

download PDF

用户和系统管理员上传机器和云凭证,以便自动化可以代表他们访问机器和外部服务。默认情况下,敏感凭证值,如 SSH 密码、SSH 私钥和云服务的 API 令牌在加密后存储在数据库中。

使用由凭证插件支持的外部凭证,您可以将凭证字段(如密码或 SSH 私钥)映射到存储在 secret 管理系统中的值,而不是直接将它们提供给自动化控制器。

自动化控制器提供了一个 secret 管理系统,其中包含以下的集成:

  • AWS Secrets Manager Lookup
  • Centrify Vault Credential Provider Lookup
  • CyberArk Central Credential Provider Lookup (CCP)
  • CyberArk Conjur Secrets Manager Lookup
  • 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 之前,会获取这些外部 secret 值。

其他资源

有关在用户界面中指定 secret 管理系统凭证的更多信息,请参阅 凭证

12.1. 配置和链接 secret 查找

从第三方系统拉取 secret 时,您要将凭证字段链接到外部系统。要将凭证字段链接到存储在外部系统中的值,请选择与该系统对应的外部凭证,并提供 元数据 来查找所需的值。元数据输入字段是源凭证的外部凭证类型定义的一部分。

自动化控制器为开发人员、集成商、系统管理员和电源用户提供了一个凭证插件界面,能够添加新的外部凭证类型来扩展它以支持其他 secret 管理系统。

使用以下步骤使用自动化控制器来配置和使用每个支持的第三方 secret 管理系统。

流程

  1. 创建一个外部凭证来使用 secret 管理系统进行身份验证。至少,为外部凭证指定一个名称,并为 Credential Type 字段选择以下之一:

  2. 对于遵循您要链接到外部凭证的 Type Details 区域的任何字段,点输入字段中的键 Link 图标将一个或多个输入字段链接到外部凭证,以及元数据,以便在外部系统中找到 secret。

    Type details

  3. 选择用于检索您的 secret 信息的输入源。

    Credentials link

  4. 选择您要链接到的凭据,然后单击下一步。这会进入输入源的 Metadata 选项卡。本例演示了 HashiVault Secret Lookup 的元数据提示。元数据特定于您选择的输入源。

    如需更多信息,请参阅凭证输入源表的元数据

    Metadata

  5. Test 来验证与 secret 管理系统的连接。如果查找失败,则会显示类似如下的错误消息:

    Exception

  6. OK。返回目标凭证的 Details 屏幕。
  7. 重复这些步骤,从第 3 步开始完成目标凭证的其余输入字段。通过以这种方式链接信息,自动化控制器会从第三方管理系统检索敏感信息,如用户名、密码、密钥、证书和令牌,并使用该数据填充目标凭证表单的其余字段。
  8. 如有必要,请为不使用链接作为检索敏感信息方法的那些字段手动提供任何信息。有关每个字段的更多信息,请参阅相应的 凭证类型
  9. 点击 Save

其他资源

如需更多信息,请参阅凭证插件的开发 文档

12.1.1. 凭证输入源的原始

输入源 的元数据 选项卡所需的信息。

AWS Secrets Manager Lookup
元数据描述

AWS Secrets Manager 区域(必需)

secret 管理器所在的区域。

AWS Secret Name (必需)

指定 AWS 访问密钥生成的 AWS secret 名称。

Centrify Vault Credential Provider Lookup
元数据描述

帐户名称(必需)

与 Centrify Vault 关联的系统帐户或域名。

系统名称

指定 Centrify 门户使用的名称。

CyberArk Central Credential Provider Lookup
元数据描述

对象查询(必需)

对象查找查询。

对象查询格式

选择 Exact 用于特定的 secret 名称,或使用 Regexp 用于动态生成名称的 secret。

对象属性

指定要返回的属性的名称。例如,UserName 默认内容以外的 地址

原因

如果对象策略需要,请提供签出 secret 的原因,如 CyberArk 日志。

CyberArk Conjur Secrets Lookup
元数据描述

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(必需)

角色是存储在 Hashi vault 中的 SSH 设置和参数的集合。通常,您可以指定一些不同的特权或超时,例如:因此,您可以有一个允许为 root 签名的证书的角色,例如:

Valid Principals

指定非默认用户(或用户),您要请求 vault 为存储的密钥授权证书。Hashi vault 有一个默认用户,用于为其签名,如 ec2-user。

Microsoft Azure KMS
元数据描述

Secret Name(必需)

Microsoft Azure 的 Key vault 应用程序中引用的 secret 名称。

secret 版本

如果需要,请指定 secret 的版本,否则保留为空,以使用最新版本。

Thycotic DevOps Secrets Vault
元数据描述

Secret 路径(必需)

指定存储 secret 信息的路径,如 /path/username。

Thycotic Secret Server
元数据描述

Secret ID(必需)

secret 的标识符。

Secret 字段

指定要从 secret 中使用的字段。

12.1.2. AWS Secrets Manager Lookup

此插件可让 Amazon Web Services 用作凭证输入源,以便从 Amazon Web Services Secrets Manager 中拉取 secret。AWS Secrets Manager 提供与 Microsoft Azure Key Vault 类似的服务,AWS 集合为它提供了一个查找插件。

当为凭证类型选择 AWS Secret Manager 查找时,请提供以下元数据来配置您的查找:

  • AWS Access Key (必需):提供用于与 AWS 密钥管理系统通信的访问密钥
  • AWS Secret Key (必需):提供 AWS IAM 控制台获取的 secret

以下是配置的 AWS Secret Manager 凭证的示例。

创建 AWS secret

12.1.3. Centrify Vault Credential Provider Lookup

您需要运行 Centrify Vault web 服务来存储此集成的 secret。当您为凭证类型选择 Centrify Vault Credential Provider Lookup 时,请提供以下元数据来配置查找:

  • Centrify Tenant URL (必需):提供用于与 Centrify 的 secret 管理系统通信的 URL
  • Centrify API User (必需):指定用户名
  • Centrify API Password (必需):提供密码
  • OAuth2 应用 ID :指定与 OAuth2 客户端关联的标识符
  • OAuth2 Scope :指定 OAuth2 客户端的范围

12.1.4. CyberArk Central Credential Provider (CCP) Lookup

必须运行 CyberArk Central Credential Provider Web 服务,以存储 secret 才能使此集成正常工作。当您为凭证类型选择 CyberArk Central Credential Provider Lookup 时,请提供以下元数据来配置查找:

  • CyberArk CCP URL (必需):提供用于与 CyberArk CCP 的 secret 管理系统通信的 URL。它必须包含 URL 方案,如 http 或 https。
  • 可选: Web Service ID :指定 Web 服务的标识符。将此字段留空默认为 AIMWebService。
  • 应用程序 ID (必需):指定 CyberArk CCP 服务提供的标识符。
  • 客户端密钥 :如果由 CyberArk 提供,则粘贴客户端密钥。
  • 客户端证书 :如果由 CyberArk 提供,请在粘贴证书时包括 BEGIN CERTIFICATEEND CERTIFICATE 行。
  • 验证 SSL 证书 :此选项仅在 URL 使用 HTTPS 时才可用。检查这个选项以验证服务器的 SSL/TLS 证书是否有效且可信。对于使用内部或私有 CA 的环境,请保留此选项来禁用验证。

12.1.5. CyberArk Conjur Secrets Manager Lookup

使用针对目标的 Conjur Cloud 租户,配置 CyberArk Conjur Secrets Lookup 外部管理系统凭证插件。

当您为凭证类型选择 CyberArk Conjur Secrets Manager Lookup 时,请提供以下元数据来配置您的查找:

  • Conjur URL (必需):提供用于与 CyberArk Conjur 的 secret 管理系统通信的 URL。这必须包含 URL 方案,如 http 或 https。
  • API Key (必需):提供 Conjur admin 提供的密钥
  • account (必需):机构的帐户名称
  • username (必需):此服务的具体经过身份验证的用户
  • 公钥证书 :如果由 CyberArk 提供,请在粘贴公钥时包括 BEGIN CERTIFICATEEND CERTIFICATE

以下是配置的 CyberArk Conjur 凭证的示例。

CyberArk Conjur credential

12.1.6. HashiCorp Vault Secret Lookup

当您为凭证类型选择 HashiCorp Vault Secret Lookup 时,请提供以下元数据来配置查找:

  • Server URL (必需):提供用于与 HashiCorp Vault 的 secret 管理系统通信的 URL。
  • Token: 指定用于验证 HashiCorp 的服务器的访问令牌。
  • CA 证书 :指定用于验证 HashiCorp 的服务器的 CA 证书。
  • Approle Role_ID :如果使用 Appprole 进行身份验证,请指定 ID。
  • Approle Secret_ID :为 Approle 身份验证指定对应的 secret ID。
  • 客户端证书 :在使用 TLS 身份验证方法时指定 PEM 编码的客户端证书,包括 Hashicorp Vault 所需的中间证书。
  • 客户端证书 密钥 :在使用 TLS 身份验证方法时,指定 PEM 编码的证书私钥。
  • TLS Authentication Role :在 Hashicorp Vault 中指定角色或证书名称,在使用 TLS 验证方法时对应于您的客户端证书。如果没有提供,Hashicorp Vault 会尝试自动匹配证书。
  • 命名空间名称 :指定命名空间名称(仅限 Hashicorp Vault enterprise)。
  • Kubernetes 角色 :使用 Kubernetes 身份验证时指定角色名称。
  • 用户名 :输入用于验证此服务的用户的用户名。
  • Password :输入与要验证此服务的用户关联的密码。
  • Auth 的路径 :如果不是默认路径 /approle,则指定路径。
  • API Version (必需):选择 v1 进行静态查找,选择 v2 进行版本化查找。

LDAP 身份验证需要在 HashiCorp 的 Vault UI 中配置 LDAP,以及添加到用户的策略。Cubbyhole 是默认 secret 挂载的名称。如果您有正确的权限,您可以创建其他挂载并将键值写入这些值。

要测试查找,请创建另一个使用 Hashicorp Vault 查找的凭证。

其他资源

有关 LDAP 验证方法及其字段的详情,请查看 LDAP 身份验证方法的 Vault 文档

有关 Approle 验证方法及其字段的更多信息,请参阅 AppRole auth 方法的 Vault 文档

有关 userpass 身份验证方法及其字段的更多信息,请参阅 userpass auth 方法的 Vault 文档

有关 Kubernetes auth 方法及其字段的更多信息,请参阅 Kubernetes auth 方法的 Vault 文档

有关 TLS 证书 auth 方法及其字段的更多信息,请参阅 TLS 证书 auth 方法的 Vault 文档

12.1.7. HashiCorp Vault Signed SSH

当您为凭证类型选择 HashiCorp Vault Signed SSH 时,请提供以下元数据来配置查找:

  • Server URL (必需):提供用于与 HashiCorp Signed SSH 的 secret 管理系统通信的 URL。
  • Token: 指定用于验证 HashiCorp 的服务器的访问令牌。
  • CA 证书 :指定用于验证 HashiCorp 的服务器的 CA 证书。
  • Approle Role_ID :指定 Approle 身份验证的 ID。
  • Approle Secret_ID :为 Approle 身份验证指定对应的 secret ID。
  • 客户端证书 :在使用 TLS 身份验证方法时指定 PEM 编码的客户端证书,包括 Hashicorp Vault 所需的中间证书。
  • 客户端证书 密钥 :在使用 TLS 身份验证方法时,指定 PEM 编码的证书私钥。
  • TLS Authentication Role :在 Hashicorp Vault 中指定角色或证书名称,在使用 TLS 验证方法时对应于您的客户端证书。如果没有提供,Hashicorp Vault 会尝试自动匹配证书。
  • 命名空间名称 :指定命名空间名称(仅限 Hashicorp Vault enterprise)。
  • Kubernetes 角色 :使用 Kubernetes 身份验证时指定角色名称。
  • 用户名 :输入用于验证此服务的用户的用户名。
  • Password :输入与要验证此服务的用户关联的密码。
  • Auth 的路径 :如果不是默认路径 /approle,则指定路径。

其他资源

有关 Approle 验证方法及其字段的更多信息,请参阅 Approle Auth 方法的 Vault 文档

有关 Kubernetes 身份验证方法及其字段的更多信息,请参阅 Kubernetes auth 方法的 Vault 文档

有关 TLS 证书 auth 方法及其字段的更多信息,请参阅 TLS 证书 auth 方法的 Vault 文档

12.1.8. Microsoft Azure Key Vault

当您为凭证类型选择 Microsoft Azure Key Vault 时,请提供以下元数据来配置查找:

  • Vault URL (DNS Name) (必需):提供用于与 Microsoft Azure 的密钥管理系统通信的 URL
  • 客户端 ID (必需):提供 Microsoft Azure Active Directory 获取的标识符
  • Client Secret (必需):提供 Microsoft Azure Active Directory 获取的 secret
  • 租户 ID (必需):提供与 Azure 订阅中的 Microsoft Azure Active Directory 实例关联的唯一标识符
  • 云环境 :选择要应用的云环境

12.1.9. Thycotic DevOps Secrets Vault

当您为凭证类型选择 Thycotic DevOps Secrets Vault 时,请提供以下元数据来配置查找:

  • tenant (必需):提供用于与 Thycotic 的 secret 管理系统通信的 URL
  • 顶级域(TLD) :提供顶级域设计,如 .com、.edu 或 .org,与您要集成的 secret 库相关联
  • 客户端 ID (必需):提供由 Thycotic secret 管理系统获取的标识符
  • Client Secret (必需):提供由 Thycotic secret 管理系统获取的 secret

12.1.10. Thycotic Secret Server

当您为凭证类型选择 Thycotic Secrets Server 时,请提供以下元数据来配置查找:

  • Secret Server URL (必需):提供用于与 Thycotic Secrets Server 管理系统通信的 URL
  • username (必需):指定此服务的经过身份验证的用户
  • Password (必需):提供与用户关联的密码
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.