Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >开源KMS之vault part2

开源KMS之vault part2

原创
作者头像
保持热爱奔赴山海
发布于 2024-06-02 13:15:27
发布于 2024-06-02 13:15:27
1500
举报
文章被收录于专栏:DevOpsDevOps

解封 Vault

此时查看vault的状态如下

代码语言:txt
AI代码解释
复制
$ vault status
Key                Value
---                -----
Seal Type          shamir
Initialized        true
Sealed             true   --- 此时 Vault 处于封印状态(Sealed 为 true)
Total Shares       5
Threshold          3
Unseal Progress    0/3
Unseal Nonce       n/a
Version            1.15.4
Build Date         2023-12-04T17:45:28Z
Storage Type       consul
HA Enabled         true

使用需要 vault operator unseal 命令来执行解封。至少需要 3 个秘钥来解封。

代码语言:txt
AI代码解释
复制
$ vault operator unseal
Unseal Key (will be hidden): 
Key                Value
---                -----
Seal Type          shamir
Initialized        true
Sealed             true
Total Shares       5
Threshold          3
Unseal Progress    1/3
Unseal Nonce       a6e0067c-1989-4c97-c22c-857e562f464d
Version            1.15.4
Build Date         2023-12-04T17:45:28Z
Storage Type       consul
HA Enabled         true
$ vault operator unseal
Unseal Key (will be hidden): 
Key                Value
---                -----
Seal Type          shamir
Initialized        true
Sealed             true
Total Shares       5
Threshold          3
Unseal Progress    2/3
Unseal Nonce       a6e0067c-1989-4c97-c22c-857e562f464d
Version            1.15.4
Build Date         2023-12-04T17:45:28Z
Storage Type       consul
HA Enabled         true
$ vault operator unseal
Unseal Key (will be hidden): 
Key                    Value
---                    -----
Seal Type              shamir
Initialized            true
Sealed                 false
Total Shares           5
Threshold              3
Version                1.15.4
Build Date             2023-12-04T17:45:28Z
Storage Type           consul
Cluster Name           vault-cluster-9e7e5644
Cluster ID             5713b05b-c027-febb-9355-8b5c569959c3
HA Enabled             true
HA Cluster             n/a
HA Mode                standby
Active Node Address    <none>

再次查看解封状态

代码语言:txt
AI代码解释
复制
$ vault status
Key             Value
---             -----
Seal Type       shamir
Initialized     true
Sealed          false           --- 此时 Vault 处于解封状态(Sealed 为 false)
Total Shares    5
Threshold       3
Version         1.15.4
Build Date      2023-12-04T17:45:28Z
Storage Type    consul
Cluster Name    vault-cluster-9e7e5644
Cluster ID      5713b05b-c027-febb-9355-8b5c569959c3
HA Enabled      true
HA Cluster      https://192.168.31.181:8201
HA Mode         active
Active Since    2024-05-31T13:37:19.968734049Z

然后,可以开始写入测试数据

vault login # 输入上面步骤时候生成的token: hvs.HkpvksdC9ouTa7ZifpHViK4M

代码语言:txt
AI代码解释
复制
Token (will be hidden): 
Success! You are now authenticated. The token information displayed below
is already stored in the token helper. You do NOT need to run "vault login"
again. Future Vault requests will automatically use this token.

Key                  Value
---                  -----
token                hvs.HkpvksdC9ouTa7ZifpHViK4M
token_accessor       H9MTXpKJZiepQBr03KPNLHEh
token_duration       ∞
token_renewable      false
token_policies       ["root"]
identity_policies    []
policies             ["root"]

封印vault

https://developer.hashicorp.com/vault/docs/commands/operator/seal

该操作会将内存中的 Master Key 抛弃,然后必须再执行一次解封操作才能恢复它。封印操作只需要使用 Root 特权进行一次操作即可完成。

这样的话,如果检测到入侵的迹象,可以用最快的速度锁定 Vault 保存的机密来减少损失。如果没有办法恢复 Master Key 是无法访问 Vault 中的数据的。

执行下面命令即可完成vault的封印:

代码语言:txt
AI代码解释
复制
vault operator seal

启用身份验证

