Sza*_*cze 7 json service-accounts
我已经在这个问题上花费了几个小时,但似乎我无法激活服务帐户来在本地开发 App Engine 项目(如果我部署该项目,它可以很好地进行身份验证,因为凭据是作为 env 变量注入的)。
问题
我在 GC 平台上的 IAM 下创建了一个新的服务帐户。
服务帐户已正确创建我可以通过控制台和
在服务帐户下,我生成了一个新的 JSON 密钥 -> key.json
在控制台中,我使用了 gcloud auth activate-service-account --key file=key.json
{
"type": "service_account",
<br> "project_id": "[project id]",
<br> "private_key_id": "[private_key_id]",
<br> "private_key": "[private_key]",
<br> "client_email": "[name]",
<br> "client_id": "[clien id]",
<br> "auth_uri": "https://accounts.google.com/o/oauth2/auth",
<br> "token_uri": "https://accounts.google.com/o/oauth2/token",
<br> "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
<br> "client_x509_cert_url":
"https://www.googleapis.com/robot/v1/metadata/x509/[client_email]"
<br> }
Run Code Online (Sandbox Code Playgroud)
我收到错误消息ERROR: (gcloud.auth.activate-service-account) Failed to activate the given service account。请确保提供的密钥文件有效。
在尝试了我所能做的一切之后,我发现在文档中,服务帐户密钥确实具有不同的结构。https://cloud.google.com/iam/reference/rest/v1/projects.serviceAccounts.keys 但 我不知道为什么下载的密钥结构不好。
有人遇到过这个问题吗?任何解决方案?
我还没有找到任何关于此的优秀文档,但您肯定需要第一种类型的文件,并通过 Cloud Console 创建它应该可以工作。我相信它被称为 Google Credentials 文件。下载的 JSON 文件应类似于:
{
"type": "service_account",
"project_id": "project-id",
"private_key_id": "some_number",
"private_key": "-----BEGIN PRIVATE KEY-----\n....
=\n-----END PRIVATE KEY-----\n",
"client_email": "<api-name>api@project-id.iam.gserviceaccount.com",
"client_id": "...",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/...<api-name>api%40project-id.iam.gserviceaccount.com"
}
Run Code Online (Sandbox Code Playgroud)
您发布的第二个链接还将创建一个服务帐户密钥和一个 Google Credentials 文件,但它可能比您想要的更多(Google Credentials 文件在privateKeyData字段下编码。
希望能解释这些文件;祝你认证成功!我唯一的建议是,也许你拼错了命令?它应该是:
gcloud auth activate-service-account --key-file=key.json
Run Code Online (Sandbox Code Playgroud)
而你已经打字
gcloud auth activate-service-account --key file=key.json
Run Code Online (Sandbox Code Playgroud)
即,在 --key 后面有一个空格。如果您想通了,请告诉我们!
| 归档时间: |
|
| 查看次数: |
10859 次 |
| 最近记录: |