如何设置在 GCP Appengine 上运行的 GOOGLE_APPLICATION_CREDENTIALS

2024-03-18

我正在使用 Windows 为我的 golang 项目运行本地应用程序引擎。 我正在得到googleapi: Error 403: Permission 'cloudkms.cryptoKeyVersions.useToEncrypt' denied on resource 'projects/xxxx/locations/xxxx/keyRings/xxx/cryptoKeys/xxx' (or it may not exist)., forbidden。然后我通过设置环境变量解决了GOOGLE_APPLICATION_CREDENTIALS值为服务帐户 xxxx.json。 然后部署在GCPappengine 它返回相同的错误googleapi: Error 403.....那么如何设置GOOGLE_APPLICATION_CREDENTIALS在 GCP 应用引擎中。


您遇到的问题是由在两个环境中进行开发/测试引起的:您的桌面和App Engine。这个问题很容易以干净、安全的方式解决。

在桌面上开发/测试时,请使用服务帐户。使用环境变量来指定服务帐户。

在 Windows 上:

set GOOGLE_APPLICATION_CREDENTIALS=c:\fullpath\serviceaccount.json

在 Linux 上:

export GOOGLE_APPLICATION_CREDENTIALS=/fullpath/serviceaccount.json

您可以在命令提示符处手动运行前面的命令,也可以将其放入启动脚本 (Linux) 或系统环境变量 (Windows) 中。

对于 App Engine,我不建议在您的应用程序中使用服务帐户文件。我也不建议设置环境变量。

Google 客户端库支持应用程序默认凭据 (ADC)。这意味着图书馆将尝试自动为您查找凭据。然后,客户端库可以使用该环境查找要在 Windows 上使用的服务帐户,并在部署时自动使用 App Engine 默认服务帐户。

Google Cloud 应用程序默认凭据 https://www.jhanley.com/google-cloud-application-default-credentials/]

通过在代码中包含 ADC,您可以在 Windows/Linux 上进行测试并部署到 App Engine,而无需修改代码,也不会面临在部署中包含服务帐户 JSON 文件的安全风险。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何设置在 GCP Appengine 上运行的 GOOGLE_APPLICATION_CREDENTIALS 的相关文章

随机推荐