我正在使用gcp python API。
GOOGLE_APPLICATION_CREDENTIALS环境变量需要gcp帐户json密钥的路径。
是否有另一个变量可以接受该文件的内容而不是路径?这很方便。
答案 0 :(得分:0)
我建议您不要依赖GOOGLE_APPLICATION_CREDENTIALS
,而是使用客户端库从运行时环境中读取凭据。这极大地简化了密钥分发和管理以及安全性。
当您创建App Engine / GKE / GCE实例时,您可以控制将哪个服务帐户安装到相应实例的元数据服务器(它是create
命令的选项)。默认情况下,客户端库将在那里查找凭据。有关元数据服务器的相关文档,请参阅this page和this 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