1

我正在使用一个房间,一个管理秘密的工具。

基本上,它使用来自指定服务的秘密填充环境并执行给定的命令。

例如:chamber exec script.sh

将使用在室内定义的环境变量script.sh

我想对谷歌云服务帐户做同样的事情,以便使用谷歌 SQL 代理

问题是,GOOGLE_APPLICATION_CREDENTIALS env var 是 JSON 文件的路径,而不是实际值。

我可以轻松地将 JSON 存储在腔室中,但我不能将其用作 env var,除非我将值复制到 JSON 文件中并将路径传递给 env var。

出于安全原因,我不想将 JSON 文件存储在我的生产实例中。

我知道我可以使用gcloud auth login对用户进行身份验证,但我不想安装不必要的库。

我也可以使用令牌:

./cloud_sql_proxy -instances=INSTANCE_NAME -token=TOKEN_VALUE

问题是令牌很快就会过期。

如果我可以将服务帐户 JSON 文件转换为 base64 字符串并将其用作令牌,那将是完美的。

长话短说:

我想将谷歌云身份验证机密存储在我的管理机密工具上,并将其与 cloud_sql_proxy 一起使用。

我的代码在 aws ec2 上运行。

我能想到的天真的方法是添加 JSON 文件,进行身份验证,然后删除文件……我正在使用打包程序生成实例图像。

知道如何实现这一目标吗?

4

0 回答 0