我有一些用java编写的数据流管道,它们在不同的环境/项目(开发、uat、生产)的gcp上运行。目前,环境配置(主要是云sql示例和bigquery数据集的连接参数)使用java类中的静态Map(key=env,value=map of properties)和实用程序类来管理,以便从云存储中动态加载其他文件。
在这种情况下,管理配置的最佳实践(如果有的话)是什么?
基本上,我看到两种配置参数:
普通值(在spring应用程序中存储在普通属性文件中的内容)
秘密值(包含必须加密的数据的属性文件—数据库的用户名/密码、api密钥—在k8s上下文中可以作为秘密装载的内容)
谢谢。
2条答案
按热度按时间qvtsj1bj1#
在google云平台中处理秘密值的一种方法是使用secretmanager处理对存储密码的加密和访问控制。
在java代码中,您可以使用GoogleCloudSecretManagerMaven模块来获取所需的秘密值
uz75evzq2#
我想您会发现本教程对如何从数据流管道访问secretmanager很有帮助
“到目前为止,dataflow还不提供存储和访问机密的本机支持。为了保护这些秘密,通常的方法是在运行数据管道时使用云kms对秘密进行加密和解密。通过新推出的secret manager,我们现在可以将这些机密存储在secret manager中,并从我们的管道访问它们,从而提供更好的安全性和易用性。”
下面的代码使用secretmanagersdk访问给定jdbc url secret名称的密钥。