如何授予 GCP 云 运行 上的应用程序 运行 访问 gcp 服务的权限

How to give permission to applications running on GCP cloud run to access gcp services

我正在开发一个从 gcp 秘密管理器访问秘密的 nodejs 应用程序。我 运行 使用 GOOGLE_APPLICATION_CREDENTIALS 变量在本地使用定向凭据。

然后我尝试将此服务部署到 google 云 运行,现在它抛出错误

 Error: 7 PERMISSION_DENIED: Permission 'secretmanager.versions.access' denied

我想知道如何将凭据添加到云-运行 容器。我看到了一些将凭证文件包含在代码中的实现。从云 运行 容器访问 gcp 资源的最佳实践是什么?

您可能希望根据所需的秘密找到 a service account used by your Cloud Run, and grant that service account a relevant IAM role - 很可能是秘密管理员秘密访问者角色 (roles/secretmanager.secretAccessor).

您不需要任何凭据文件。在任何情况下,请不要在代码存储库中保留任何凭据。

======

已根据 @kolban 条评论

更新