简介:Vault是一种用于安全访问机密的工具。秘密是您想要严格控制访问权限的任何内容,例如API密钥、密码、证书等等。Vault为任何机密提供了统一的界面,同时提供了严格的访问控制并记录了详细的审核日志。
历史攻略:
Python:暴力破解密码 - 压缩包、web实战
Python:暴力破解密码
真伪之眼:探索信息纷争的艺术
Python:浏览网页暴露多少信息?
项目github地址:
https://github.com/hashicorp/vault
官网:
https://www.vaultproject.io/
工作原理:Vault主要使用令牌,并且令牌与客户端的策略相关联。每个策略都是基于路径的,策略规则限制每个客户端的操作和路径的可访问性。使用Vault,您可以手动创建令牌并将其分配给客户端,或者客户端可以登录并获取令牌。下图显示了Vault的核心工作流。
安装依赖:hvac是用来与Vault服务器交互的vault API客户端
pip install hvac
vault-examples - Python:
# -*- coding: utf-8 -*-
# time: 2023/11/30 21:36
# file: run.py
# 公众号: 玩转测试开发
import hvac
import sys
client = hvac.Client(
url='http://127.0.0.1:8200',
token='dev-only-token',
)
create_response = client.secrets.kv.v2.create_or_update_secret(
path='my-secret-password',
secret=dict(password='Hashi123'),
)
print('Secret written successfully.')
read_response = client.secrets.kv.read_secret_version(path='my-secret-password')
password = read_response['data']['data']['password']
if password != 'Hashi123':
sys.exit('unexpected password')
print('Access granted!')
容器化启动方式:
docker run --cap-add=IPC_LOCK -e 'VAULT_LOCAL_CONFIG={"storage": {"file": {"path": "/vault/file"}}, "listener": [{"tcp": { "address": "0.0.0.0:8200", "tls_disable": true}}], "default_lease_ttl": "168h", "max_lease_ttl": "720h", "ui": true}' -p 8200:8200 vault:1.12.7 server
浏览器访问:http://:8200/
官方的描述:启动Vault服务器时,它将以密封状态启动。在这种状态下,Vault被配置为知道在哪里以及如何访问物理存储,但不知道如何解密任何物理存储。解封是获取读取解密密钥所需的明文根密钥以解密数据的过程,从而允许访问Vault。在解封之前,Vault几乎不可能执行任何操作。例如,身份验证、管理装载表等都是不可能的。唯一可能的操作是打开Vault并检查密封的状态。