如何从 GCP Golang SDK 检索访问令牌?
How to retrieve access-token from GCP Golang SDK?
我们正在为 GCP 实施一个应用程序,它需要 oauth2 不记名令牌来根据 GCR docker 进行身份验证。该应用程序是用 Go 编写的,它使用 Golang 的 GCP SDK。
我想从 SDK 中获得 gcloud auth print-access-token
提供的内容,但我不知道该怎么做...
您可能(!?)能够使用工作负载身份联合(也使用此库,从而避免使用 Google 服务帐户密钥)但是,使用服务帐户(与 roles/storage.objectAdmin
参见 GCR: Granting IAM roles) and Application Default Credentials (export GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/key.json
) look at DefaultTokenSource
。
Token returned by Token()
from TokenSource
给你一个 access_token
(和 refresh_token
和有效期)。
更新
您可以使用服务帐户密钥文件 directly 向 GCR 验证 Docker 客户端。这将简化您的代码(并避免刷新)。该文档重申了使用服务帐户密钥时的谨慎。
我们正在为 GCP 实施一个应用程序,它需要 oauth2 不记名令牌来根据 GCR docker 进行身份验证。该应用程序是用 Go 编写的,它使用 Golang 的 GCP SDK。
我想从 SDK 中获得 gcloud auth print-access-token
提供的内容,但我不知道该怎么做...
您可能(!?)能够使用工作负载身份联合(也使用此库,从而避免使用 Google 服务帐户密钥)但是,使用服务帐户(与 roles/storage.objectAdmin
参见 GCR: Granting IAM roles) and Application Default Credentials (export GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/key.json
) look at DefaultTokenSource
。
Token returned by Token()
from TokenSource
给你一个 access_token
(和 refresh_token
和有效期)。
更新
您可以使用服务帐户密钥文件 directly 向 GCR 验证 Docker 客户端。这将简化您的代码(并避免刷新)。该文档重申了使用服务帐户密钥时的谨慎。