keystone.common.fernet_utils 模块¶
- class keystone.common.fernet_utils.FernetUtils(key_repository, max_active_keys, config_group)[source]¶
基类:
object- initialize_key_repository(keystone_user_id=None, keystone_group_id=None)[source]¶
创建一个密钥仓库并使用一个密钥进行引导。
- 参数:
keystone_user_id – Keystone 用户的用户 ID。
keystone_group_id – Keystone 用户的组 ID。
- load_keys(use_null_key=False)[source]¶
从磁盘加载密钥到列表中。
列表中的第一个密钥是用于加密的主要密钥。所有其他密钥都是可用于解密令牌的活动辅助密钥。
- 参数:
use_null_key – 如果为 true,则将包含空字节的已知密钥附加到返回的密钥列表中。
- rotate_keys(keystone_user_id=None, keystone_group_id=None)[source]¶
创建一个新的主密钥并撤销过多的活动密钥。
- 参数:
keystone_user_id – Keystone 用户的用户 ID。
keystone_group_id – Keystone 用户的组 ID。
密钥轮换利用以下行为
最高的密钥编号用作主密钥(用于加密)。
所有密钥都可以用于解密。
新密钥始终创建为密钥“0”,在提升为主要密钥之前,它充当占位符。
此策略允许您在集群中的一个节点上安全地执行轮换,然后再将轮换结果同步到所有其他节点(在密钥轮换和同步期间,所有节点必须识别所有主密钥)。