gcloud auth激活服务帐户--key文件和GOOGLE_APPLICATION_CREDENTIALS之间的区别

时间:2018-09-17 22:48:37

标签: google-cloud-platform google-cloud-storage apache-beam

我正在创建一个Shell脚本来处理某些工作流程的自动化, 该工作流程包括通过Apache Beam GCP访问Google Bucket。 我的服务帐户使用的是.json文件,在这种情况下我需要使用:

 gcloud auth activate-service-account --key-file myfile.json

vs

export GOOGLE_APPLICATION_CREDENTIALS=myfile.json

1 个答案:

答案 0 :(得分:5)

取决于您在做什么:

  • 使用其第三方SDK库之一(例如Go,Python)与Google Cloud服务接口?使用GOOGLE_APPLICATION_CREDENTIALS环境变量。

  • 要调用Google提供的工具,例如gcloudgsutil?使用该工具提供的机制对远程服务进行身份验证。对于gcloud,这是gcloud auth activate-service-account命令。


GOOGLE_APPLICATION_CREDENTIALS环境变量为用户编写的使用Google Cloud SDK的应用程序提供了一种机制,可以在环境中无法访问凭据的情况下轻松导入凭据。这些凭据将根据ADC docs中定义的优先级顺序进行加载。

Google提供的其他应用程序具有自己完善的机制,可用于导入凭据以向Google进行身份验证。在使用这些应用程序的地方应使用此机制。对于常用工具:

  • gcloud:使用gcloud auth activate-service-account。请注意,此may litter your disk with authentication credentials仍然存在,因此出于安全原因,您可能希望配置环境以确保使用后将其删除。
  • gsutil:如果独立运行,请使用gsutil config -e设置服务帐户。但是,大多数安装将与Google Cloud SDK中的gcloud工具一起使用,因此应使用上述针对gcloud的方法。