Vault 是由 HashiCorp 开发的一款用于管理和保护敏感数据的工具。它可以帮助组织安全地存储、分发和使用各种类型的敏感信息,如 API 密钥、密码、证书等。
应用场景
API 密钥管理:
将 API 密钥存储在 Vault 中,并根据需要分配给不同的服务或团队成员。这样可以确保密钥的安全性和可追溯性。
数据库凭证管理:
Vault 可以生成动态数据库凭证,每个凭证都有特定的权限和有效期。当凭证不再需要时,可以自动撤销。
SSH 密钥管理:
Vault 可以作为 SSH 密钥管理系统,为用户提供一次性或长期有效的 SSH 密钥。
TLS/SSL 证书管理:
Vault 可以签发和管理 TLS/SSL 证书,简化证书生命周期管理过程。
云平台凭证管理:
Vault 可以管理和轮换 AWS、Azure、Google Cloud Platform 等云平台的凭证。
CI/CD 环境中的秘密管理:
在持续集成/持续交付管道中使用 Vault 来传递敏感信息,如 Docker 镜像仓库凭证、配置文件等。
微服务架构中的秘密管理:
在微服务架构中,不同服务之间可能需要共享某些敏感信息。Vault 可以集中管理这些信息,并根据服务的需求提供相应的访问权限。
合规性和审计:
Vault 提供强大的审计功能,帮助组织满足合规要求,如 GDPR、HIPAA 等。
启动Vault并配置Token
首先,确保你已经安装并启动了Vault服务器。你可以使用以下命令来初始化和启动Vault:
# 启动Vault开发服务器
vault server -dev
# 记录下生成的root token和unseal key
我的Vault根Token是 s.9ZvP3oJHqQcXzKw6FyGmEhLr
,并且Vault运行在默认的 http://localhost:8200
上。
将敏感信息存储到Vault
使用Vault CLI或API将敏感信息存储到Vault中。这里我们使用Vault CLI来创建一个密钥路径 secret/app-secrets
并添加一个键值对 {"password": "mySuperSecretPassword"}