使用服务帐户进行身份验证时是否可以避免显式设置 project_id?

Som*_*ame 1 bash service-accounts google-cloud-platform gcloud

I'm trying to authenticate in a bash script and enable my service account and I have cred.json. Here is what I tried:

gcloud auth activate-service-account --key-file=/etc/gcp-cred.json
Run Code Online (Sandbox Code Playgroud)

The problem is that I have to set project explicitly:

gcloud config set project my_proj
Run Code Online (Sandbox Code Playgroud)

Which is kind of redundant because gcp-cred.json contains this project already as a field:

"project_id": "my_proj"
Run Code Online (Sandbox Code Playgroud)

Is there a way to avoid doing gcloud config set project explicitly and set it with gcp-cred.json?

Tho*_*ble 5

否 -gcloud验证时不会更改您的工作核心项目。

这里的技巧是验证和设置您的“默认”工作项目gcloud是单独的问题。您可以在不进行身份验证的情况下设置您的项目,并且您可以在不更改您的项目的情况下进行身份验证。

这里的逻辑源于这样一个事实,即一个身份可以访问许多项目。即使服务帐户驻留在特定项目中,它也很可能被授权访问任何其他项目。因此,该gcloud程序不会假设您希望您的服务帐户对哪个项目采取行动。

其次,一般你不必须设置默认的工作项目gcloud-您可以指定该项目是旗你的行动目标--project PROJECT_ID在此处查看该gcloud标志的文档。