https://developer.hashicorp.com/vault/docs/commands/audit
启用
$ 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.
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命令是运维管理类命令。具体可以看下面文档
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 服务器会丢弃其内存中用来解锁数据的主密钥,因此它在物理上无法响应请求,直到解封。
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
使用指定配置文件启动 Vault 服务:
$ vault server -config=/etc/vault/config.hcl
使用自定义的根令牌启动 "dev" 模式服务:
$ vault server -dev -dev-root-token-id="root"
创建一个新令牌:
$ 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权限
$ vault login hvs.22NbkEUlazuhaSTYMZ2pwHFK
吊销令牌:
吊销一个令牌及其子令牌:
$ 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)
使用令牌访问器吊销令牌:
$ vault token revoke -accessor 9793c9b3-e04a-46f3-e7b8-748d7da248da
Success! Revoked token (if it existed)
续约令牌;
续约一个令牌(使用 /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便于识别
$ 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了
$ 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续期下
$ 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时长
$ 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废弃了,无法再使用
$ 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" 上的权限
$ vault token capabilities secret/credsas
root # 因为我这里用的root token登录的,是最高权限,因此这里显示为root
列举某个令牌在 某个路径 上的权限(注意这列是v2的kv secret引擎,因此路径里面必须带上data):
$ vault token capabilities hvs.CAESIOZOh2uZDQaVdtwRZDQv02zK9w6rsbt2TKnSomBh6lQyGh4KHGh2cy5TNlBYRVR5TlZkTEFxZmlCYWxmaVNVNks secret2/data/creds
read
https://developer.hashicorp.com/vault/docs/configuration/storage
常用的是consul、zk、etcd等,当然也支持filesytem和很多云厂商的oss或者rdbms产品。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。