5.2.3. 为 PV 加密创建存储类的步骤
在为 vaulttoken
或 vaulttenantsa
执行必要的先决条件后,请执行以下步骤来创建启用了加密的存储类。
-
进入 Storage
StorageClasses。 - 点 Create Storage Class。
- 输入存储类 Name 和 Description。
- 为 Reclaim Policy 选择 Delete 或 Retain。默认情况下,选择 Delete。
- 选择 Immediate 或 WaitForFirstConsumer 作为卷绑定模式。WaitForConsumer 设置为默认选项。
-
选择 RBD Provisioner
openshift-storage.rbd.csi.ceph.com
,这是用于调配持久卷的插件。 - 选择 存储池,其中卷数据将存储到列表中或创建新池。
选中 Enable encryption 复选框。有两个选项可用来设置 KMS 连接详情:
-
选择现有 KMS 连接 :从下拉列表中选择现有 KMS 连接。该列表填充自
csi-kms-connection-details
ConfigMap 中的连接详情。 创建新的 KMS 连接 :这仅适用于
vaulttoken
。- 默认情况下,Key Management Service Provider 设置为 Vault。
-
输入唯一的 Vault Service Name、Vault 服务器的主机地址 (
https://<hostname 或 ip>
)和端口号 。 展开 Advanced Settings ,以根据您的 Vault 配置输入其他设置和证书详情。
- 在 后端路径中输入为 OpenShift Data Foundation 专用且唯一的 Key Value secret 路径。
- 可选 :输入 TLS Server Name 和 Vault Enterprise 命名空间。
- 通过上传相应的 PEM 编码证书文件提供 CA 证书、客户端证书和客户端私钥。
- 单击 Save。
- 点击 Save。
-
选择现有 KMS 连接 :从下拉列表中选择现有 KMS 连接。该列表填充自
- 点击 Create。
如果 HashiCorp Vault 设置不允许自动检测后端路径使用的 Key/Value(KV)secret 引擎 API 版本,请编辑 ConfigMap 以添加
VAULT_BACKEND
或vaultBackend
参数。注意VAULT_BACKEND
或vaultBackend
是已添加到 configmap 中的可选参数,以指定与后端路径关联的 KV secret 引擎 API 的版本。确保值与为后端路径设置的 KV secret 引擎 API 版本匹配,否则可能会导致持久性卷声明(PVC)创建过程中失败。识别新创建的存储类使用的 encryptionKMSID。
-
在 OpenShift Web 控制台中,导航到 Storage
Storage Classes。 -
点 Storage class name
YAML 标签页。 捕获存储类使用的 encryptionKMSID。
例如:
encryptionKMSID: 1-vault
-
在 OpenShift Web 控制台中,导航到 Storage
-
在 OpenShift Web 控制台中,导航到 Workloads
ConfigMaps。 - 要查看 KMS 连接详情,请单击点击 csi-kms-connection-details。
编辑 ConfigMap。
-
点击 Action 菜单 (⋮)
Edit ConfigMap。 根据为之前标识的 encryptionKMSID 配置的后端,添加
VAULT_BACKEND
或vaultBackend
参数。您可以为 KV secret engine API、版本 1 和
kv-v2
分配 kv 用于 KV secret engine API(版本 2)。例如:
kind: ConfigMap apiVersion: v1 metadata: name: csi-kms-connection-details [...] data: 1-vault: |- { "KMS_PROVIDER": "vaulttokens", "KMS_SERVICE_NAME": "1-vault", [...] "VAULT_BACKEND": "kv-v2" } 2-vault: |- { "encryptionKMSType": "vaulttenantsa", [...] "vaultBackend": "kv-v2" }
- 点 Save
-
点击 Action 菜单 (⋮)
后续步骤
5.2.3.1. 使用租户 ConfigMap 覆盖 Vault 连接详情
可以通过在 Openshift 命名空间中创建 ConfigMap 来为每个租户重新配置 Vault 连接详情,其配置选项与 openshift-storage
命名空间中的 csi-kms-connection-details
ConfigMap 中设置的值不同。ConfigMap 需要位于租户命名空间中。租户命名空间中的 ConfigMap 中的值将覆盖在该命名空间中创建的加密持久性卷的 csi-kms-connection-details
ConfigMap 中设置的值。
流程
- 确保您位于租户命名空间中。
-
点 Workloads
ConfigMaps。 - 点 Create ConfigMap。
以下是 yaml 示例。给定租户命名空间要覆盖的值可以在
data
部分下指定,如下所示:--- apiVersion: v1 kind: ConfigMap metadata: name: ceph-csi-kms-config data: vaultAddress: "<vault_address:port>" vaultBackendPath: "<backend_path>" vaultTLSServerName: "<vault_tls_server_name>" vaultNamespace: "<vault_namespace>"
- 编辑完 yaml 后,点 Create。