在 Overcloud 上部署 Fernet
在 Red Hat OpenStack Platform overcloud 上部署 Fernet
摘要
对红帽文档提供反馈 复制链接链接已复制到粘贴板!
我们感谢您对文档提供反馈信息。与我们分享您的成功秘诀。
在 JIRA 中提供文档反馈
使用 Create Issue 表单对文档提供反馈。JIRA 问题将在 Red Hat OpenStack Platform Jira 项目中创建,您可以在其中跟踪您的反馈进度。
- 确保您已登录到 JIRA。如果您没有 JIRA 帐户,请创建一个帐户来提交反馈。
- 点击以下链接打开 Create Issue 页面: Create Issue
- 完成 Summary 和 Description 字段。在 Description 字段中,包含文档 URL、章节或章节号以及问题的详细描述。不要修改表单中的任何其他字段。
- 点 Create。
第 1 章 在 overcloud 中使用 Fernet 密钥进行加密 复制链接链接已复制到粘贴板!
Fernet 是默认的令牌提供程序,它取代 uuid。您可以查看 Fernet 部署并轮转 Fernet 密钥。Fernet 使用三种类型的密钥,它们存储在 /var/lib/config-data/puppet-generated/keystone/etc/keystone/fernet-keys 中。最高数字目录包含主密钥,它生成新的令牌并解密现有的令牌。
Fernet 密钥轮转使用以下过程:
- 主密钥成为辅助密钥。
- <system> 签发一个新的主密钥。轮转除的主密钥将不再有效。您可以使用辅助密钥解密与之前的主密钥关联的令牌,但您无法发布新的令牌。
当您决定 Fernet 密钥轮转周期的长度时,遵循您的组织的安全状况。如果您的组织没有指导,因为安全考虑,每月轮转周期是很好的做法。
1.1. 检查 Fernet 部署 复制链接链接已复制到粘贴板!
要测试 Fernet 令牌是否正常工作,请检索 Controller 节点的 IP 地址,SSH 到 Controller 节点,然后检查令牌驱动程序和提供程序的设置。
流程
检索 Controller 节点的 IP 地址:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow SSH 到 Controller 节点:
ssh heat-admin@192.0.2.16
[heat-admin@overcloud-controller-0 ~]$ ssh heat-admin@192.0.2.16Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检索令牌驱动程序和提供程序设置的值:
sudo crudini --get /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf token driver sql sudo crudini --get /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf token provider fernet
[heat-admin@overcloud-controller-0 ~]$ sudo crudini --get /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf token driver sql [heat-admin@overcloud-controller-0 ~]$ sudo crudini --get /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf token provider fernetCopy to Clipboard Copied! Toggle word wrap Toggle overflow 测试 Fernet 供应商:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 结果包括长的 Fernet 令牌。
1.2. 使用工作流服务轮转 Fernet 密钥 复制链接链接已复制到粘贴板!
为确保在堆栈更新后保持 Fernet 密钥,请使用 Workflow 服务(mistral)轮转密钥。默认情况下,director 使用 ManageKeystoneFernetKeys 参数在环境文件中管理 overcloud Fernet 密钥。Fernet 密钥存储在工作流服务中,KeystoneFernetKeys 部分中。
流程
查看现有的 Fernet 密钥:
确定 Fernet 密钥位置。以 heat-admin 用户身份登录 Controller 节点,再使用
crudini命令查询 Fernet 密钥:[stack@<undercloud_host> ~]$ ssh heat-admin@overcloud-controller-o sudo crudini --get /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf fernet_tokens key_repository /etc/keystone/fernet-keys
[stack@<undercloud_host> ~]$ ssh heat-admin@overcloud-controller-o [heat-admin@overcloud-controller-0 ~]$ sudo crudini --get /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf fernet_tokens key_repository /etc/keystone/fernet-keysCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意/etc/keystone/目录引用容器文件系统路径。检查当前的 Fernet 密钥目录:
sudo ls /var/lib/config-data/puppet-generated/keystone/etc/keystone/fernet-keys 0 1 2
[heat-admin@overcloud-controller-0 ~]$ sudo ls /var/lib/config-data/puppet-generated/keystone/etc/keystone/fernet-keys 0 1 2Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
0- 包括 staged 密钥,它会变为下一个主密钥,并始终为0。 -
1- 包含辅助密钥。 2- 包含主密钥。每次密钥轮转时,这个数字都会递增。最高数字始终用作主密钥。注意-
使用
max_active_keys属性设置最大键数。默认值为 5 密钥。 - 密钥在所有 Controller 节点上传播。
-
使用
-
使用
workflow命令轮转 Fernet 密钥:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
检索 ID,并确保工作流成功。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Controller 节点上,检查 Fernet 密钥的数量,并与前面的结果进行比较。
sudo ls /var/lib/config-data/puppet-generated/keystone/etc/keystone/fernet-keys 0 1 2 3
[heat-admin@overcloud-controller-0 ~]$ sudo ls /var/lib/config-data/puppet-generated/keystone/etc/keystone/fernet-keys 0 1 2 3Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
0- 包括 staged 密钥,始终为0。这个密钥在下次轮转过程中成为主密钥。 -
1 和 2- 包含辅助密钥。 3- 包含主密钥。每次密钥轮转时,这个数字会递增。最高数字始终用作主密钥。注意-
使用
max_active_keys属性设置最大键数。默认值为 5 密钥。 - 密钥在所有 Controller 节点上传播。
-
使用
-