我正在创建一个shell脚本来处理我们的一些工作流程的自动化。此工作流程包括通过Apache Beam GCP访问Google Buckets。我在我的服务帐户中使用.json文件,在这种情况下我需要使用:
gcloud auth activate-service-account --key-file myfile.json
VS
export GOOGLE_APPLICATION_CREDENTIALS=myfile.json
取决于你在做什么:
GOOGLE_APPLICATION_CREDENTIALS
环境变量。gcloud
或gsutil
?使用工具提供的机制对远程服务进行身份验证。对于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
方法。