Google Cloud Resource Manager API:测试IAM权限



我正在尝试使用Google Cloud Resource Manager API来测试身份验证的用户是否对给定项目具有权限。我已经阅读了[Google Cloud Resource Manager API文档] [1],并尝试发送请求,所有这些都失败了以下错误:

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

发布请求是:

https://cloudresourcemanager.googleapis.com/v1/projects/{projectid}:testiampermissions

其中{ProjectID}是Google Cloud Developer Console的定义ProjectID。我知道我可以使用project.list方法,并确定给定的ProjectID是否存在于用户的项目列表中。我想了解如何使用项目。Testiampermissions请求,并确定用户对项目的哪些许可。[1]:https://cloud.google.com/Resource-manager/Reference/Rest/v1/projects/testiampermissions

为了使用云资源管理器 api方法 aberiations.testiampermissions >或 projects.testiampermissions 您需要提供要在URL中检查的资源,然后提供您要在体内检查的权限。

因此,例如,如果我想测试身份验证的用户是否可以访问特定项目(例如my-project)(ex。CC_2),那么我会 post 此:

{
 "permissions": [
  "compute.instances.create"
 ]
}

url

https://cloudresourcemanager.googleapis.com/v1/projects/my-project:testIamPermissions

这会给我以下答复:

{
 "permissions": [
  "compute.instances.create"
 ]
}

因为我实际上确实具有在my-project中创建新实例的权限。但是,如果我没有创建新实例的权限,则响应看起来像:

{
}

通过API Explorer在这里尝试。

如果您的目标是查找用户在项目中拥有的所有权限的测试,则您必须提供请求正文中所有项目级别权限的完整列表,并且响应将包括这些权限的子集用户有。

希望这会有所帮助!

最新更新