Python:私人定制密码保险库 - Vault

简介: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并检查密封的状态。

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据您提供的配置,您使用了两个配置仓库:一个是本地文件系统 (`native`),另一个是 Vault (`vault`)。如果您遇到了 `spring.cloud.config.server.composite` 错误,可能是由于以下原因之一: 1. 未正确设置 `spring.cloud.config.server.composite` 属性:请确保在您的配置文件中添加了该属性,并将其设置为正确的值。根据您的配置,您可以将其设置为 `repo1,repo2`。 2. 未正确配置每个配置仓库的属性:请确保为每个配置仓库设置了正确的属性。根据您的配置,您需要设置 `spring.cloud.config.server.repo1.uri` 和 `spring.cloud.config.server.repo2.uri` 属性。对于本地文件系统 (`native`),您可以将 `search-locations` 设置为文件路径;对于 Vault (`vault`),您需要设置 `kv-version`、`backend`、`default-key` 和 `profile-separator` 属性。 请按照以下示例进行修改,并根据您的实际情况进行调整: ```properties spring.cloud.config.server.composite=repo1,repo2 # 本地文件系统 (native) 配置仓库 spring.cloud.config.server.repo1.type=native spring.cloud.config.server.repo1.search-locations=file:./central-config # Vault 配置仓库 spring.cloud.config.server.repo2.type=vault spring.cloud.config.server.repo2.kv-version=2 spring.cloud.config.server.repo2.backend=secret spring.cloud.config.server.repo2.default-key=application spring.cloud.config.server.repo2.profile-separator=/ ``` 请将上述配置添加到您的配置文件中,并根据需要进行调整。希望这能解决您的问题!如有任何进一步的问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值