8.2. 使用工作流服务轮转 Fernet 密钥
为确保在堆栈更新后保持 Fernet 密钥,请使用 Workflow 服务(mistral)轮转密钥。默认情况下,director 使用 ManageKeystoneFernetKeys 参数在环境文件中管理 overcloud Fernet 密钥。Fernet 密钥存储在工作流服务中,KeystoneFernetKeys 部分中。
流程
查看现有的 Fernet 密钥:
确定 Fernet 密钥位置。以 tripleo-admin 用户身份登录 Controller 节点,并使用
crudini命令查询 Fernet 密钥:[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注意/etc/keystone/目录引用容器文件系统路径。检查当前的 Fernet 密钥目录:
[tripleo-admin@overcloud-controller-0 ~]$ sudo ls /var/lib/config-data/puppet-generated/keystone/etc/keystone/fernet-keys 0 1 2-
0- 包括 staged 密钥,它会变为下一个主密钥,并始终为0。 -
1- 包含辅助密钥。 2- 包含主密钥。每次密钥轮转时,这个数字都会递增。最高数字始终用作主密钥。注意-
使用
max_active_keys属性设置最大键数。默认值为 5 密钥。 - 密钥在所有 Controller 节点上传播。
-
使用
-
使用
workflow命令轮转 Fernet 密钥:[stack@director ~]$ source ~/stackrc [stack@director ~]$ openstack workflow execution create tripleo.fernet_keys.v1.rotate_fernet_keys {"container": "overcloud"} --------------------------------------------------------------+ | Field | Value | --------------------------------------------------------------+ | ID | 58c9c664-b966-4f82-b368-af5ed8de5b47 | | Workflow ID | 78f0990a-3d34-4bf2-a127-10c149bb275c | | Workflow name | tripleo.fernet_keys.v1.rotate_fernet_keys | | Description | | | Task Execution ID | <none> | | State | RUNNING | | State info | None | | Created at | 2017-12-20 11:13:50 | | Updated at | 2017-12-20 11:13:50 | --------------------------------------------------------------+
验证
检索 ID,并确保工作流成功。
[stack@director ~]$ openstack workflow execution show 58c9c664-b966-4f82-b368-af5ed8de5b47 --------------------------------------------------------------+ | Field | Value | --------------------------------------------------------------+ | ID | 58c9c664-b966-4f82-b368-af5ed8de5b47 | | Workflow ID | 78f0990a-3d34-4bf2-a127-10c149bb275c | | Workflow name | tripleo.fernet_keys.v1.rotate_fernet_keys | | Description | | | Task Execution ID | <none> | | State | SUCCESS | | State info | None | | Created at | 2017-12-20 11:13:50 | | Updated at | 2017-12-20 11:15:00 | --------------------------------------------------------------+在 Controller 节点上,检查 Fernet 密钥的数量,并与前面的结果进行比较。
[tripleo-admin@overcloud-controller-0 ~]$ sudo ls /var/lib/config-data/puppet-generated/keystone/etc/keystone/fernet-keys 0 1 2 3-
0- 包括 staged 密钥,始终为0。这个密钥在下次轮转过程中成为主密钥。 -
1 和 2- 包含辅助密钥。 3- 包含主密钥。每次密钥轮转时,这个数字会递增。最高数字始终用作主密钥。注意-
使用
max_active_keys属性设置最大键数。默认值为 5 密钥。 - 密钥在所有 Controller 节点上传播。
-
使用
-