8.2. 使用工作流服务轮转 Fernet 密钥
为确保在堆栈更新后保持 Fernet 密钥,请使用 Workflow 服务(mistral)轮转密钥。默认情况下,director 使用 ManageKeystoneFernetKeys
参数在环境文件中管理 overcloud Fernet 密钥。Fernet 密钥存储在工作流服务中,KeystoneFernetKeys
部分中。
流程
查看现有的 Fernet 密钥:
确定 Fernet 密钥位置。以 tripleo-admin 用户身份登录 Controller 节点,并使用
crudini
命令查询 Fernet 密钥:sudo crudini --get /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf fernet_tokens key_repository
[stack@<undercloud_host> ~]$ ssh tripleo-admin@overcloud-controller-o [tripleo-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-keys
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意/etc/keystone/
目录引用容器文件系统路径。检查当前的 Fernet 密钥目录:
sudo ls /var/lib/config-data/puppet-generated/keystone/etc/keystone/fernet-keys
[tripleo-admin@overcloud-controller-0 ~]$ sudo ls /var/lib/config-data/puppet-generated/keystone/etc/keystone/fernet-keys 0 1 2
Copy 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
[tripleo-admin@overcloud-controller-0 ~]$ sudo ls /var/lib/config-data/puppet-generated/keystone/etc/keystone/fernet-keys 0 1 2 3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
0
- 包括 staged 密钥,始终为0
。这个密钥在下次轮转过程中成为主密钥。 -
1 和 2
- 包含辅助密钥。 3
- 包含主密钥。每次密钥轮转时,这个数字会递增。最高数字始终用作主密钥。注意-
使用
max_active_keys
属性设置最大键数。默认值为 5 密钥。 - 密钥在所有 Controller 节点上传播。
-
使用
-