GOOGLE_APPLICATION_CREDENTIALS内容不是文件路径

时间:2018-03-16 10:20:12

标签: google-cloud-platform

我正在使用gcp python API。

GOOGLE_APPLICATION_CREDENTIALS环境变量需要gcp帐户json密钥的路径。

是否有另一个变量可以接受该文件的内容而不是路径?这很方便。

2 个答案:

答案 0 :(得分:0)

我建议您不要依赖GOOGLE_APPLICATION_CREDENTIALS,而是使用客户端库从运行时环境中读取凭据。这极大地简化了密钥分发和管理以及安全性。

当您创建App Engine / GKE / GCE实例时,您可以控制将哪个服务帐户安装到相应实例的元数据服务器(它是create命令的选项)。默认情况下,客户端库将在那里查找凭据。有关元数据服务器的相关文档,请参阅this pagethis page。只需记住在创建环境时指定密钥,它将默认使用计算服务的服务帐户密钥。

对于localhost环境,您使用gcloud auth application-default login管理默认应用程序凭据。在localhost上使用服务帐户的正确方法不是下载密钥,而是授予您的用户"充当"服务帐户的权限。这样,您的用户始终只能自己进行身份验证,并且不必将服务帐户密钥分发给每个人。如果有人离开您的公司,他们唯一可以访问的秘密就是他们自己的用户。

请参阅文档中的this page以了解使用Python进行身份验证。

答案 1 :(得分:0)

没有其他变量可用于代替GOOGLE_APPLICATION_CREDENTIALS。大多数Google客户端代码使用GOOGLE_APPLICATION_CREDENTIALS环境变量来指定要打开的凭据JSON文件的路径。 this setup用于确定将应用程序代码部署到Google云端平台时要使用的相应服务帐户。

正如red888所建议的那样,或者使用gcp python API,你可以使用Python Client Library