5.2. 为持久性卷加密创建存储类
使用以下步骤创建加密的存储类,使用外部密钥管理系统(KMS)进行持久性卷加密。持久卷加密仅可用于 RBD PV。
先决条件
-
OpenShift Container Storage 集群处于
Ready
状态。 在外部密钥管理系统 (KMS) 上,
- 确保存在具有令牌的策略,并且启用了 Vault 中的键值后端路径。请参阅在 Vault 中启用键值和策略。
- 确保您在 Vault 服务器上使用签名的证书。
在租户命名空间中创建一个 secret,如下所示:
- 在 OpenShift Container Platform web 控制台中进入 Workloads → Secrets。
- 点 Create → Key/value secret。
-
输入 Secret Name 作为
ceph-csi-kms-token
。 -
输入 Key 作为
token
。 - 输入 Value。它是来自 Vault 的令牌。您可以单击 Browse 来选择并上传含有令牌的文件,或者直接在文本框中输入令牌。
- 点击 Create。
只有在所有使用 ceph-csi-kms-token
的加密 PVC 已被删除后,才能删除令牌。
流程
- 导航到 Storage → Storage Classes。
- 点 Create Storage Class。
- 输入存储类 Name 和 Description。
- 为 Reclaim Policy 选择 Delete 或 Retain。默认情况下,选择 Delete。
-
选择 RBD Provisioner
openshift-storage.rbd.csi.ceph.com
,这是用于调配持久卷的插件。 - 选择 存储池,其中卷数据将存储到列表中或创建新池。
选中启用加密复选框。
- 默认情况下,Key Management Service Provider 设置为 Vault。
- 输入 Vault Service Name、Vault 服务器的主机地址 ('https://<hostname or ip>')、端口号。
展开 Advanced Settings,以根据您的 Vault 配置输入其他设置和证书详情。
- 在 后端路径中输入为 OpenShift Container Storage 专用且唯一的 Key Value secret 路径。
- (可选)输入 TLS 服务器名称和 Vault Enterprise 命名空间。
- 通过上传相应的 PEM 编码证书文件提供 CA 证书、客户端证书和客户端私钥。
- 点击 Save。
- 点 连接。
- 检查外部密钥管理服务连接详细信息。要修改信息,请点击 Change connection details 并编辑字段。
- 点击 Create。
如果 Hashicorp Vault 设置不允许自动检测由后端路径使用的 Key/Value(KV)机密引擎 API 版本,请编辑 configmap 以添加
VAULT_BACKEND
参数。注意VAULT_BACKEND
是一个可选参数,它添加到 configmap 中,以指定与后端路径关联的 KV secret 引擎 API 版本。确保值与为后端路径设置的 KV secret 引擎 API 版本匹配,否则可能会导致持久性卷声明(PVC)创建过程中失败。识别新创建的存储类使用的 encryptionKMSID。
- 在 OpenShift Web 控制台中,导航到 Storage → Storage Classes。
- 点 Storage class name → YAML 标签页。
捕获存储类使用的 encryptionKMSID。
Example:
encryptionKMSID: 1-vault
- 在 OpenShift Web 控制台中,导航到 Workloads → ConfigMaps。
- 要查看 KMS 连接详情,请单击点击 csi-kms-connection-details。
编辑 configmap。
- 点击 Action 菜单 (⋮) → Edit ConfigMap。
添加
VAULT_BACKEND
参数,具体取决于为之前标识的 encryptionKMSID 配置的后端。您可以为 KV secret engine API 分配
kv
,为 KV 机密引擎 API 版本 1 和kv-v2
分配版本 2,作为VAULT_BACKEND
参数。Example:
kind: ConfigMap apiVersion: v1 metadata: name: csi-kms-connection-details [...] data: 1-vault: >- { "KMS_PROVIDER": "vaulttokens", "KMS_SERVICE_NAME": "vault", [...] "VAULT_BACKEND": "kv-v2" }
- 点击 Save。
红帽与技术合作伙伴合作,将本文档作为为客户提供服务。但是,红帽不为 Hashicorp 产品提供支持。有关此产品的技术协助,请联系 Hashicorp。
后续步骤
- 存储类可用于创建加密的持久性卷。如需更多信息,请参阅管理持久性卷声明。