说明:userpass 身份验证方法允许用户使用一组用户名密码登录 Vault。这组用户名密码直接通过 users/ 路径配置进该验证方法。本方法无法从外部数据源读取用户名密码,另外用户名不区分大小写。

代码语言:txt
AI代码解释
复制
启用:vault auth enable userpass
禁用:vault auth disable userpass

创建一个账号,密码为secret

代码语言:txt
AI代码解释
复制
vault write auth/userpass/users/sethvargo password=secret

vault web ui 看到如下:

TIPS:补充下,在创建账号的时候,也支持定义策略,例如这种写法:

代码语言:txt
AI代码解释
复制
vault write auth/userpass/users/sethvargo password=secret policies= secert2-readonly
# 请先确保policy已经创建好了

vault web ui 看到如下:

使用上面的账号和密码登录

代码语言:txt
AI代码解释
复制
$ vault login -method=userpass username=sethvargo password=secret   # 这种在命令行直接输入密码,会暴露密码
或者 vault login -method=userpass username=sethvargo  输入密码

Success! You are now authenticated. The token information displayed below
is already stored in the token helper. You do NOT need to run "vault login"
again. Future Vault requests will automatically use this token.

Key                    Value
---                    -----
token                  hvs.CAESIHl30Q30Fa4qgFItwcWQqQU-qkwyST9WSTse0QpCSSeiGh4KHGh2cy5Rd3JFN2FoYk5XVDlVc0x1bDFTaGZnZ2c
token_accessor         qCQQYPIbPN7A4DJ3GQJgVHK7
token_duration         768h
token_renewable        true
token_policies         ["default"]
identity_policies      []
policies               ["default"]
token_meta_username    sethvargo

列出已启用的身份验证方法(更详细的可以使用vault auth list -detailed命令查看)

代码语言:txt
AI代码解释
复制
$ vault auth list
Path         Type        Accessor                  Description                Version
----         ----        --------                  -----------                -------
token/       token       auth_token_309a1e05       token based credentials    n/a
userpass/    userpass    auth_userpass_2c5d8cbb    n/a                        n/a

tune命令, 调整指定路径上的身份验证方法的配置选项

代码语言:txt
AI代码解释
复制
$ vault read sys/auth/userpass/tune
Key                  Value
---                  -----
default_lease_ttl    768h
description          n/a
force_no_cache       false
max_lease_ttl        768h
token_type           default-service

# 调整下ttl时长
$ vault auth tune -default-lease-ttl=900h userpass
Success! Tuned the auth method at: userpass/

$ vault auth tune -max-lease-ttl=900h userpass
Success! Tuned the auth method at: userpass/

$ vault read sys/auth/userpass/tune
Key                  Value
---                  -----
default_lease_ttl    900h
description          n/a
force_no_cache       false
max_lease_ttl        900h
token_type           default-service

TIPS: 对于token,也可以使用tune调整,操作方法如下:

代码语言:txt
AI代码解释
复制
$  vault read sys/auth/token/tune  # 可以看到默认值是768h
Key                  Value
---                  -----
default_lease_ttl    768h
description          token based credentials
force_no_cache       false
max_lease_ttl        768h
token_type           default-service

# 调整token的ttl为1200h
$ vault auth tune  -max-lease-ttl=1200h  -default-lease-ttl=1200h token
Success! Tuned the auth method at: token/

# tune后,再创建一个token
$ vault token create 

# 查看新的token的ttl时间,可以看到已经生效了(需要注意的是之前创建的token的ttl的时间还是保持之前的768h)
$ vault token lookup hvs.CAESINxMTgrMkGe9NWCIGE2qS3S3tSm5AnPceRaDWMU1QkhdGh4KHGh2cy5XYWNSeWwySkp5UmdaQTVWc0diOHhrazg
Key                 Value
---                 -----
accessor            AUPpIgvYN70UHKprVZBOeCtq
creation_time       1717332466
creation_ttl        1200h
display_name        token
entity_id           n/a
expire_time         2024-07-22T20:47:46.24519052+08:00
explicit_max_ttl    0s
id                  hvs.CAESINxMTgrMkGe9NWCIGE2qS3S3tSm5AnPceRaDWMU1QkhdGh4KHGh2cy5XYWNSeWwySkp5UmdaQTVWc0diOHhrazg
issue_time          2024-06-02T20:47:46.245198236+08:00
meta                <nil>
num_uses            0
orphan              false
path                auth/token/create
policies            [db_read_policy default]
renewable           true
ttl                 1199h59m53s
type                service

