前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >开源KMS之vault part10

开源KMS之vault part10

原创
作者头像
保持热爱奔赴山海
发布2024-06-04 22:48:08
570
发布2024-06-04 22:48:08

审计日志

https://developer.hashicorp.com/vault/docs/commands/audit

代码语言:txt
复制
启用
$ vault audit enable file file_path="/var/log/vault-audit.log"


列出审计日志及其明细信息
$ vault audit list
Path     Type    Description
----     ----    -----------
file/    file    n/a

$ vault audit list -detailed
Path     Type    Description    Replication    Options
----     ----    -----------    -----------    -------
file/    file    n/a            replicated     file_path=/var/log/vault-audit.log


禁用
$ vault audit disable file/
Success! Disabled audit device (if it was enabled) at: file/

$ vault audit list -detailed
No audit devices are enabled.

lease租约命令

https://developer.hashicorp.com/vault/docs/commands/lease

https://lonegunmanb.github.io/essential-vault/3.%E5%91%BD%E4%BB%A4%E8%A1%8C/7.lease.html

使用之前创建的账号密码登录vault

执行lookup查看租约信息

operator命令

operator命令是运维管理类命令。具体可以看下面文档

https://lonegunmanb.github.io/essential-vault/3.%E5%91%BD%E4%BB%A4%E8%A1%8C/12.operator.html

https://developer.hashicorp.com/vault/docs/v1.15.x/commands/operator

全部子命令

vault operator init  用于vault的初始化

vault operator rotate

operator rotate 命令通过轮替底层加密密钥来保护写入存储后端的数据。它将会在密钥环中安装一个新密钥。这个新密钥用于加密新数据,而环中的旧密钥用于解密旧数据。

这是在线操作,不会导致停机。此命令按集群(而不是按服务器)运行,因为高可用模式下的 Vault 服务器共享相同的存储后端。

operator key-status

提供有关使用的加密密钥的信息。具体来说是当前密钥期限和密钥安装时间

$ vault operator key-status

Key Term            7   # 这个值代表底层加密秘钥轮转过的次数,也就是历史上执行过多少次的 vault operator rotate命令

Install Time        01 Jun 24 15:20 UTC

Encryption Count    17   # 每次调用到vault的加密则Encryption Count的值会增长

operator seal

vault operator seal 命令封印 Vault 服务器。

封印使得 Vault 服务器停止响应任何操作,直到它被解封。

封印后,Vault 服务器会丢弃其内存中用来解锁数据的主密钥,因此它在物理上无法响应请求,直到解封。

plugin命令

代码语言:txt
复制
vault plugin list

vault plugin list database

vault plugin info database mysql-database-plugin 
Key                   Value
---                   -----
args                  []
builtin               true
command               n/a
deprecation_status    supported
name                  mysql-database-plugin
oci_image             n/a
runtime               n/a
sha256                n/a
version               v1.15.4+builtin.vault

vault plugin info auth userpass 
Key                   Value
---                   -----
args                  []
builtin               true
command               n/a
deprecation_status    supported
name                  userpass
oci_image             n/a
runtime               n/a
sha256                n/a
version               v1.15.4+builtin.vault

server命令

使用指定配置文件启动 Vault 服务:

代码语言:txt
复制
$ vault server -config=/etc/vault/config.hcl

使用自定义的根令牌启动 "dev" 模式服务:

代码语言:txt
复制
$ vault server -dev -dev-root-token-id="root"

token命令

创建一个新令牌:

代码语言:txt
复制
$ vault token create
Key                  Value
---                  -----
token                hvs.gXPIwp4co6UQipjZMij6jB1E
token_accessor       l89AQtO9FXCONZaHr6mdpXeH
token_duration       ∞
token_renewable      false
token_policies       ["root"]  # 这是用root token创建的,因此策略也继承了root的,权限比较高
identity_policies    []
policies             ["root"]   # 这是用root token创建的,因此策略也继承了root的,权限比较高


$ vault token create -policy=my-policy -policy=other-policy 还可以在创建token的时候指定策略


$ vault token create -period=30m 创建一个周期性(periodic)令牌【默认不加-period表示ttl无限制,不会自动过期】
Key                  Value
---                  -----
token                hvs.22NbkEUlazuhaSTYMZ2pwHFK
token_accessor       BU1vGSh3K1HPlXaHn9LaOoxu
token_duration       30m
token_renewable      true
token_policies       ["root"]  # 这是用root token创建的,因此策略也继承了root的,权限比较高
identity_policies    []
policies             ["root"]   # 这是用root token创建的,因此策略也继承了root的,权限比较高

然后,使用上面的这个新生成的token就可以登录vault了,并且还是root权限

代码语言:txt
复制
$ vault login hvs.22NbkEUlazuhaSTYMZ2pwHFK

吊销令牌:

代码语言:txt
复制
吊销一个令牌及其子令牌:
$ vault token revoke 96ddf4bc-d217-f3ba-f9bd-017055595017
Success! Revoked token (if it existed)
吊销一个令牌但保留其子令牌(orphan模式,让子令牌成为孤儿令牌):
$ vault token revoke -mode=orphan 96ddf4bc-d217-f3ba-f9bd-017055595017
Success! Revoked token (if it existed)

