Ken*_*Ken 5 google-api google-cloud-console google-cloud-platform
我正在尝试使用 Google Cloud Resource Manager API 来测试经过身份验证的用户是否对给定项目具有权限。我已阅读Google Cloud Resource Manager API 文档并尝试发送请求,但所有请求均失败并显示以下错误:
{ "error": { "code": 400, "message": "Request contains an invalid argument.", "status": "INVALID_ARGUMENT" } }
POST 请求是:
https://cloudresourcemanager.googleapis.com/v1/projects/ {projectId}:testIamPermissions
其中 {projectId} 是 Google Cloud Developer Console 中定义的 projectId。我知道我可以使用 project.list 方法并确定给定的 projectId 是否存在于用户的项目列表中。我想了解如何使用 project.testIamPermissions 请求并确定用户对项目具有哪些权限。
为了使用Cloud Resource Manager API 方法organizations.testIamPermissions或projects.testIamPermissions,您需要提供要在URL 中签入的资源,然后提供要在正文中签入的权限。
因此,例如,如果我想测试我(经过身份验证的用户)是否有权访问特定compute.instances.create项目(例如)的特定权限(例如my-project),那么我会发布以下内容:
{
"permissions": [
"compute.instances.create"
]
}
Run Code Online (Sandbox Code Playgroud)
到网址:
https://cloudresourcemanager.googleapis.com/v1/projects/my-project:testIamPermissions
Run Code Online (Sandbox Code Playgroud)
这会给我以下回应:
{
"permissions": [
"compute.instances.create"
]
}
Run Code Online (Sandbox Code Playgroud)
因为我实际上有权在my-project. 但是,如果我没有创建新实例的权限,则响应将如下所示:
{
}
Run Code Online (Sandbox Code Playgroud)
通过 API Explorer在这里尝试一下。
如果您的目标是找到用户对项目拥有的所有权限的测试,那么您必须在请求正文中提供所有项目级别权限的完整列表,并且响应将包含用户拥有的这些权限的子集。
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
1652 次 |
| 最近记录: |