使用 Vault 和 Nomad 保护 Spring Cloud 微服务

主要观点:微服务安全相关重要话题是管理和保护应用使用的敏感数据,如令牌、密码或证书。开发者常将敏感数据以明文存于配置文件,虽可加密但多服务分离数据库时不太适用。文中介绍将 Spring Boot 应用与 HashiCorp 的 Vault 集成以妥善存储敏感数据,包括运行 Vault、与 Postgres 数据库集成、启用 Spring Cloud Vault 以及在 Nomad 上部署应用等步骤。
关键信息

  • 示例由部署在 Nomad 上的callme-servicecaller-service两个应用组成,通过 Consul 进行服务发现,callme-service将交互历史存储于数据库,数据库凭证存于 Vault。
  • 在开发模式下通过 Docker 运行 Vault,可用 Root Token 登录,可创建连接其他服务的 Secret Engine 如 PostgreSQL。
  • 配置 PostgreSQL 的 Secret Engine 需设置插件、连接设置和凭证等,创建角色并设置相关权限。
  • 启用 Spring Cloud Vault 需添加相关依赖,配置与 Vault 的集成,将生成的数据库凭证注入应用。
  • 部署应用前需运行 Consul 的 Docker 容器,配置 Nomad 与 Consul 和 Vault 的连接,构建项目并准备 Nomad 的作业描述文件,添加 Vault 策略后可部署应用,应用已在 Consul 注册。
    重要细节
  • Docker 运行 Vault 命令及登录获取 Root Token 的操作。
  • 配置 PostgreSQL Secret Engine 的各种命令和参数,如连接 URL、用户名、密码等。
  • Spring Cloud Vault 的依赖配置及与 Vault 集成的相关属性设置。
  • Nomad 配置文件的内容及部署应用的命令和流程。
  • 在 Vault 中设置用于应用的策略及相关权限设置。
阅读 4
0 条评论