2019独角兽企业重金招聘Python工程师标准>>>

简单介绍一下OpenStack Fernet Keys 的 Rotate 工作

1.介绍

Openstack 的Fernet key 采用的是  python fernet 库生成的(https://cryptography.io/en/latest/fernet/)

from cryptography.fernet import Fernet
Fernet.generate_key()

Fernet Key 类似:

RoFd7Kucd2RdzIoMcsc5j3nx7cHR0pWi-XVaiOel978=

2.工作方式

  • 数值最大的key 是当前的signing key (Primary Key)
  • 数值为0 的key 是即将要变成signing key 的key
  • 其它数值的key 都是 old keys,它们曾经是Primary Key。系统中也许会有一些tokens 是使用这些key 来加密的,取决于你所设置的过期时间方式
  • 新产生的key 通常都是数值为0的

3.怎么来做Rotate

举例,有三个key:0, 1, 2

  • 0 变成了 3 ,成为signing key (primary key)
  • 1 被删除
  • 2 仍然是2
  • 新创建了一个key 为0

图示如下:

做个解释:在key rotate 之前,所有的token 都是用2来加密的。key rotate 之后,所有的token 都是用3来加密的,当过来一个token 时候,keystone 同时用3 和2 来解密,总有一个能够work 的。在这个时候,不能再次rotate,否则 2 被删除后,将会出现解密错误。

这将要求你需要有更多的keys,或者过期时间设置的长一些。

举例,一周做一次key rotate,然后token 的过期时间设置为2h。

转载于:https://my.oschina.net/pingjiangyetan/blog/1204239

OpenStack Fernet Key Rotate相关推荐

  1. OpenStack Pike Minimal安装:二、身份认证

    1.在controller节点上安装keystone root@controller ~]# yum install openstack-keystone httpd mod_wsgi -y 2.配置 ...

  2. 【N版】openstack——认证服务keystone(三)

    [N版]openstack--认证服务keystone 一.keystone介绍 1.1keystone Keystone(OpenStack Identity Service)是 OpenStack ...

  3. 【OpenStack】【Keystone】安装与配置详解

    文章目录 参考文档 openstack-keystone包 keystone的配置文件 keystone.conf文件 在mysql中创建keystone数据库,给keystone账户设置权限 初始化 ...

  4. 【Openstack】实录手动部署Openstack Rocky 双节点(2)- Keystone

    第一篇:实录手动部署Openstack Rocky 双节点(1)- 基础服务 上一篇:实录手动部署Openstack Rocky 双节点(1)- 基础服务 下一篇:手动部署Openstack Rock ...

  5. Openstack 高可用部署(Ocata版)

    一:高可用拓扑 外部网络:192.168.1.0/24 内部网络:172.16.1.0/24 二:实验环境准备 2.1:创建虚拟机并安装操作系统 使用CentOS 7.2 安装时传递内核参数 net. ...

  6. OpenStack部署(二)keystone

    创建Keystone数据库 在控制节点(controller)的MariaDB上创建Keystone数据库: mysql -uroot -p123456 # -u root指定登录mariaDB的用户 ...

  7. OpenStack双网卡、多节点搭建

    1.新建三台虚拟机(controller.computer.object) 一.配置三个源: 1.Base源  CentOS-Base.repo 阿里源 wget -O /etc/yum.repos. ...

  8. CentOS7安装OpenStack(Rocky版)-02.安装Keyston认证服务组件(控制节点)

    本文分享openstack的认证服务组件keystone --------------- 完美的分割线 ---------------- 2.0.keystone认证服务 1)用户与认证:用户权限与用 ...

  9. 构建OpenStack私有云--第一步:配置Keystone服务

    配置Keystone服务 keystone是一个认证服务,所有服务在接收到用户请求时,都必须找keystone服务去做认证,把用户请求中的信息拿出来去匹配,能匹配到才去检查你有没有相应的权限,然后给你 ...

最新文章

  1. 批量关闭公众号推送_微信推出“一键拒收”长期未读公众号推送功能
  2. 希捷+ 加了些什么?
  3. python使用教程pandas-「Python」pandas入门教程
  4. 10.Azure应用程序网关(上)
  5. 临界区设计太大或太小有何缺点_这些衣帽间设计案例,装出豪宅范?闺蜜来了都看呆!...
  6. 趣学python3(48)--列出所有目录及子目录文件
  7. netapp学习(五)---创建volume
  8. 【ffmpeg for wince】音视频编解码多平台移植(for window/wince))ffmpeg
  9. python文本分词_【Python】使用jieba对文本进行分词
  10. 西安工程大学计算机科学学院刘宝宝,计算机科学学院召开研究生国家奖学金答辩会...
  11. VMware-workstation-full-8.0.0-471780.exe
  12. Scala介绍和安装
  13. java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils
  14. Swing表格JTable通过JTableModel插入行
  15. windows下调用外部exe程序 SHELLEXECUTEINFO
  16. OpenCV学习之路(附加资料分享)
  17. 【excel vba】拆分表格
  18. 在 Linux 上安装 chm 文件阅读器
  19. 2020 电赛陕西省赛
  20. 神经网络翻译是什么意思,神经网络用英文怎么说

热门文章

  1. 用StringBuilder 或StringBuffer: 把字符串“ABCDE”,转变成字符串“A,B,C,D” (注意,最后一个E是需要删除的)
  2. WebKit Loader模块介绍
  3. Gitlab的CI/CD初尝试
  4. TreeSet,Hashset,Set集合转为整型数组
  5. MySQL-Xtrabackup备份还原
  6. 购物车完善版,客户余额及所购商品保存在文件
  7. Java开发中字符编码出现乱码的处理
  8. Can not find the tag library descriptor for http://java.sun.com/jsp/jstl/
  9. Oracle基本概念与数据导入
  10. c++ map的使用方法[转]