gpt4 book ai didi

google-api - IAM 服务帐户 key 与 Google 凭证文件

转载 作者:行者123 更新时间:2023-12-01 23:43:12 28 4
gpt4 key购买 nike

我正在编写代码来生成和下载 Google Cloud 服务帐户的私钥。

使用 IAM API,我能够 create a service account ,然后我调用 generate a key似乎正在发挥作用。我按照IAM API create key page中的描述取回了服务帐户 key 。 ,就像

{ 
"privateKeyType": "TYPE_GOOGLE_CREDENTIALS_FILE",
"privateKeyData": "random-key-stringkajdkjakjfke", ...
}

我将此文件作为 JSON 响应下载,并尝试使用它进行身份验证:

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

不幸的是,我收到一条错误消息.json key 文件的格式无效。

当我浏览 Google Cloud Console 流程(IAM 和管理 -> 服务帐户 -> ... -> 创建 key -> 创建)时,我得到一个下载的 JSON 文件,如下所示

{
"type": "service_account",
"private_key": "----BEGIN-PRIVATE-KEY-----",
"auth_uri": "https://gaiastaging.corp.google.com/o/oauth2/auth",
}

此文件看起来与 IAM API 的响应完全不同。解释我的错误!不幸的是,这种格式似乎没有在任何地方进行描述。一些docs中简要提到了它。它是 Google 凭据文件吗?

我想获取 IAM 响应文件/JSON 并将其转换为第二个凭证文件。我尝试编写一些代码来转换它,但有一些字段如 "auth_provider_x509_cert_url" 我不理解。

也许转换文件也是错误的方法?更一般地说:

如何生成文件,然后使用它通过 gcloud 进行身份验证?

我应该如何描述/区分上述两个文件?为什么每种类型的文件都很有用?

最佳答案

关于这两个文件:

Google 凭据文件和服务帐户凭据文件是同一回事 - 它们都是我从 Google Cloud Console 页面下载的第二种类型的文件。它们没有很好的官方文档页面,但它们被引用了很多。可能还有应用程序默认凭据。

来自 IAM 创建调用的 JSON 响应 - 这只是对 API 调用的响应。除了使用应用程序代码解析它之外,它没有任何用处。

要生成 Google 凭据文件:

在 IAM 创建的 JSON 响应中,有一个字段 privateKeyData。该字段实际上包含整个 Google 凭据文件。它只是编码为 Base64 字符串。我刚刚从 HTML 下载了文件

<a href="data:attachment/json;base64;charset=utf-8,THAT-LONG-privateKeyData-base64-string-here" download="service-account-key.json">
Download key
</a>

或者,如果您只是想快速确认它包含所有信息,请将 base64 privateKeyData 字段复制粘贴到文件 google-credentials 中并对其进行解码(在 Linux 上) )与:

base64 -d google-credentials

然后我就可以运行了

gcloud auth activate-service-account --key-file=google-credentials.json

得到了

Activated service account credentials for: [service-account-id@project-id.iam.gserviceaccount.com]

关于google-api - IAM 服务帐户 key 与 Google 凭证文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44291205/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com