8.2. 使用工作流服务轮转 Fernet 密钥


为确保在堆栈更新后保持 Fernet 密钥,请使用 Workflow 服务(mistral)轮转密钥。默认情况下,director 使用 ManageKeystoneFernetKeys 参数在环境文件中管理 overcloud Fernet 密钥。Fernet 密钥存储在工作流服务中,KeystoneFernetKeys 部分中。

流程

  1. 查看现有的 Fernet 密钥:

    1. 确定 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
      Copy to Clipboard Toggle word wrap
      注意

      /etc/keystone/ 目录引用容器文件系统路径。

    2. 检查当前的 Fernet 密钥目录:

      [tripleo-admin@overcloud-controller-0 ~]$ sudo ls /var/lib/config-data/puppet-generated/keystone/etc/keystone/fernet-keys
      0  1  2
      Copy to Clipboard Toggle word wrap
      • 0 - 包括 staged 密钥,它会变为下一个主密钥,并始终为 0
      • 1 - 包含辅助密钥。
      • 2 - 包含主密钥。每次密钥轮转时,这个数字都会递增。最高数字始终用作主密钥。

        注意
        • 使用 max_active_keys 属性设置最大键数。默认值为 5 密钥。
        • 密钥在所有 Controller 节点上传播。
  2. 使用 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                       |
    --------------------------------------------------------------+
    Copy to Clipboard Toggle word wrap

验证

  1. 检索 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                       |
    --------------------------------------------------------------+
    Copy to Clipboard Toggle word wrap
  2. 在 Controller 节点上,检查 Fernet 密钥的数量,并与前面的结果进行比较。

    [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 Toggle word wrap
    • 0 - 包括 staged 密钥,始终为 0。这个密钥在下次轮转过程中成为主密钥。
    • 1 和 2 - 包含辅助密钥。
    • 3 - 包含主密钥。每次密钥轮转时,这个数字会递增。最高数字始终用作主密钥。

      注意
      • 使用 max_active_keys 属性设置最大键数。默认值为 5 密钥。
      • 密钥在所有 Controller 节点上传播。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat