gcloud auth activate-service-account --key-file和GOOGLE_APPLICATION_CREDENTIALS之间的区别

问题描述 投票:2回答:1

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

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

VS

export GOOGLE_APPLICATION_CREDENTIALS=myfile.json
google-cloud-platform google-cloud-storage apache-beam
1个回答
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方法。
© www.soinside.com 2019 - 2024. All rights reserved.