2.7. Block Storage 服务(cinder)卷加密
卷加密有助于提供基本数据保护,以防卷后端被破坏或 outright stolen。Compute 和 Block Storage 服务都集成在一起,以允许实例读取访问和使用加密卷。您必须部署 Barbican 才能利用卷加密。
- 基于文件的卷(如 NFS)不支持卷加密。
- 卷加密只支持 LUKS1 而不是 LUKS2。
- 不支持将未加密的卷重新设置为相同大小的加密卷,因为加密卷需要额外的空间来存储加密数据。有关加密未加密的卷的更多信息,请参阅 加密未加密的卷。
卷加密通过卷类型应用。有关加密卷类型的详情,请参考 使用控制面板配置块存储服务卷加密 或使用 CLI 配置块存储服务卷加密。
如需更多信息,请参阅使用 OpenStack Key Manager (barbican)管理您的块存储(cinder)加密密钥,请参阅 加密块存储(cinder)卷。
2.7.1. 使用仪表板配置块存储服务卷加密
要创建加密的卷,您首先需要一个 加密的卷类型。加密卷类型涉及设置它应使用的供应商类、密码和密钥大小。您还可以重新配置加密卷类型的加密设置。
您可以调用加密的卷类型来自动创建加密的卷。
先决条件
- 您必须是项目管理员才能创建加密卷。
- 访问 Red Hat OpenStack Platform (RHOSP) Dashboard (horizon)。如需更多信息,请参阅使用 OpenStack 控制面板管理云资源。
流程
- 以 admin 用户身份登录控制面板。
- 选择 Admin > Volumes > Volume Types。
- 在要加密的卷的 Actions 列中,选择 Create Encryption 以启动 Create Volume Type Encryption 向导。
在这里,配置卷类型加密的 Provider,Control Location,Cipher, 和 Key Size 设置。Description 列描述了每个设置。
重要以下列出的值是 Provider、Cipher 和 Key Size 唯一支持的选项。
-
为 Provider 输入
luks
。 -
为 Cipher 输入
aes-xts-plain64
。 -
为 Key Size 输入
256
。
-
为 Provider 输入
- 单击 Create Volume Type Encryption。
您还可以重新配置加密卷类型的加密设置。
- 从卷类型的 Actions 列中选择 Update Encryption 以启动 Update Volume Type Encryption 向导。
- 在 Project > Compute > Volumes 中,检查 Volumes 表中的 Encrypted 列,以确定卷是否加密。
- 如果卷加密,请单击该列中的 Yes 以查看加密设置。
其他资源
2.7.2. 使用 CLI 配置块存储服务卷加密
要创建加密的卷,您首先需要一个 加密的卷类型。加密卷类型涉及设置它应使用的供应商类、密码和密钥大小。
先决条件
- 您必须是项目管理员才能创建加密卷。
流程
提供 overcloud 凭证文件:
$ source ~/<credentials_file>
-
将
<credentials_file
> 替换为您的凭据文件的名称,如overcloudrc
。
-
将
创建卷类型:
$ cinder type-create myEncType
配置密码、密钥大小、控制位置和提供程序设置:
$ cinder encryption-type-create --cipher aes-xts-plain64 --key-size 256 --control-location front-end myEncType luks
创建一个加密卷:
$ cinder --debug create 1 --volume-type myEncType --name myEncVol
2.7.3. 自动删除卷镜像加密密钥
将加密卷上传到镜像服务(glance)时,块存储服务(cinder)在密钥管理服务(barbican)中创建一个加密密钥。这会在加密密钥和存储的镜像之间创建一个 1:1 关系。
加密密钥删除可防止密钥管理服务无限度地消耗资源。块存储、密钥管理和镜像服务自动管理加密卷的密钥,包括删除密钥。
块存储服务会自动将两个属性添加到卷镜像中:
-
cinder_encryption_key_id
- 密钥管理服务为特定镜像存储的加密密钥的标识符。 -
cinder_encryption_key_deletion_policy
- 告知镜像服务是否删除与此镜像关联的密钥的策略。
这些属性的值会被自动分配。为避免意外的数据丢失,请不要调整这些值。
当您创建卷镜像时,块存储服务会将 cinder_encryption_key_deletion_policy
属性设置为 on_image_deletion
。当您删除卷镜像时,如果 cinder_encryption_key_deletion_policy
等于 on_image_deletion
_policy,则镜像服务会删除对应的加密密钥。
红帽不推荐手动操作 cinder_encryption_key_id
或 cinder_encryption_key_deletion_policy
属性。如果您使用由 cinder_encryption_key_id
值标识的加密密钥用于任何其他目的,则风险数据丢失。