如何为服务帐号设置 Google Cloud 应用程序凭据

Jon*_*ny5 6 service-accounts google-cloud-platform gcloud google-cloud-iam

以下命令允许您设置默认凭据:

 gcloud auth application-default login
Run Code Online (Sandbox Code Playgroud)

它会打开一个窗口(除非您使用--no-launch-browser)并允许您连接您的帐户。它会创建一个包含您的凭据的本地 json 文件,当应用程序使用 Google Cloud SDK 时将获取该凭据。

但是,如果我想将应用程序凭据设置为服务帐户,如下所示:

 gcloud auth application-default login \
--impersonate-service-account=saname@project.iam.gserviceaccount.com
Run Code Online (Sandbox Code Playgroud)

这仍然允许我在浏览器中进行身份验证,但它似乎加载我的用户帐户的凭据,而不是服务帐户的凭据。

有办法实现这个目标吗?即,服务帐户设置为应用程序默认值,无需服务帐户文件。

注意:我确实有权冒充服务帐户

Daz*_*kin 2

gcloud auth application-default login使用活动|指定的用户帐户创建行为类似于服务帐户的本地 JSON 文件。

我认为——正确吗?-- 即使您的用户帐户被允许模拟 ServiceAccount,使用您的用户帐户作为 ADC 也不起作用。我不知道为什么会这样。

另一种方法是使用gcloud auth activate-service-account,但如您所知,您将需要拥有服务帐户的凭据,因为将使用这些凭据而不是application-default login.