我正在准备生产应用程序。我需要帮助的主题是使用我在保管库上创建的秘密值。我将我的秘密注入到一个 Pod 中,但我不知道如何获取它们。我在整个应用程序中使用 helm 图表,并且有 8 个微服务。
在这里,我可以读取注入的秘密,以便在我的Vault pod上进行测试,该pod部署为舵图;
关键值
刷新间隔768小时 密码 sUp3rS3cUr3P@ssw0rd 用户名 dbuser
我想知道如何在我的应用程序的一个微服务 yaml 上使用我的“密码”。
由于您要将机密注入到 Pod 中,因此您应该能够知道机密所在的路径以及机密的文件名是什么。
如果是这种情况,您可以通过
SECRETS_DIR_PATH
公开 ENV 变量 ConfigMap
,其中将包含 pod 中秘密目录的路径,例如:
apiVersion: v1
kind: ConfigMap
..
data:
SECRETS_DIR_PATH: "/mnt/store/<appName>/secrets"
一旦公开了此 ENV 变量,您就可以在应用程序中使用它并读取秘密文件。示例(使用 java
Dotnev
)
var secretsDirPath = dotenv.get(SECRETS_DIR_PATH);
var secrets = Secrets.create(secretsDirPath);
var mySecret = secrets.getSecret("mySecret")
此示例假设您有一个
Secrets
包来管理秘密的读取和获取。当然,您可以简单地将它们作为文件读取。让包管理机密的一个优点是您可以执行缓存并确保您的机密始终是最新的。