HashiCorp Vault周期性令牌与带TTL令牌有何差异?
Vault周期性令牌与普通TTL令牌的核心差异
我在创建周期性令牌(Periodic Token)和带TTL的令牌时,发现二者属性与行为看似相似——只要未过期且无显式max TTL,令牌均可续期。作为Vault新手,我是不是没搞懂二者的细微差别?
注:周期性令牌拥有TTL,但无max TTL;理论上只要在TTL内续期,就能无限期存续。
命令执行与令牌详情
# 创建带TTL的令牌(有效期1小时) bar@foo / % vault token create -policy=default -ttl=60m Key Value --- ----- token hvs.CAESIP-pCVGqYYh4Ddow-D1mPHycaT0g1M9G9hONC62DxUiMGh4KHGh2cy5jcmgyWmJqVjQ3N2Z1c1k2QW5DcHZhT1Y token_accessor cFTNlIetjlaNZRqRzuS8KfjC token_duration 1h token_renewable true token_policies ["default"] identity_policies [] policies ["default"] # 创建周期性令牌(周期1小时) bar@foo / % vault token create -policy=default -period=60m Key Value --- ----- token hvs.CAESIGat0D04a55ju96wNi1shn-uxFjZqvp2aeF3qO0_BckIGh4KHGh2cy44N2VPWHBEUHRlSHRLbnJHMkw2d3Y5Z0U token_accessor wRXC2EhJKkBMJdJ4zmiw39r6 token_duration 1h token_renewable true token_policies ["default"] identity_policies [] policies ["default"] # 查看普通TTL令牌详情 bar@foo / % vault token lookup hvs.CAESIP-pCVGqYYh4Ddow-D1mPHycaT0g1M9G9hONC62DxUiMGh4KHGh2cy5jcmgyWmJqVjQ3N2Z1c1k2QW5DcHZhT1Y Key Value --- ----- accessor cFTNlIetjlaNZRqRzuS8KfjC creation_time 1680166595 creation_ttl 1h display_name token entity_id n/a expire_time 2023-03-30T10:56:35.692221+01:00 explicit_max_ttl 0s id hvs.CAESIP-pCVGqYYh4Ddow-D1mPHycaT0g1M9G9hONC62DxUiMGh4KHGh2cy5jcmgyWmJqVjQ3N2Z1c1k2QW5DcHZhT1Y issue_time 2023-03-30T09:56:35.692224+01:00 meta <nil> num_uses 0 orphan false path auth/token/create policies [default] renewable true ttl 59m45s type service # 查看周期性令牌详情 bar@foo / % vault token lookup hvs.CAESIGat0D04a55ju96wNi1shn-uxFjZqvp2aeF3qO0_BckIGh4KHGh2cy44N2VPWHBEUHRlSHRLbnJHMkw2d3Y5Z0U Key Value --- ----- accessor wRXC2EhJKkBMJdJ4zmiw39r6 creation_time 1680166602 creation_ttl 1h display_name token entity_id n/a expire_time 2023-03-30T10:56:42.424072+01:00 explicit_max_ttl 0s id hvs.CAESIGat0D04a55ju96wNi1shn-uxFjZqvp2aeF3qO0_BckIGh4KHGh2cy44N2VPWHBEUHRlSHRLbnJHMkw2d3Y5Z0U issue_time 2023-03-30T09:56:42.424075+01:00 meta <nil> num_uses 0 orphan false path auth/token/create period 1h # 周期性令牌独有的标识字段 policies [default] renewable true ttl 59m43s type service
核心差异说明
续期行为不同
- 普通TTL令牌:续期时默认回到创建时的TTL时长,也可以通过
vault token renew -ttl=<时长>手动指定更小的续期时长;只要没有全局max TTL限制,可反复续期,但续期后的有效期由指定值或默认值决定。 - 周期性令牌:续期时强制重置为period设定的固定时长,哪怕续期时指定了其他TTL值也会被忽略。比如设了period=1h,哪怕只剩10分钟有效期,续期后直接回到1小时有效期。
- 普通TTL令牌:续期时默认回到创建时的TTL时长,也可以通过
属性标识不同
从token lookup结果能明显区分:周期性令牌会多出一个period字段,显示设定的周期时长;普通TTL令牌没有这个字段。适用场景不同
- 普通TTL令牌:适合临时使用的权限,或者需要灵活调整有效期的场景。
- 周期性令牌:适合长期运行的服务进程,需要稳定的有效期周期,避免因续期时指定错误时长导致令牌提前过期,确保每次续期后都有固定的有效时长。
内容的提问来源于stack exchange,提问作者bmd
相关产品推荐
相关产品推荐

