4.2. 为持久性卷加密创建存储类
使用外部密钥管理系统(KMS)通过存储类加密置备的持久性卷是一个技术预览功能。持久卷加密仅可用于 RBD PV。
存储类加密是仅可供 RBD PV 使用的技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
如需更多信息,请参阅技术预览功能支持范围。
先决条件
-
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 以进入证书详情。
- 在 后端路径中输入为 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。
例如:
encryptionKMSID: 1-vault
- 在 OpenShift Web 控制台中,导航到 Workloads → ConfigMaps。
- 要查看 KMS 连接详情,请单击点击 csi-kms-connection-details。
编辑 configmap。
- 点击 Action 菜单 (⋮) → Edit ConfigMap。
根据为之前确定的 encryptionKMSID 配置的后端,添加
VAULT_BACKEND参数。您可以为 KV secret engine API 分配
kv,版本 1 和kv-v2for KV secret engine API,版本 2 作为VAULT_BACKEND参数。例如:
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。