第 25 章 使用 Vault 存储身份验证 secret
密码库是用于存储、检索、共享和恢复机密的安全位置。机密是安全敏感型数据,只能被有限人或实体访问。例如,secret 包括:
- 密码
- pins
- SSH 私有密钥
用户和服务可以从注册到身份管理(IdM)域的任何计算机访问存储在密码库中的机密。
注意
Vault 只能从命令行使用,不能从 IdM Web UI 使用。
Vault 的用例包括:
- 存储用户的个人 secret
- 详情请查看 第 25.4 节 “存储用户的个人机密”。
- 为服务存储 secret
- 存储供多个用户使用的通用 secret
- 详情请查看 第 25.6 节 “为多个用户存储通用 secret”。
请注意,要使用 vault,必须满足 第 25.2 节 “使用 Vault 的先决条件” 中描述的条件。
25.1. Vault 如何工作
25.1.1. Vault 所有者、成员和管理员
IdM 区分以下 vault 用户类型:
- Vault 所有者
- Vault 所有者是具有密码库上基本管理特权的用户或服务。例如,vault 所有者可以修改密码库的属性或添加新的 vault 成员。每个密码库必须至少有一个所有者。个密码库也可以有多个所有者。
- Vault 成员
- Vault 成员是用户或服务,可以访问由其他用户或服务创建的库。
- Vault 管理员
- Vault 管理员对所有密码库具有不受限制的访问权限,并允许执行所有 vault 操作。注意对称和非对称密码库通过密码或密钥进行保护,并应用特殊的访问控制规则(请参阅 第 25.1.2 节 “Standard、Symmetric 和 nonsymmetric Vaults”)。管理员必须满足以下规则:
- 使用对称和非对称库访问 secret
- 更改或重置 vault 密码或密钥
Vault 管理员是具有Vault 管理员特权的任何用户
。有关定义用户权限的信息,请参阅 第 10.4 节 “定义基于角色的访问控制”。
特定所有者和成员特权取决于密码库的类型。详情请查看 第 25.1.2 节 “Standard、Symmetric 和 nonsymmetric Vaults”。
Vault 用户
有些命令的输出(如 ipa vault-show 命令)也会为用户 vault 显示
Vault 用户
:
$ ipa vault-show my_vault
Vault name: my_vault
Type: standard
Owner users: user
Vault user: user
vault 用户代表密码库所在的容器的用户。有关 vault 容器和用户 vault 的详情,请查看 第 25.1.4 节 “Vault 容器的不同类型” 和 第 25.1.3 节 “用户、服务和共享 Vault”。
25.1.2. Standard、Symmetric 和 nonsymmetric Vaults
以下 vault 类型基于安全性和访问控制级别:
- 标准库
- Vault 所有者和 vault 成员可以存档和检索机密,而无需使用密码或密钥。
- 对称库
- 密码库中的机密通过对称密钥进行保护。Vault 成员和 vault 所有者可以存档和检索机密,但它们必须提供 vault 密码。
- 非对称库
- 密码库中的机密通过非对称密钥进行保护。用户使用公钥归档机密,再使用私钥检索该机密。Vault 成员只能存档机密,而 vault 拥有者可以同时存档和检索机密。
25.1.4. Vault 容器的不同类型
vault 容器是密码库的集合。
IdM 提供以下默认 vault 容器:
- 用户容器:用户的私有容器
- 此容器存储:特定用户的用户库。
- 服务容器:服务的私有容器
- 此容器存储:特定服务的服务库。
- 共享容器
- 此容器存储:可由多个用户或服务共享的库。
当为用户或服务创建第一个私有密码库时,IdM 会自动为每个用户或服务创建用户和服务容器。删除用户或服务后,IdM 会删除容器及其内容。