我正在尝试使用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在这里尝试。
如果您的目标是查找用户在项目中拥有的所有权限的测试,则您必须提供请求正文中所有项目级别权限的完整列表,并且响应将包括这些权限的子集用户有。
希望这会有所帮助!