我正在使用一个房间,一个管理秘密的工具。
基本上,它使用来自指定服务的秘密填充环境并执行给定的命令。
例如: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 文件,进行身份验证,然后删除文件……我正在使用打包程序生成实例图像。
知道如何实现这一目标吗?