我们可以使用gcloud登录创建credentials.json文件吗?需求是-用户应该使用个人帐户在迷你库和使用cred.json文件作为一个秘密在他们的集群。当前的设置-对于QA,我们有一个服务帐户密钥,它被作为秘密挂载在gke集群上。
发布于 2020-09-28 19:29:24
要访问google,您需要一个OAuth2 access_token,并且可以使用用户凭据(以及在gcloud auth login
之后)生成它。
因此,您可以使用参数中的访问令牌调用这个命令或直接调用API。
有卷曲的例子
curl -H "Authorization: Bearer $(gcloud auth print-access-token)"
编辑
如前所述,使用gcloud auth login
创建的用户凭据今天只能创建一个access_token。
访问令牌是访问Google (包括Google产品)所必需的。如果这是你的用例,你可以使用它。
但是,如果您需要一个id_token,例如访问私有云函数、运行私有云、IAP背后的App,则不能(如果您愿意的话,我没有直接对此进行修复)。
发布于 2020-10-07 11:26:03
基于最小特权原则,每个开发人员都应该有自己的专用GCP Service Account
()。
这样创建的帐户应该只分配必需的 角色。
您可以使用以下命令为该帐户生成密钥:
gcloud iam service-accounts keys create key.json \
--iam-account=${DEVELOPER_USERNAME}
key.json
<-是一个文件名,可以更改(例如:username-access-token.json
)
更多参考资料见正式文件:
使用上面的密钥,您可以与GCP API
进行通信。您将需要一个带有此访问令牌的Secret
安装到Pod
,以及一个Pod
中的env
变量,如下所示:
GOOGLE_APPLICATION_CREDENTIALS=${PATH_TO_MOUNTED_SECRET_WITH_ACCESS_TOKEN}
通过这样做,开发人员可以“看到”来自Secret
的访问令牌,但是除了角色绑定到他的gcp服务帐户允许他做的事情之外,什么都不能做。
您还可以有创建这样的用户帐户的统一过程。允许它使用的工具之一是Terraform。您可以在这里更多地了解将创建此类帐户和密钥的模块:
https://stackoverflow.com/questions/64103882
复制相似问题