工具总结篇——vault

Vault是用来安全的获取秘密信息的工具,它可以保存密码、API密钥、证书等信息。Vault提供了一个统一的接口来访问秘密信息,其具有健壮的访问控制机制和丰富的事件日志。

Vault解决多用户不同身份访问关键信息时,授权的复杂问题。Vault为安全的存储、管理审计日志提出一个解决方案

vault提供特性描述

数据加密 :vault 能够在不存储数据的情况下对数据进行加密、解密。开发者便可以存储加密后的数据而无需开发加密技术,Vault允许安全团队自定义安全参数。

安全密码存储: vault在将秘密信息(api密钥,密码,证书)存储到持久化存储之前对数据进行加密。这样即使加密后的信息也是不可读的。

动态密码 :vault可以随时为AWS、SQL资料库等类似的系统产生密码。比如,如果应用需要访问AWS S3 buket,它向vault请求AWS密钥对,vault将给出带有租期的所需秘密信息。一旦租用期过期,这个密码信息就不再存储。

租赁和更新:vault给出的秘密信息带有租赁时间,一旦租用期过期,它便立即回收秘密信息,如果应用仍需要该秘密信息,则可以通过API更新租用期。

撤销 :在租用到期之前,vault可以撤销一个秘密信息或者一个秘密信息树。

vault使用例子

存储用户secret

1.用户通过接口上传自己的secret,vault将用户上传的内容加密后写入MySQL。

➜ vault vault write secret/org-2345 organizationID=org-2345 publickey=test0512
Success! Data written to: secret/org-2345

2.用户存储的secret通过以下接口进行展示。

➜  vault vault read -format=json secret/org-2345
{
    "request_id": "08ef64d6-0b11-4da3-30f0-a0dc7e5e90fd",
    "lease_id": "",
    "lease_duration": 2764800,
    "renewable": false,
    "data": {
        "organizationID": "org-2345",
        "publickey": "test0512"
    },
    "warnings": null
}
➜ 

生成用户带有租期的token

➜  vault vault token-create 
Key             Value
---             -----
token           54d4106c-f56d-4f26-8a4a-e3f72971803e
token_accessor  7417f4c5-aaf0-2ca9-054b-ac147fb4b9fc
token_duration  0s
token_renewable false
token_policies  [root]

vault 需要配置mysql作为backend持久化存储数据

初次配置的过程中会产生如下所示的信息:

Unseal Key 1: QIUHbvNE/LKlbg4zHi/6ykp8Lvmnpjxz7rSUOw1WWy4
Unseal Key 2: 1LhCk50IskEkcGDxNmOz3k3au8yKHfkmcApIQ/51GA+
Unseal Key 3: al0yAEvRceJUMyE0nYjzKIOq2Hgklf0YIcS/W/HxE1m
Unseal Key 4: ce6OGY0qeU1qGC8fpu1McswiMYWiWLSK1mbz2jeHEZI
Unseal Key 5: 0jid0L+7hBTu4eanPw9Bjnl9VaBuKyWpl6jBl/WdXjP
Initial Root Token: 0636ad41-867a-8b0a-4322-beb1c57b9b9

Vault initialized with 5 keys and a key threshold of 3. Please
securely distribute the above keys. When the vault is re-sealed,
restarted, or stopped, you must provide at least 3 of these keys
to unseal it again.

Vault does not store the master key. Without at least 3 keys,
your vault will remain permanently sealed.

vault可以配置使用进行seal/unseal的密钥的个数。

vault init -key-shares=1 -key-threshold=1

优点:

vault server启动默认的状态为sealed状态,vault 被配置知道如何访问物理存储,但是不知道如何解密数据。

unseal是程序构造一个主密钥去读取加密后的数据并解密数据,只有在unseal状态,才可以针对vault做操作。

1.vault配置后端mysql的方法:

https://www.vaultproject.io/docs/configuration/storage/mysql.html

2.vault配置mysql secret backend

https://www.vaultproject.io/docs/secrets/mysql/index.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值