我们有一个使用Google Auth允许使用的Java应用。该应用需要连接到受IP限制限制的Google Cloud SQL数据库。
我们需要将Cloud SQL Socket Factory与Cloud SQL Proxy一起使用来访问数据库,这需要带有环境变量GOOGLE_APPLICATION_CREDENTIALS
的Application Default Credentials指向服务帐户凭据JSON文件。我不确定如何安全地存储此文件,将该文件放在用户的PC上显然是不安全的。
根据https://cloud.google.com/docs/authentication/production的最佳做法,它说
您可以使用指向应用程序源代码之外的凭据的环境变量,例如Cloud Key Management Service。
但这不会继续解释如何做。如何以仅授权的Google帐户可以访问的方式安全地,以KMS或其他方式存储此文件?
[您是正确的:使用服务帐户密钥文件不是一个好习惯,而且是安全漏洞(除了将其安全地存储在计算机上之外,还必须每90天旋转一次,您可以复制文件,然后通过电子邮件,甚至在git repo上公开提交!)
但是,对于使用云SQL代理,您只需使用自己的凭据即可。执行gcloud auth application-default login
。确保您的用户已在数据库上获得授权,仅此而已!
注意:启动云SQL代理时请确保不要使用参数-credential