3 回答
TA贡献1712条经验 获得超3个赞
您遇到的问题是由在两种环境中开发/测试引起的:您的桌面和 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 默认服务帐户。
通过在您的代码中包含 ADC,您可以在 Windows/Linux 上进行测试并部署到 App Engine,而无需修改您的代码,也没有在部署中包含服务帐户 JSON 文件的安全风险。
TA贡献1827条经验 获得超7个赞
您需要设置 IAM 权限才能使用加密功能。
您可以通过使用以下命令和您的服务帐户的详细信息来做到这一点:
gcloud kms keys add-iam-policy-binding \
golden-egg --location global --keyring golden-goose \
--member serviceAccount:my-service-account@my-project.iam.gserviceaccount.com \
--role roles/cloudkms.cryptoKeyEncrypterDecrypter
TA贡献1799条经验 获得超9个赞
- 3 回答
- 0 关注
- 123 浏览
添加回答
举报