Google Cloud Storage API:无法生成访问令牌,访问被拒绝
Google Cloud Storage API: can't generate access token, access denied
我是 Google API 的新手,几天来我一直在尝试使用服务帐户将内容上传到 Google 云存储桶。我能够完成此操作,但只能使用从 Google API 游乐场获得的临时访问令牌,并且我需要能够获取新的访问令牌,以便服务帐户始终可以上传内容。
我一直在尝试以下方法,但我一直被拒绝访问,即使相关帐户具有 'owner' 权限。
curl -X POST / -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ -d @Documents/request.json \ https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/content-uploader@kol-hatorah-kulah.iam.gserviceaccount.com:generateAccessToken
回复:
{ "error": { "code": 403, "message": "The caller does not have permission", "status": "PERMISSION_DENIED" } }
当我 运行 gcloud config list
得到正确的项目时,该帐户是我的工作电子邮件,它也在 Google Cloud 作为所有者。
提前致谢!
您的 curl
命令正在尝试使用服务帐户身份生成访问令牌。命令失败,因为您没有权限。
将角色 roles/iam.serviceAccountTokenCreator 添加到身份 运行 命令中。
DISCLAIMER - my solution works for Workload Identity Federation
related problems.
这个错误我费了好大劲,但终于找到了!
对我来说这是错误的属性映射。
我正在学习一些教程(可能已经过时)并且映射与官方 github 动作任务文档不同(here)
我有 repository_owner
和 aud
。将其更改为 repository
并且...
有效!
所以如果你是因为同样的教程来到这里......你已经得到了服务!
我是 Google API 的新手,几天来我一直在尝试使用服务帐户将内容上传到 Google 云存储桶。我能够完成此操作,但只能使用从 Google API 游乐场获得的临时访问令牌,并且我需要能够获取新的访问令牌,以便服务帐户始终可以上传内容。
我一直在尝试以下方法,但我一直被拒绝访问,即使相关帐户具有 'owner' 权限。
curl -X POST / -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ -d @Documents/request.json \ https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/content-uploader@kol-hatorah-kulah.iam.gserviceaccount.com:generateAccessToken
回复:
{ "error": { "code": 403, "message": "The caller does not have permission", "status": "PERMISSION_DENIED" } }
当我 运行 gcloud config list
得到正确的项目时,该帐户是我的工作电子邮件,它也在 Google Cloud 作为所有者。
提前致谢!
您的 curl
命令正在尝试使用服务帐户身份生成访问令牌。命令失败,因为您没有权限。
将角色 roles/iam.serviceAccountTokenCreator 添加到身份 运行 命令中。
DISCLAIMER - my solution works for Workload Identity Federation related problems.
这个错误我费了好大劲,但终于找到了!
对我来说这是错误的属性映射。
我正在学习一些教程(可能已经过时)并且映射与官方 github 动作任务文档不同(here)
我有 repository_owner
和 aud
。将其更改为 repository
并且...
有效!
所以如果你是因为同样的教程来到这里......你已经得到了服务!