调用Google IAM generateAccessToken API始终会返回错误

我遇到的问题是我无法使用此method为Google IAM服务帐户生成访问令牌。 我已经使用以下个人OAuth2访问令牌: gcloud auth application-default print-access-token

我拥有所有必要的角色(roles/iam.serviceaccountTokenCreator),但是当我对API进行URL调用时,总是会收到错误响应:

{
  "error": {
    "code": 400,"message": "Request contains an invalid argument.","status": "INVALID_ARGUMENT"
  }
}

这是完全卷曲请求的样子:

curl -X POST --header 'Content-Type: application/json' --header 'authorization: Bearer ya29.AASDSADASDASDi9C1yAXXXXXXZzLtDDrCAzblqF_qi5sKvMZcHieBADASDASDTNJiOKrqJBffb4Moh3gTgiTbDgMIF1XDQU5JZ31aACs0aUbI4wgeqV2Q' https://iamcredentials.googleapis.com/v1/projects/<PROJECT_NAME>/serviceaccounts/<SA_NAME>@<PROJECT_NAME>.iam.gserviceaccount.com:generateaccessToken -d '{"scope": ["https://www.googleapis.com/auth/cloud-platform"]}'

谢谢

lijiaqi912 回答:调用Google IAM generateAccessToken API始终会返回错误

API调用中有两个问题。

  1. 服务帐户名称是路径参数,必须经过URL编码。 @字符无效。在其位置使用%40(作为正确编码的示例)。
  2. URI指定一个PROJECT_NAME。这是不正确的。您需要使用-(连字符/破折号)。示例projects/-/serviceAccounts

您还需要将权限iam.serviceAccounts.getAccessToken附加到分配给在此API请求中创建请求访问令牌的帐户的角色之一。如果不正确,这将导致另一个错误。进入下一步只是提示。

本文链接:https://www.f2er.com/2941450.html

大家都在问