Mor*_*lst 6 spring-boot kubernetes google-secret-manager
为了布莱恩的生命,我该怎么做?
Terraform用于在 GCP 中创建 SQL Server 实例。Root密码和用户密码是随机生成的,然后放入Google Secret Manager中。数据库的 IP 通过私有 DNS 区域公开。
我现在如何获取用户名和密码来访问我的 K8s 集群中的数据库?在这里运行 Spring Boot 应用程序。
这是我想到的一个选择:
在我的部署中,我添加了一个initContainer:
- name: secrets
image: gcr.io/google.com/cloudsdktool/cloud-sdk
args:
- echo "DB_PASSWORD=$(gcloud secrets versions access latest --secret=\"$NAME_OF_SECRET\")" >> super_secret.env
Run Code Online (Sandbox Code Playgroud)
好吧,现在怎么办?如何从这里将其放入我的应用程序容器中?
还有一些bitnami/sealed-secrets我不喜欢的选项,因为设置已经在使用Terraform并将机密保存在 GCP 中。使用时sealed-secrets我可以跳过使用秘密管理器。与国际海事组织相同Vault。
除了评论中的其他答案和建议之外,我还想推荐两个您可能会感兴趣的工具。
第一个是Secret-init:
secrets-init是一个简约的初始化系统,设计为在容器环境中作为 PID 1 运行,并且它与多个秘密管理器服务(例如Google Secret Manager)集成
第二个是kube-secrets-init:
这
kube-secrets-init是一个 Kubernetes 变异准入 Webhook,它可以直接或从 Kubernetes 作为 Secret 或 ConfigMap 来变异任何使用特殊前缀环境变量的 K8s Pod。
它还支持与 Google Secret Manager 集成:
用户可以将 Google 秘密名称(前缀为 gcp:secretmanager:)作为环境变量值。将 secrets-init 使用指定名称将任何环境值解析为引用的秘密值。
这是一篇关于它如何工作的好文章。
小智 1
您可以使用spring-cloud-gcp-starter-secretmanagerSpring 应用程序本身加载机密。
文档 - https://cloud.spring.io/spring-cloud-gcp/reference/html/#secret-manager
| 归档时间: |
|
| 查看次数: |
10380 次 |
| 最近记录: |