返回

Vault API 安全指南——尽在掌握

开发工具

简介

在前面的文章中,我们已经介绍了 Vault 的命令行客户端用法,但Vault 实际上是通过 HTTP 协议与客户端通信的。本文将介绍如何使用 REST API 与 Vault 服务器进行通信。Vault 提供了许多针对特定语言的客户端库,这些库本质上就是这些接口的封装。

Vault 的 REST API 概览

Vault 的 REST API 旨在遵循通用 RESTful API 最佳实践。API 端点通常具有显而易见的 URL,并且以标准的 HTTP 动词(例如 GET、POST、PUT 和 DELETE)进行操作。返回的数据通常采用 JSON 格式。

Vault 的 API 包含许多端点,这些端点可用于执行各种操作,例如:

  • 创建和管理机密
  • 管理权限和策略
  • 执行审计操作
  • 配置 Vault 集群

使用 Vault 的 REST API

要使用 Vault 的 REST API,您需要做的第一件事就是获取访问令牌。访问令牌是用于对 API 进行身份验证的字符串。您可以使用 Vault 的命令行客户端或通过向 /auth/token 端点发送 POST 请求来获取访问令牌。

获取访问令牌后,您就可以开始使用 API 了。您可以使用任何支持 HTTP 请求的编程语言或工具。例如,您可以使用 cURL、Python 请求库或 Go 标准库中的 HTTP 客户端。

以下是使用 REST API 执行一些常见操作的示例:

  • 创建机密:
curl -X POST -H "X-Vault-Token: $VAULT_TOKEN" -d '{"data": {"username": "user1", "password": "password1"}}' https://vault.example.com/v1/secret/my-secret
  • 读取机密:
curl -X GET -H "X-Vault-Token: $VAULT_TOKEN" https://vault.example.com/v1/secret/my-secret
  • 更新机密:
curl -X PUT -H "X-Vault-Token: $VAULT_TOKEN" -d '{"data": {"username": "user2", "password": "password2"}}' https://vault.example.com/v1/secret/my-secret
  • 删除机密:
curl -X DELETE -H "X-Vault-Token: $VAULT_TOKEN" https://vault.example.com/v1/secret/my-secret

安全使用 Vault 的 REST API

在使用 Vault 的 REST API 时,务必要注意以下安全事项:

  • 始终使用 HTTPS 连接到 Vault 服务器。
  • 不要在 API 请求中包含敏感信息。
  • 使用强密码并定期更改密码。
  • 使用访问控制列表 (ACL) 来限制对 API 的访问。
  • 启用审计日志记录并定期查看日志。