管理访问权限政策

您可以为一个或多个连接测试设置或获取 Identity and Access Management (IAM) 政策或访问权限控制政策。此外,您可以查看用户或服务账号对特定连接测试具有的权限。

本文档展示了使用 Network Management API 的访问权限控制示例。如需在 Google Cloud Console 中或使用 gcloud 命令按照以下步骤操作,请参阅 IAM 方法指南

如需了解以下命令中列出的政策绑定和 ETag,请参阅 IAM 政策的 API 参考文档

如需了解运行 Connectivity Tests 所需的 IAM 角色和权限,请参阅角色和权限

设置访问权限控制政策

此过程用于为指定的连接测试资源设置访问权限控制政策。

API

使用 networkmanagement.connectivitytests.setIamPolicy 方法为 USERROLETEST_ID 设置访问权限控制政策。

以下示例设置了一个政策,该政策将 networkmanagement.admin 的角色绑定到 mytest-1username@yourcompany.com

 POST https: //networkmanagement.googleapis.com/v1/{resource=projects/*/locations/global/connectivityTests/TEST_ID}:setIamPolicy
   {
     "version": "VERSION",
     "etag": "ETAG",
     "bindings": [{
       "role": "ROLE",
       "members": [
         "PRINCIPAL"
       ]
     }]
   }

替换以下值:

  • TEST_ID:您正在运行的 Connectivity Tests 对象(测试)的 ID
  • VERSION:指定政策的格式;有效值为 013;任何会影响条件角色绑定的操作都必须指定版本 3
  • ETAG:用于乐观并发控制,可帮助防止同时对政策进行的更新相互覆盖(BwWbrqiZFRs=是一个 etag 示例)
  • ROLE:分配给主账号的角色(例如 roles/networkmanagement.admin
  • PRINCIPAL:指定请求访问 Google Cloud 资源的身份(例如 user:username@yourcompany.com);如需查看主账号或成员类型列表,请参阅 IAM 政策的 API 参考文档

获取访问权限控制政策

此流程可获取所指定连接测试资源的访问控制政策。

API

使用 networkmanagement.connectivitytests.getIamPolicy 方法为 PRINCIPALROLETEST_ID 设置访问权限控制政策。

以下示例获取一个政策,该政策将 networkmanagement.admin 的角色绑定到 mytest-1username@yourcompany.com

  GET https: //networkmanagement.googleapis.com/v1/{resource=projects/*/locations/global/connectivityTests/TEST_ID}:getIamPolicy
    {
      "version": "VERSION",
      "etag": "ETAG",
      "bindings": [{
        "role": "ROLE",
        "members": [
          "PRINCIPAL"
        ]
      }]
    }

替换以下值:

  • TEST_ID:您正在运行的 Connectivity Tests 对象(测试)的 ID
  • VERSION:指定政策的格式;有效值为 013;任何会影响条件角色绑定的操作都必须指定版本 3
  • ETAG:用于乐观并发控制,可帮助防止同时对政策进行的更新相互覆盖(BwWbrqiZFRs=是一个 etag 示例)
  • ROLE:分配给主账号的角色(例如 roles/networkmanagement.admin
  • PRINCIPAL:指定请求访问 Google Cloud 资源的身份(例如 user:username@yourcompany.com);如需查看主账号类型列表,请参阅 IAM 政策的 API 参考文档

测试 IAM 权限

此流程会返回用户或服务账号对连接测试资源拥有的权限。

API

使用 networkmanagement.connectivitytests.testIamPermissions 方法返回分配给 TEST_ID 的权限。

下面的示例验证 username@yourcompany.commytest-1拥有 networkmanagement.connectivitytests.get 权限。

  POST https://networkmanagement.googleapis.com/v1/{resource=projects/*/locations/global/connectivityTests/TEST_ID}:testIamPermissions
    {
      "permissions": [
        "networkmanagement.connectivitytests.get"
      ]
    }

TEST_ID 替换为您正在运行的连接测试对象(测试)的 ID。

后续步骤