使用令牌访问器吊销令牌:

代码语言:txt
复制
$ vault token revoke -accessor 9793c9b3-e04a-46f3-e7b8-748d7da248da
Success! Revoked token (if it existed)

续约令牌;

代码语言:txt
复制
续约一个令牌(使用 /auth/token/renew 端点和权限)
$ vault token renew 96ddf4bc-d217-f3ba-f9bd-017055595017 
续约当前登录的令牌(使用 auth/token/renew-self 端点和权限
$ vault token renew 
使用特定延长时间续约令牌
$ vault token renew -increment=30m  96ddf4bc-d217-f3ba-f9bd-017055595017 

例子:

创建一个token,为了快速演示,这里设置它的有效期只有60s,别名为devops-uaa便于识别

代码语言:txt
复制
$ vault token create -period=60s  -display-name=devops-uaa 
Key                  Value
---                  -----
token                hvs.4Myh7fBlNu0NqO261UIgPP8l
token_accessor       qkBKjUyQ554N7sSEBjJFSFu7
token_duration       1m
token_renewable      true
token_policies       ["root"]
identity_policies    []
policies             ["root"]

稍等几十秒,查看这个token的情况,可以看到目前ttl只剩下14s了

代码语言:txt
复制
$ vault token lookup hvs.4Myh7fBlNu0NqO261UIgPP8l
Key                  Value
---                  -----
accessor             qkBKjUyQ554N7sSEBjJFSFu7
creation_time        1717293545
creation_ttl         1m
display_name         devops-uaa
entity_id            n/a
expire_time          2024-06-02T10:00:13.327884373+08:00
explicit_max_ttl     0s
id                   hvs.4Myh7fBlNu0NqO261UIgPP8l
issue_time           2024-06-02T09:59:05.377856207+08:00
last_renewal         2024-06-02T09:59:13.327884518+08:00
last_renewal_time    1717293553
meta                 <nil>
num_uses             10
orphan               false
path                 auth/token/create
period               1m
policies             [root]
renewable            true
ttl                  14s
type                 service

使用renew命令,给这个token续期下

代码语言:txt
复制
$ vault token renew hvs.4Myh7fBlNu0NqO261UIgPP8l 
Key                  Value
---                  -----
token                hvs.4Myh7fBlNu0NqO261UIgPP8l
token_accessor       qkBKjUyQ554N7sSEBjJFSFu7
token_duration       1m
token_renewable      true
token_policies       ["root"]
identity_policies    []
policies             ["root"]

再次查看这个token的ttl时长

代码语言:txt
复制
$ vault token lookup hvs.4Myh7fBlNu0NqO261UIgPP8l
Key                  Value
---                  -----
accessor             qkBKjUyQ554N7sSEBjJFSFu7
creation_time        1717293545
creation_ttl         1m
display_name         devops-uaa
entity_id            n/a
expire_time          2024-06-02T10:01:00.937159598+08:00
explicit_max_ttl     0s
id                   hvs.4Myh7fBlNu0NqO261UIgPP8l
issue_time           2024-06-02T09:59:05.377856207+08:00
last_renewal         2024-06-02T10:00:00.937159888+08:00
last_renewal_time    1717293600
meta                 <nil>
num_uses             10
orphan               false
path                 auth/token/create
period               1m
policies             [root]
renewable            true
ttl                  57s
type                 service

再过一分钟后,继续使用token lookup查看这个token,发现报错了,提示bad token,因为到达ttl时间后,这个token被vault废弃了,无法再使用

代码语言:txt
复制
$ vault token lookup hvs.4Myh7fBlNu0NqO261UIgPP8l
Error looking up token: Error making API request.
URL: POST http://192.168.31.181:8200/v1/auth/token/lookup
Code: 403. Errors:
* bad token

列举当前登录用的本地令牌在 "secret/foo" 上的权限

代码语言:txt
复制
$ vault token capabilities  secret/credsas
root   # 因为我这里用的root token登录的,是最高权限,因此这里显示为root

列举某个令牌在 某个路径 上的权限(注意这列是v2的kv secret引擎,因此路径里面必须带上data):

代码语言:txt
复制
$ vault token capabilities hvs.CAESIOZOh2uZDQaVdtwRZDQv02zK9w6rsbt2TKnSomBh6lQyGh4KHGh2cy5TNlBYRVR5TlZkTEFxZmlCYWxmaVNVNks secret2/data/creds
read

vault的后端存储

https://developer.hashicorp.com/vault/docs/configuration/storage

常用的是consul、zk、etcd等,当然也支持filesytem和很多云厂商的oss或者rdbms产品。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 审计日志
  • lease租约命令
  • operator命令
  • plugin命令
  • server命令
  • token命令
  • vault的后端存储
相关产品与服务
密钥管理系统
密钥管理系统(Key Management Service,KMS)是一款安全管理类服务,可以让您轻松创建和管理密钥,保护密钥的保密性、完整性和可用性,满足用户多应用多业务的密钥管理需求,符合合规要求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档