Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google api Google云资源管理器API:测试IAM权限_Google Api_Google Cloud Platform_Google Cloud Console - Fatal编程技术网

Google api Google云资源管理器API:测试IAM权限

Google api Google云资源管理器API:测试IAM权限,google-api,google-cloud-platform,google-cloud-console,Google Api,Google Cloud Platform,Google Cloud Console,我正在尝试使用GoogleCloudResourceManagerAPI来测试经过身份验证的用户是否拥有对给定项目的权限。我已阅读并尝试发送请求,所有请求均失败,出现以下错误: {“错误”:{“代码”:400,“消息”:“请求包含无效参数。”,“状态”:“无效参数”} 该职位要求如下: {projectId}:作证许可 其中{projectId}是从Google Cloud Developer控制台定义的projectId。我知道我可以使用project.list方法,并确定用户的项目列表中是否

我正在尝试使用GoogleCloudResourceManagerAPI来测试经过身份验证的用户是否拥有对给定项目的权限。我已阅读并尝试发送请求,所有请求均失败,出现以下错误:

{“错误”:{“代码”:400,“消息”:“请求包含无效参数。”,“状态”:“无效参数”}

该职位要求如下:

{projectId}:作证许可


其中{projectId}是从Google Cloud Developer控制台定义的projectId。我知道我可以使用project.list方法,并确定用户的项目列表中是否存在给定的projectId。我想了解如何使用该项目。testIamPermissions请求并确定用户对该项目拥有的权限。

以便使用云资源管理器API方法组织。testIamPermissions项目。testIamPermissions,您需要在URL中提供要签入的资源,然后在正文中提供要签入的权限

因此,例如,如果我想测试我,经过身份验证的用户,是否有权访问特定项目(例如
我的项目
)上的特定权限(例如
compute.instances.create
),那么我将发布以下内容:

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

https://cloudresourcemanager.googleapis.com/v1/projects/my-project:testIamPermissions
这将给我以下答复:

{
 "permissions": [
  "compute.instances.create"
 ]
}
因为我确实拥有在
我的项目中创建新实例的权限。
但是,如果我没有创建新实例的权限,则响应如下:

{
}
通过API资源管理器进行尝试

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


希望这有帮助

您是否在相关的API资源管理器页面()上对其进行了测试?是的,这就是我运行所有测试的地方。在我了解如何通过API explorer调用API之前,我还没有编写一行代码。您是否转储了整个响应/异常?我猜它会包含一些有用的文本,比如“必须指定至少一个权限”。您是否提供了要测试的权限?是否已有解决方案?我在使用deployment manager时收到了相同的错误消息,请看,如果缺少对资源ID语法的解释,缺少示例,并且错误消息只提供了“您写的是错误的”以外的详细信息,则很难从API资源管理器中获得除HTTP 400以外的任何内容。我们如何提供资源,例如数据集?这里有一个页面看起来很有用,但到目前为止运气不佳。例如,对于BigQuery数据集,它应该是BigQuery.datasets.get,这是获取数据集的API调用。