delete 命令从 Vault 中删除指定路径上的机密和配置。删除操作的具体实现是委托给具体路径上挂载的后端实现的。

代码语言:txt
AI代码解释
复制
vault write sys/auth/my-auth type=userpass
vault auth list
vault read sys/auth/my-auth
vault delete sys/auth/my-auth

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
开源KMS之vault part10
https://developer.hashicorp.com/vault/docs/commands/audit
保持热爱奔赴山海
2024/06/04
1530
开源KMS之vault part1
vault 是HashiCorp出品的一款久经考验的机密管理软件,HashiCorp家的terraform也很有名,改天有空再写terraform相关的。
保持热爱奔赴山海
2024/06/02
3950
使用 JWT-SVID 做为访问 Vault 的凭据
这次介绍的是在 SPIRE Server 和 Vault Server 之间建立 OIDC 联邦的方法。设置联邦之后,SPIRE 认证的工作负载就能使用 JWT-SVID 来通过 Vault Server 的认证。这样工作负载就无需使用 AppRole 或者用户名密码的方式来进行认证了。
崔秀龙
2023/02/27
9150
在 Kubernetes 上部署 Secret 加密系统 Vault
HashiCorp Vault 是一个基于身份的 Secret 和加密管理系统。Secret 是您想要严格控制访问的内容,例如 API 加密密钥、密码或证书。Vault 提供由身份验证和授权方法控制的加密服务。使用 Vault 的 UI、CLI 或 HTTP API,可以安全地存储和管理对机密和其他敏感数据的访问、严格控制和可审计。
我的小碗汤
2023/03/19
1K0
在 Kubernetes 上部署 Secret 加密系统 Vault
开源密码存储引擎 Vault 的安装与使用
vault 是一款 HCP 推出的密钥管理引擎,用来集中存储集群运行过程中所需要的秘密信息,例如数据库的访问凭证、密码、密钥等。它保证了存储与通信过程的保密性,这对于我们无处不在的敏感信息的数据安全显然是十分必要的。
用户3147702
2022/12/21
3.7K0
开源密码存储引擎 Vault 的安装与使用
开源KMS之vault part7
tips: policy的命令行 删除方法: vault policy delete my-policy
保持热爱奔赴山海
2024/06/03
1340
使用 Vault 管理数据库凭据和实现 AppRole 身份验证
Vault 是一个开源工具,可以安全地存储和管理敏感数据,例如密码、API 密钥和证书。它使用强加密来保护数据,并提供多种身份验证方法来控制对数据的访问。Vault 可以部署在本地或云中,并可以通过 CLI、API 或 UI 进行管理。
崔哥
2024/01/19
8480
专家专栏|Zabbix5.2安全特性-机密信息外部存储
Zabbix 5.2 在安全性能做了很大的改进,如支持连接加密,保密宏等。现在zabbix的所有连接都可以配置为加密模式。5.2版本引入了HashCorp Valut来保存一些机密信息到外部存储。HashiCorp Vault 的 口号 是 A Tool for Managing Secrets,这个口号很好的描述了该产品的定位。HashiCorp是一家专注于基础设施解决方案的公司,业务范围涵盖软件开发中的部署、运维、安全等方面。5.2版本中很多敏感信息可保存在HashCorp Valut,而不保存在Zabbix数据库里。如宏信息,数据库连接信息,密码,加密的key等。这进一步加强了Zabbix的安全性,对于一些场景特别适用。
Zabbix
2021/01/29
2.2K0
专家专栏|Zabbix5.2安全特性-机密信息外部存储
安全第一步,密钥管理服务
最近爆出不少公司代码泄露的新闻,像前不久的Bilibili后端代码被上传到Github,大疆因为前员工泄露公司源代码,致黑客入侵造成百万损失。生产环境代码泄露的危害,一方面是业务逻辑被不怀好意的人分析,容易被找出可利用的漏洞,当然更危险的是如果代码里面有一些明文存储secrets、Token、Api Key等,这些内容被别人拿到,服务就很容易遭到致命的攻击,给我们带来不可估量的损失 。所以合理存储程序中的secrets是十分有必要的。本文接下来简单给大家介绍解决以上问题方法密钥管理服务(Key Management Service,KMS)以及一款开源的密钥管理工具Vault。
绿盟科技研究通讯
2019/12/11
4.3K0
安全第一步,密钥管理服务
开源KMS之vault part5
https://lonegunmanb.github.io/essential-vault/6.%E6%9C%BA%E5%AF%86%E5%BC%95%E6%93%8E/6.3.Database_MSSQL.html
保持热爱奔赴山海
2024/06/03
1830
开源KMS之vault part4
2 注册一个数据库实例到vault,名称为 my-mysql-database 【注意这里用到一个高权限的账号,需要能创建账号、删除账号、调整授权】
保持热爱奔赴山海
2024/06/02
1660
12 Jan 2022 openshift安装vault
将vault的helm repo克隆到本地,并checkout到最新版本v0.18.0:
俊采
2023/10/17
1640
如何在Ubuntu上加密你的信息:Vault入门教程
Vault是一个开源工具,提供安全,可靠的方式来存储分发API密钥,访问令牌和密码等加密信息。在部署需要使用加密或敏感数据的应用程序时,您就应该试试Vault。
苏子晨
2018/08/03
3.1K0
开源KMS之vault part9
https://developer.hashicorp.com/vault/docs/secrets/transit
保持热爱奔赴山海
2024/06/03
2390
开源KMS之vault part6
kv 机密引擎用于在 Vault 使用的物理存储中存储任意机密。键名必须始终是字符串。如果您直接通过命令行编写非字符串类型的值,它们将被转换为字符串。但是,您可以通过从 JSON 文件或使用 HTTP API 写入键值数据来保留非字符串类型的值。
保持热爱奔赴山海
2024/06/03
1590
在 Kubernetes 读取 Vault 中的机密信息
在 Kubernetes 中,我们通常会使用 Secret 对象来保存密码、证书等机密内容,然而 kubeadm 缺省部署的情况下,Secret 内容是用明文方式存储在 ETCD 数据库中的。能够轻松的用 etcdctl 工具获取到 Secret 的内容。通过修改 --encryption-provider-config 参数可以使用静态加密或者 KMS Server 的方式提高 Secret 数据的安全性,这种方式要求修改 API Server 的参数,在托管环境下可能没有那么方便,Hashicorp Vault 提供了一个变通的方式,用 Sidecar 把 Vault 中的内容加载成为业务容器中的文件。
崔秀龙
2021/04/25
2.3K0
K8S与Vault集成,进行Secret管理
Vault 是用于处理和加密整个基础架构秘钥的中心管理服务。Vault 通过 secret 引擎管理所有的秘钥,Vault 有一套 secret 引擎可以使用。
没有故事的陈师傅
2021/02/01
3.2K0
部署企业私密信息管理平台Hashicorp vault集成kubernetes和AWS的密钥信息
  目前公司内部网站、项目比较多,运维的密钥管理主要都是靠个人保存,其中包含数据库密钥信息、申请的TLS证书、AWS密钥信息、各管理平台的密钥等,管理混乱,容易丢失,希望有一个平台能统一收集管理、签发、授权、审计。
少羽大怪兽
2021/04/28
1.6K0
Kubernetes 的小秘密——从 Secret 到 Bank Vault
Kubernetes 提供了 Secret 对象用于承载少量的机密/敏感数据,在实际使用中,有几种常规或者非常规的方式能够获取到 Secret 的内容:
崔秀龙
2024/04/15
2960
Kubernetes 的小秘密——从 Secret 到 Bank Vault
使用 Vault 与 Kubernetes 为密码提供强有力的保障
Kubernetes 已经成为了容器编排方案的行业标准,而来自 HashiCorp 的 Vault 则是密码管理的标准。那问题来了: 怎样将这两项技术结合使用从而可以让你在 Kubernetes 的应用程序中使用来自于 Vault 中心实例的密码呢?
LinuxSuRen
2020/04/17
1.7K0
相关推荐
开源KMS之vault part10
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档