在身份管理中使用库(vault)
大约 25 分钟
在身份管理中使用库(vault)
来源:官方文档 原始多页入口:在身份管理中使用库(vault) 内容规模:约 29,516 字符,33 个章节标题,62 个命令/代码块,8 条提示框
阅读提要
- 副标题:在 IdM 中存储和管理敏感数据
- 摘要:vault 是在 Red Hat Identity Management (IdM)中存储、检索和共享敏感数据(如,服务的身份验证凭据)的一个安全的地方。您可以使用命令行或 Ansible Playbook 管理 vault。
- 主要章节:在 IdM 中存储和管理敏感数据;对红帽文档提供反馈;第 1 章 IdM 中的 vault;第 2 章 使用 IdM 用户库:存储和检索 secret;第 3 章 使用 Ansible 管理 IdM 用户库:存储和检索 secret;第 4 章 管理 IdM 服务 vault :存储和检索 secret;第 5 章 使用 Ansible 管理 IdM 服务库:存储和检索 secret
- 推荐阅读顺序:先看“阅读提要”和目录,再按章节查看“关键点/命令/注意”;需要原文细节时点击来源链接。
章节笔记
概览
- 该章节主要为下一级主题的入口。
在 IdM 中存储和管理敏感数据
- 要点:摘要
对红帽文档提供反馈
- 要点:我们致力于为您提供高质量的文档,您的反馈将对我们有很大帮助。为帮助我们改进,您可以通过 Red Hat Jira 跟踪系统提交建议或报告错误。
- 要点:流程
- 列表:登录到 Jira 网站。 如果您还没有帐户,请创建一个。
- 列表:单击顶部导航栏中的 Create。
- 列表:在 Summary 字段中输入描述性标题。
- 列表:在 Description 字段中输入您对改进的建议。包括文档相关部分的链接。
- 列表:点窗口底部的 Create。
第 1 章 IdM 中的 vault
- 要点:了解身份管理(IdM)密码库概念,包括密码库类型、所有权和访问控制,以安全地存储和共享密码和密钥等敏感数据。
1.1. vaults 及其优势
- 要点:IdM 库为敏感数据提供安全存储,如密码和密钥。您可以使用 vaults 在授权的用户和服务间进行受控共享。
- 要点:您可以使用身份管理(IdM)vault 来安全地存储所有敏感数据,且便捷地存储在一个地方。
- 列表:密码
- 列表:PIN
- 列表:私有 SSH 密钥
- 列表:Vault 只能供 vault 所有者和 vault 所有者选择为 vault 成员的 IdM 用户访问。另外,IdM 管理员可以访问所有 vault 。
- 列表:如果用户没有足够的特权来创建密码库,IdM 管理员可以创建密码库并将该用户设置为其所有者。
- 列表:用户和服务可从 IdM 域注册的任何机器访问存储在密码库中的 secret。
- 注意:注意 IdM 中的密码库的目的是存储身份验证凭据,允许您向外部的非IdM 相关服务进行身份验证。
- 注意:注意 Vault 仅在 IdM 命令行(CLI)中可用,不能来自 IdM Web UI。
1.2. Vault 所有者、成员和管理员
- 要点:查看身份管理(IdM)中的不同 vault 用户类型,以及它们对应的特权来管理和访问 vault secret。
- 要点:身份管理(IdM)区分以下 vault 用户类型:
- 列表:标准、对称和非对称 vault
- 列表:Vault 容器
- 列表:在 IdM 中使用 Ansible playbook 管理基于角色的访问控制
- 命令/配置摘录:
$ ipa vault-show my_vault Vault name: my_vault Type: standard Owner users: user Vault user: user- 注意:注意 对称和非对称密码库通过密码或密钥进行保护。特殊访问控制规则适用于管理员来: 访问对称和非对称密码库中的机密。 更改或重置 vault 密码或密钥。
1.3. 标准、对称和非对称密码库
- 要点:根据您的安全要求选择适当的 vault 类型,从没有加密的标准库中选择到非对称密码库,使用公钥加密。
- 要点:根据安全性和访问控制级别,IdM 将密码库分类为以下类型:
1.4. 用户、服务和共享密码库
- 要点:根据机密是否为单个用户、服务,还是在多个实体之间共享,选择相应的 vault 所有权类型。
- 表格样本(共 4 行):
- Type | 描述 | 所有者 | 备注
- 用户密码库 | 用户的私有库 | 单个用户 | 如果 IdM 管理员允许,任何用户都可以拥有一个或多个用户库
- 服务库 | 服务的私有库 | 单个服务 | 如果 IdM 管理员允许,任何服务都可以拥有一个或多个用户库
- 共享 vault | 由多个用户和服务共享的库 | 创建密码库的 vault 管理员 | 如果 IdM 管理员允许,用户和服务可以拥有一个或多个用户库。除了创建 vault 的人,vault 管理员也有访问 vault 的全部权限。
1.5. Vault 容器
- 要点:IdM 中的默认 vault 容器结构根据用户、服务或共享所有权组织密码库。
- 要点:vault 容器是密码库的集合。下表列出了 Identity Management (IdM) 提供的默认 vault 容器。
- 表格样本(共 4 行):
- Type | 描述 | 目的
- 用户容器 | 用户的私有容器 | 为特定用户存储用户密码库
- 服务容器 | 服务的私有容器 | 为特定服务存储服务库
- 共享容器 | 用于多个用户和服务的容器 | 存储可由多个用户或服务共享的 vault
1.6. 基本 IdM vault 命令
- 要点:使用 ipa vault gcp 命令,从命令行创建、访问和管理 IdM 库及其包含的 secret。
- 注意:注意 在运行任何 ipa vault-* 命令前,请将密钥恢复授权 (KRA) 证书系统组件安装到 IdM 域中的一个或多个服务器上。详情请参阅在 IdM 中安装密钥恢复授权。
- 表格样本(共 5 行):
- 命令 | 目的
- ipa help vault | 显示有关 IdM 库和示例密码库命令的概念信息。
- ipa vault-add --help,ipa vault-find --help | 在特定的 ipa vault-* 命令中添加 --help 选项会显示该命令可用的选项和详细帮助。
- ipa vault-show user_vault --user idm_user | 将以 vault 成员身份访问用户 vault 时,您必须指定 vault 所有者。如果您没有指定 vault 所有者,IdM 会通知您没有找到密码库: [admin@server ~]$ ipa vault-show user_vault ipa: ERROR: user_vault: vault not found
1.7. 在 IdM 中安装密钥恢复授权
- 要点:在身份管理(IdM)服务器上安装密钥恢复授权(KRA)证书系统(CS)组件,以启用 vault 功能,以便您的域中的安全 secret 存储。
- 要点:先决条件
- 列表:您已以 root 身份登录到 IdM 服务器。
- 列表:IdM 证书颁发机构已安装在 IdM 服务器上。
- 列表:您有 目录管理器 凭证。
- 列表:安装 KRA: # ipa-kra-install 注意 要使密码库服务高可用且具有弹性,请在两个或多个 IdM 服务器上安装 KRA。维护多个 KRA 服务器可防止数据丢失。 重要 您可以在隐藏的副本上安装 IdM 集群的第一个 KRA。但是,在在非隐藏的副本上安装 KRA 克隆前,安装额外的 KRA 克隆需要临时激活隐藏的副本。然后您可以再次隐藏原始隐藏的副本。
- 列表:演示或提升隐藏副本
- 列表:安装 IdM 隐藏的副本
- 命令/配置摘录:
# ipa-kra-install- 注意:注意 要使密码库服务高可用且具有弹性,请在两个或多个 IdM 服务器上安装 KRA。维护多个 KRA 服务器可防止数据丢失。
- 注意:重要 您可以在隐藏的副本上安装 IdM 集群的第一个 KRA。但是,在在非隐藏的副本上安装 KRA 克隆前,安装额外的 KRA 克隆需要临时激活隐藏的副本。然后您可以再次隐藏原始隐藏的副本。
第 2 章 使用 IdM 用户库:存储和检索 secret
- 要点:使用 IdM CLI 在身份管理(IdM)用户库中存储和检索 secret,允许用户安全地管理来自不同 IdM 客户端的敏感数据。
2.1. 先决条件
- 要点:其他资源
- 列表:密钥恢复授权中心 (KRA) 证书系统组件已安装在您的 IdM 域中的一个或多个服务器上。
- 列表:在 IdM 中安装密钥恢复授权
- 列表:使用 Ansible 管理 IdM 用户库:存储和检索 secret
2.2. 在用户密码库中存储 secret
- 要点:使用身份管理(IdM) CLI 将敏感数据存储在您的个人库中,以安全地归档包含密码或其他 secret 的文件。
- 要点:在以下示例中,标准 vault 类型可确保在访问文件时不需要 idm_user 进行身份验证。idm_user 可以从用户登录的任何 IdM 客户端检索 文件。
- 列表:idm_user 是创建密码库的用户。
- 列表:my_vault 是用于存储 idm_user 证书的库。
- 列表:vault 类型 是标准的,因此访问存档证书不需要 idm_user 来提供 vault 密码。
- 列表:secret.txt 是包含 idm_user 要存储在密码库中的证书的文件。
- 列表:您知道 idm_user 的密码。
- 列表:您已登录到属于 IdM 客户端的主机。
- 命令/配置摘录:
$ kinit idm_user
$ ipa vault-add my_vault --type standard ---------------------- Added vault "my_vault" ---------------------- Vault name: my_vault Type: standard Owner users: idm_user Vault user: idm_user- 注意:重要 确保用户的第一个用户库由同一用户创建。为用户创建第一个密码库也会创建用户的 vault 容器。创建的代理变为 vault 容器的所有者。 例如,如果其他用户(如 admin )为 user1 创建第一个用户库,则用户的 vault 容器所有者也是 admin,并且 user1 无法访问用户密码库或创建新的用户库。
2.3. 从用户密码库检索 secret
- 要点:使用身份管理(IdM) CLI 将个人密码库中的机密检索到您登录的任何 IdM 客户端。
- 要点:在以下示例中,您将作为名为 idm_user 的 IdM 用户检索,一个来自名为 my_vault 的用户私有库的机密到 idm_client.idm.example.com。
- 列表:idm_user 是 my_vault 的所有者。
- 列表:idm_user 已 在 vault 中归档了一个 secret。
- 列表:my_vault 是一个标准密码库,这意味着 idm_user 不必输入任何密码才能访问密码库的内容。
- 列表:以 idm_user 身份 SSH 到 idm_client: $ ssh idm_user@idm_client.idm.example.com
- 列表:以 idm_user 身份登录: $ kinit user
- 列表:使用带有 --out 选项的 ipa vault-retrieve 命令检索 vault 的内容,并将其保存到 secret_exported.txt 文件中。 $ ipa vault-retrieve my_vault --out secret_exported.txt -------------------------------------- Retrieved data from vault "my_vault" --------------------------------------
- 命令/配置摘录:
$ ssh idm_user@idm_client.idm.example.com
$ kinit user第 3 章 使用 Ansible 管理 IdM 用户库:存储和检索 secret
- 要点:创建用户 vault,并使用 Ansible 安全存储或检索 secret,使用户能够从不同的 IdM 客户端管理敏感数据。
- 要点:有关使用 Ansible 管理 IdM vault 和用户 secret 以及有关 playbook 变量的更多信息,请参阅 /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/ 目录中的 README-vault.md Markdown 文件和 /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/vault/ 目录中的示例 playbook。
3.1. 先决条件
- 要点:其他资源
- 列表:密钥恢复授权中心 (KRA) 证书系统组件已安装在您的 IdM 域中的一个或多个服务器上。
- 列表:在 IdM 中安装密钥恢复授权
3.2. 使用 Ansible 在 IdM 中存在标准用户库
- 要点:使用 Ansible playbook 创建具有一个或多个私有密码库的 vault 容器,以安全地存储敏感信息,允许 vault 所有者从任何 IdM 客户端访问存储的 secret,而无需额外身份验证。
- 要点:在以下示例中,idm_user 用户创建名为 my_vault 的标准类型库。标准密码库类型确保无需 idm_user 在访问该文件时进行身份验证。idm_user 能够从用户登录的任何 IdM 客户端检索 文件。
- 列表:在控制节点上: 您在使用 Ansible 版本 2.15 或更高版本。 您已安装了 ansible-freeipa 软件包。 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
- 列表:您在使用 Ansible 版本 2.15 或更高版本。
- 列表:您已安装了 ansible-freeipa 软件包。
- 列表:示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
- 列表:目标节点(也就是在其上执行 freeipa.ansible_freeipa 模块的节点)作为 IdM 客户端、服务器或副本,是 IdM 域的一部分。
- 列表:您知道 idm_user 的密码。
- 命令/配置摘录:
$ cd ~/MyPlaybooks/
$ cp /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/vault/ensure-standard-vault-is-present.yml ensure-standard-vault-is-present-copy.yml3.3. 使用 Ansible 将 secret 归档到 IdM 中的标准用户库中
- 要点:使用 Ansible playbook 将敏感信息存储在个人密码库中。在使用的示例中,idm_user 用户在名为 my_vault 的库中归档含有名为 password.txt 的敏感信息的文件。
- 要点:先决条件
- 列表:在控制节点上: 您在使用 Ansible 版本 2.15 或更高版本。 您已安装了 ansible-freeipa 软件包。 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
- 列表:您在使用 Ansible 版本 2.15 或更高版本。
- 列表:您已安装了 ansible-freeipa 软件包。
- 列表:示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
- 列表:目标节点(也就是在其上执行 freeipa.ansible_freeipa 模块的节点)作为 IdM 客户端、服务器或副本,是 IdM 域的一部分。
- 列表:您知道 idm_user 的密码。
- 命令/配置摘录:
$ cd ~/MyPlaybooks/
$ cp /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/vault/data-archive-in-symmetric-vault.yml data-archive-in-standard-vault-copy.yml3.4. 使用 Ansible 从 IdM 中的标准用户库检索 secret
- 要点:使用 Ansible 从您的个人库检索机密,并访问安装 Ansible 的任何 IdM 客户端上存储的敏感数据。
- 要点:在以下示例中,idm_user 用户从名为 my_vault 的标准类型库检索包含敏感数据的文件到名为 host01 的 IdM 客户端。idm_user 在访问该文件时不必进行身份验证。idm_user 可以使用 Ansible 从安装 Ansible 的任何 IdM 客户端检索 文件。
- 列表:您已配置了 Ansible 控制节点以满足以下要求: 您在使用 Ansible 版本 2.15 或更高版本。 您已安装了 ansible-freeipa 软件包。 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
- 列表:您在使用 Ansible 版本 2.15 或更高版本。
- 列表:您已安装了 ansible-freeipa 软件包。
- 列表:示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
- 列表:目标节点(也就是在其上执行 freeipa.ansible_freeipa 模块的节点)作为 IdM 客户端、服务器或副本,是 IdM 域的一部分。
- 列表:您知道 idm_user 的密码。
- 命令/配置摘录:
$ cd ~/MyPlaybooks/
[ipahost] host01.idm.example.com第 4 章 管理 IdM 服务 vault :存储和检索 secret
- 要点:使用身份管理(IdM) CLI 在非对称库中存储服务 secret,以安全地将凭据分发到服务实例,同时维护管理员控制。
- 要点:示例中使用的密码库是非对称的,这意味着要使用它,管理员需要执行以下步骤:
- 列表:例如,使用 openssl 工具生成一个私钥。
- 列表:根据私钥生成一个公钥。
4.1. 先决条件
- 要点:在以下流程中:
- 列表:密钥恢复授权中心 (KRA) 证书系统组件已安装在您的 IdM 域中的一个或多个服务器上。
- 列表:IdM admin 用户是管理服务密码的管理员。
- 列表:private-key-to-an-externally-certificate.pem 是包含服务 secret 的文件,本例中为外部签名证书的私钥。请勿将此私钥与用于从密码库检索机密的私钥混淆。
- 列表:secret_vault 是为服务创建的库。
- 列表:HTTP/webserver.idm.example.com 是正在存档其机密的服务。
- 列表:service-public.pem 是用于加密 password_vault 中存储的密码的服务公钥。
4.2. 在非对称库中存储 IdM 服务 secret
- 要点:使用身份管理(IdM) CLI 在非对称库中存档服务 secret,使用用于安全存储的公钥加密。
- 要点:先决条件
- 列表:您知道 IdM 管理员密码。
- 列表:以管理员身份登录: $ kinit admin
- 列表:获取服务实例的公钥。例如,使用 openssl 工具: 生成 service-private.pem 私钥。 $ openssl genrsa -out service-private.pem 2048 Generating RSA private key, 2048 bit long modulus .+++ ...........................................+++ e is 65537 (0x10001) 根据私钥生成 service-public.pem 公钥。 $ openssl rsa -in service-private.pem -out service-public.pem -p…
- 列表:生成 service-private.pem 私钥。 $ openssl genrsa -out service-private.pem 2048 Generating RSA private key, 2048 bit long modulus .+++ ...........................................+++ e is 65537 (0x10001)
- 列表:根据私钥生成 service-public.pem 公钥。 $ openssl rsa -in service-private.pem -out service-public.pem -pubout writing RSA key
- 列表:创建一个非对称密码库作为服务实例库,并提供公钥: $ ipa vault-add secret_vault --service HTTP/webserver.idm.example.com --type asymmetric --public-key-file service-public.pem ---------------------------- Added vault "secret_vault" ---------------------------- Vault name: secret_vault Type: asymmetric Public key: LS0tLS1C...S0tLS0tCg== Owner u…
- 命令/配置摘录:
$ kinit admin
$ openssl genrsa -out service-private.pem 2048 Generating RSA private key, 2048 bit long modulus .+++ ...........................................+++ e is 65537 (0x10001)4.3. 为 IdM 服务实例检索服务 secret
- 要点:使用服务本地存储的私钥,通过身份管理(IdM) CLI 从非对称服务库检索机密,允许服务实例加载其存储的凭据。
- 要点:先决条件
- 列表:您可以访问拥有服务库的服务主体的 keytab,如 HTTP/webserver.idm.example.com。
- 列表:您已 创建了一个非对称 vault,并在 vault 中归档了一个 secret。
- 列表:您可以访问用于检索服务 vault secret 的私钥。
- 列表:以管理员身份登录: $ kinit admin
- 列表:获取该服务的 Kerberos 票据: # kinit HTTP/webserver.idm.example.com -k -t /etc/httpd/conf/ipa.keytab
- 列表:检索服务 vault 密码: $ ipa vault-retrieve secret_vault --service HTTP/webserver.idm.example.com --private-key-file service-private.pem --out secret.txt ------------------------------------ Retrieved data from vault "secret_vault" ------------------------------------
- 命令/配置摘录:
$ kinit admin
# kinit HTTP/webserver.idm.example.com -k -t /etc/httpd/conf/ipa.keytab4.4. 在被破坏时更改 IdM 服务 vault secret
- 要点:通过使用身份管理(IdM) CLI 替换服务库中被入侵的 secret,并将新机密重新分发到不受影响的服务实例,从而隔离被入侵的服务实例。
- 要点:先决条件
- 列表:您知道 IdM 管理员密码。
- 列表:您已创建了非对称密码库用于存储服务机密。
- 列表:您已生成新 secret 并可访问它,例如:new -private-key-to-an-externally-certificate.pem 文件中。
- 列表:将新 secret 归档到服务实例库中: $ ipa vault-archive secret_vault --service HTTP/webserver.idm.example.com --in new-private-key-to-an-externally-signed-certificate.pem ----------------------------------- Archived data into vault "secret_vault" ----------------------------------- 这会覆盖密码库中存储的当前机密。
- 列表:仅检索非代理服务实例上的新机密。详情请参阅 为 IdM 服务实例检索一个服务 secret。
- 命令/配置摘录:
$ ipa vault-archive secret_vault --service HTTP/webserver.idm.example.com --in new-private-key-to-an-externally-signed-certificate.pem ----------------------------------- Archived data into vault "secret_vault" -----------------------------------4.5. 其他资源
- 列表:在 IdM 中安装密钥恢复授权
- 列表:使用 Ansible 管理 IdM 服务库:存储和检索 secret
第 5 章 使用 Ansible 管理 IdM 服务库:存储和检索 secret
- 要点:使用 Ansible 在非对称库中存储服务机密,以安全地将凭据分发到服务实例,同时维护管理员控制。
- 要点:身份管理(IdM)管理员可以使用 ansible-freeipa vault 模块将服务 secret 安全地存储在集中式位置。示例中使用的密码库是非对称的,这意味着要使用它,管理员需要执行以下步骤:
- 列表:例如,使用 openssl 工具生成一个私钥。
- 列表:根据私钥生成一个公钥。
5.1. 先决条件
- 要点:在以下步骤中:
- 列表:密钥恢复授权中心 (KRA) 证书系统组件已安装在您的 IdM 域中的一个或多个服务器上。
- 列表:admin 是管理服务密码的管理员。
- 列表:private-key-to-an-externally-certificate.pem 是包含服务 secret 的文件,本例中为外部签名证书的私钥。请勿将此私钥与用于从密码库检索机密的私钥混淆。
- 列表:secret_vault 是为存储服务 secret 而创建的库。
- 列表:HTTP/webserver1.idm.example.com 是密码库的所有者服务。
- 列表:HTTP/webserver2.idm.example.com 和 HTTP/webserver3.idm.example.com 是 vault 成员服务。
5.2. 使用 Ansible 在 IdM 中存在非对称服务库
- 要点:使用 Ansible playbook 创建具有一个或多个私有密码库的服务 vault 容器,以安全地存储敏感信息,需要私钥身份验证。
- 要点:在以下示例中,管理员创建名为 secret_vault 的非对称库。这样可确保 vault 成员必须使用私钥进行身份验证,以检索 vault 中的 secret。vault 成员能够从任何 IdM 客户端检索 文件。
- 列表:您已配置了 Ansible 控制节点以满足以下要求: 您在使用 Ansible 版本 2.15 或更高版本。 您已安装了 ansible-freeipa 软件包。 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。 示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:您在使用 Ansible 版本 2.15 或更高版本。
- 列表:您已安装了 ansible-freeipa 软件包。
- 列表:示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
- 列表:示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:目标节点(也就是在其上执行 freeipa.ansible_freeipa 模块的节点)作为 IdM 客户端、服务器或副本,是 IdM 域的一部分。
- 命令/配置摘录:
$ cd ~/MyPlaybooks/
$ openssl genrsa -out service-private.pem 2048 Generating RSA private key, 2048 bit long modulus .+++ ...........................................+++ e is 65537 (0x10001)5.3. 使用 Ansible 将成员服务添加到非对称库
- 要点:使用 Ansible playbook 将成员服务添加到服务库中,以便它们都可以检索密码库中存储的机密。
- 要点:在以下示例中,您要将 HTTP/webserver2.idm.example.com 和 HTTP/webserver3.idm.example.com 服务主体添加到 HTTP/webserver1.idm.example.com 拥有的 secret_vault 中,授予它们访问权限来检索存储的机密。
- 列表:您已配置了 Ansible 控制节点以满足以下要求: 您在使用 Ansible 版本 2.15 或更高版本。 您已安装了 ansible-freeipa 软件包。 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。 示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:您在使用 Ansible 版本 2.15 或更高版本。
- 列表:您已安装了 ansible-freeipa 软件包。
- 列表:示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
- 列表:示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:目标节点(也就是在其上执行 freeipa.ansible_freeipa 模块的节点)作为 IdM 客户端、服务器或副本,是 IdM 域的一部分。
- 命令/配置摘录:
$ cd ~/MyPlaybooks/
$ cp /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/vault/data-archive-in-asymmetric-vault.yml add-services-to-an-asymmetric-vault.yml5.4. 使用 Ansible 将 IdM 服务 secret 存储在非对称库中
- 要点:使用 Ansible 将服务 secret 归档到名为 secret_vault 的非对称库中,使用用于安全存储的公钥加密。
- 要点:之后:
- 列表:服务可以从密码库检索机密。
- 列表:检索需要使用对应的私钥进行身份验证。
- 列表:该服务可以在任何 IdM 客户端中运行。
- 列表:您已配置了 Ansible 控制节点以满足以下要求: 您在使用 Ansible 版本 2.15 或更高版本。 您已安装了 ansible-freeipa 软件包。 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。 示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:您在使用 Ansible 版本 2.15 或更高版本。
- 列表:您已安装了 ansible-freeipa 软件包。
- 命令/配置摘录:
$ cd ~/MyPlaybooks/
$ cp /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/vault/data-archive-in-asymmetric-vault.yml data-archive-in-asymmetric-vault-copy.yml5.5. 使用 Ansible 为 IdM 服务检索服务 secret
- 要点:使用 Ansible 从 secret_vault 检索 secret,并将它分发到清单文件中列出的服务实例。
- 要点:使用以下 Ansible playbook,代表该服务从服务库检索机密。具体来说,运行 playbook 从名为 secret_vault 的非对称库检索带有 secret 的 PEM 文件,并将它存储在 Ansible 清单文件中列出的所有主机上的指定位置,存为 ipaservers。
- 列表:您已配置了 Ansible 控制节点以满足以下要求: 您在使用 Ansible 版本 2.15 或更高版本。 您已安装了 ansible-freeipa 软件包。 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。 示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:您在使用 Ansible 版本 2.15 或更高版本。
- 列表:您已安装了 ansible-freeipa 软件包。
- 列表:示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
- 列表:示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:目标节点(也就是在其上执行 freeipa.ansible_freeipa 模块的节点)作为 IdM 客户端、服务器或副本,是 IdM 域的一部分。
- 命令/配置摘录:
$ cd ~/MyPlaybooks/
[ipaserver] server.idm.example.com [webservers] webserver1.idm.example.com webserver2.idm.example.com webserver3.idm.example.com5.6. 在使用 Ansible 泄露时更改 IdM 服务 vault secret
- 要点:重复使用 Ansible playbook 来替换服务库中被入侵的 secret,并将它重新分发到不受影响的服务实例,不包括被破坏的主机。
- 要点:以下示例中的情景假定 on webserver3.idm.example.com 检索到的机密已被破坏,而不是存储该机密的非对称库的密钥。在示例中,管理员重复利用在非对称库中存储一个 secret 时,以及从非对称库中获取一个 secret 导入到 IdM 主机 时使用的 Ansible playbook。在流程开始时,IdM 管理员使用非对称密码库中的新 secret 存储一个新的 PEM 文件,调整清单文件,而不检索到被入侵的 Web 服务器 webserver3.idm.example.com,然后重新运行这两个程序。
- 列表:您已配置了 Ansible 控制节点以满足以下要求: 您在使用 Ansible 版本 2.15 或更高版本。 您已安装了 ansible-freeipa 软件包。 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。 示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:您在使用 Ansible 版本 2.15 或更高版本。
- 列表:您已安装了 ansible-freeipa 软件包。
- 列表:示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
- 列表:示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:目标节点(执行 freeipa.ansible_freeipa 模块的节点)作为 IdM 客户端、服务器或副本,是 IdM 域的一部分。
- 命令/配置摘录:
$ cd ~/MyPlaybooks/
[ipaserver] server.idm.example.com [webservers] webserver1.idm.example.com webserver2.idm.example.com- 注意:重要 确保列表不包含当前 example webserver3.idm.example.com 中被入侵的 web 服务器。
5.7. 其他资源
- 列表:在 IdM 中安装密钥恢复授权
完整目录
- 在 IdM 中存储和管理敏感数据
- 对红帽文档提供反馈
- 第 1 章 IdM 中的 vault
- 1.1. vaults 及其优势
- 1.2. Vault 所有者、成员和管理员
- 1.3. 标准、对称和非对称密码库
- 1.4. 用户、服务和共享密码库
- 1.5. Vault 容器
- 1.6. 基本 IdM vault 命令
- 1.7. 在 IdM 中安装密钥恢复授权
- 第 2 章 使用 IdM 用户库:存储和检索 secret
- 2.1. 先决条件
- 2.2. 在用户密码库中存储 secret
- 2.3. 从用户密码库检索 secret
- 第 3 章 使用 Ansible 管理 IdM 用户库:存储和检索 secret
- 3.1. 先决条件
- 3.2. 使用 Ansible 在 IdM 中存在标准用户库
- 3.3. 使用 Ansible 将 secret 归档到 IdM 中的标准用户库中
- 3.4. 使用 Ansible 从 IdM 中的标准用户库检索 secret
- 第 4 章 管理 IdM 服务 vault :存储和检索 secret
- 4.1. 先决条件
- 4.2. 在非对称库中存储 IdM 服务 secret
- 4.3. 为 IdM 服务实例检索服务 secret
- 4.4. 在被破坏时更改 IdM 服务 vault secret
- 4.5. 其他资源
- 第 5 章 使用 Ansible 管理 IdM 服务库:存储和检索 secret
- 5.1. 先决条件
- 5.2. 使用 Ansible 在 IdM 中存在非对称服务库
- 5.3. 使用 Ansible 将成员服务添加到非对称库
- 5.4. 使用 Ansible 将 IdM 服务 secret 存储在非对称库中
- 5.5. 使用 Ansible 为 IdM 服务检索服务 secret
- 5.6. 在使用 Ansible 泄露时更改 IdM 服务 vault secret
- 5.7. 其他资源
