Warm tip: This article is reproduced from serverfault.com, please click

google cloud platform-使用gcloud重新验证服务帐户时会发生什么?

(google cloud platform - What happens when re-authenticating the service account with gcloud?)

发布于 2020-12-02 07:08:40

我听说,如果服务帐户具有较高的特权,但是访问范围受到限制,并且我们需要以某种方式对没有OAuth的服务进行身份验证,那么我们可以使用我们拥有的密钥对服务帐户进行重新身份验证(假设我们以某种方式获得了该密钥) )。

确实如此,重新验证服务帐户可以为我们提供云平台范围吗?

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

Questioner
AWS Learning
Viewed
0
John Hanley 2020-12-03 03:53:37

范围是OAuth权限机制。在开发IAM之前,Google Cloud首先以“ Scopes”作为许可方法。

除非你编写自己的授权代码,否则服务帐户不会以你管理的方式使用范围。服务帐户使用IAM角色进行权限控制。你可以在编写低级代码时指定作用域,但这不是必需的,也不建议这样做。

Google Compute Engine最初使用OAuth范围获取权限,但仍提供该功能。Compute Engine范围限制了分配给分配给Compute Engine的服务帐户的权限。范围不会向服务帐户添加权限。

对于以下命令”

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

如果你在台式机或Compute Engine上运行此命令,则会告诉CLI和使用SDK开发的工具使用指定​​的服务帐户进行授权。范围“云平台”在这里无关紧要。分配给服务帐户的IAM角色确定权限。你分配给实例的作用域不被该命令使用。作用域只会继续影响位于Compute Engine实例元数据中的凭据(原始凭据)。

概括:

范围是旧版授权机制。IAM是首选且必需的身份验证方法,这意味着你必须通过IAM角色设置权限。范围无法为你做到这一点。你可以将两者混合使用,但我不建议这样做。使用范围云平台并通过IAM角色控制授权。

范围为“云平台”且没有IAM角色的服务帐户没有权限。