Google Cloud Resource Manager API:测试IAM权限

时间:2016-12-01 19:45:27

标签: google-api google-cloud-platform google-cloud-console

我正在尝试使用Google Cloud Resource Manager API来测试经过身份验证的用户是否具有对给定项目的权限。我已阅读Google Cloud Resource Manager API documentation并已尝试发送请求,但所有失败都会出现以下错误:

{“error”:{“code”:400,“message”:“请求包含无效参数。”,“status”:“INVALID_ARGUMENT”}}

POST请求是:

https://cloudresourcemanager.googleapis.com/v1/projects/ {专案编号}:testIamPermissions

其中{projectId}是来自Google Cloud Developer Console的已定义projectId。我知道我可以使用project.list方法并确定给定的projectId是否存在于用户的项目列表中。我想了解如何使用project.testIamPermissions请求并确定用户对项目的权限。

1 个答案:

答案 0 :(得分:1)

要使用云资源管理器 API方法 organizations.testIamPermissions projects.testIamPermissions ,您需要提供资源''要检查URL,然后检查您要在正文中检查的权限。

因此,例如,如果我想测试经过身份验证的用户是否可以访问特定项目(例如compute.instances.create)上的特定权限(例如my-project),那么,我会 POST 这个:

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

网址

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

会给我以下回复:

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

因为我确实有权在my-project中创建新实例。 但是,如果我没有创建新实例的权限,则响应将如下所示:

{
}

通过API Explorer尝试here

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

希望这有帮助!