控制谁有权访问 API 是开发工作不可或缺的一部分。例如,在测试 API 时,您可能希望使用具备相应权限的服务账号来自动重新部署更新的 Cloud Endpoints 配置。默认情况下,只有项目所有者才能管理对 API 的访问权限。本页介绍了如何使用 Google Cloud 控制台或 Google Cloud CLI。
Endpoints 使用 身份和访问权限管理 角色可在 API 级别授予和撤消访问权限。您可以授予和撤消对用户、服务账号或 Google 群组的访问权限。
Google 群组是授予或撤销一组用户访问权限的一种便捷方式。您可以一次授予或撤消整个组的访问权限,而不是一次授予或撤消单个用户或服务账号的访问权限。您还可以轻松地向 Google 群组中添加成员以及从中移除成员,而不是为每一个成员授予或撤消 IAM 角色。
授予访问权限
Google Cloud 控制台
- 在 Google Cloud 控制台中,前往项目的 Endpoints > 服务页面。
- 如果您有多个 API,请点击 API 的名称。
- 如果权限侧边栏未打开,请点击 add 权限。
- 在添加成员框中,输入用户、服务账号或 Google 群组的电子邮件地址。
-
在选择角色下拉列表中,点击 Service Management,然后选择以下某一角色:
- Service Consumer:此角色包含供非项目成员在自己的项目中查看和启用 API 的权限。如果您已为 API 创建门户,则获授这一角色的 API 用户可以访问此门户。
- Service Controller:此角色包含在运行时期间调用 Service Infrastructure API 中
check
和report
方法的权限。 - Service Config Editor:此角色包含 Service Management 将 Endpoints 配置部署到现有服务所需的最低权限。
-
Service Management Administrator:此角色包含 Service Config Editor、Service Consumer 和 Service Controller 角色中的权限,以及通过使用
gcloud
或授予、更改和撤消对资源的访问权限中描述的编程方法来授予对该 API 的访问权限所需的权限。
如需了解此角色,请参阅 Service Management API 访问权限控制主题。尽管 Google Cloud 控制台允许您选择其他角色,但这些角色对管理您的 API 没有帮助。
- 如需将成员添加到指定的 IAM 角色,请点击添加。
- 根据需要添加更多成员并选择角色。
- Service Management 角色不允许用户访问 Endpoint > Google Cloud 控制台中的服务页面。如果您希望用户能够访问 Endpoints > 服务页面,则必须授予他们 Project Viewer 角色或具有更高权限的项目角色。如需了解详情,请参阅授予、更改和撤消对资源的访问权限。
gcloud
- 打开 Cloud Shell;如果已安装 Google Cloud CLI,则打开终端窗口。
- 输入适用的
gcloud
命令:- 如果您要向某个用户授予访问权限,请运行以下命令:
gcloud endpoints services add-iam-policy-binding [SERVICE-NAME] \ --member='user:[EMAIL-ADDRESS]' \ --role='[ROLE]'
对于 role,请指定以下某一 IAM 角色:
-
roles/servicemanagement.configEditor
:此角色包含 Service Management 将 Endpoints 配置部署到现有服务所需的最低权限。 -
roles/servicemanagement.admin
:此角色包含roles/servicemanagement.configEditor
、roles/servicemanagement.serviceConsumer
和roles/servicemanagement.serviceController
中的权限,以及通过使用gcloud
或授予、更改和撤消对资源的访问权限中描述的编程方法来授予对该 API 的访问权限所需的权限。
例如:
gcloud endpoints services add-iam-policy-binding example-service-name \ --member='user:example-user@gmail.com' \ --role='roles/servicemanagement.admin'
-
- 如果您要向某个服务账号授予访问权限,请运行以下命令:
gcloud endpoints services add-iam-policy-binding [SERVICE-NAME] \ --member='serviceAccount:[EMAIL-ADDRESS]' \ --role='[ROLE]'
例如:
gcloud endpoints services add-iam-policy-binding example-service-name \ --member='serviceAccount:example-service-account@example-project.iam.gserviceaccount.com' \ --role='roles/servicemanagement.configEditor'
- 如果您要向某个 Google 群组授予访问权限,请运行以下命令:
gcloud endpoints services add-iam-policy-binding [SERVICE-NAME] \ --member='group:[GROUP-NAME]@googlegroups.com' \ --role='[ROLE]'
例如:
gcloud endpoints services add-iam-policy-binding example-service-name \ --member='group:example-group@googlegroups.com' \ --role='roles/servicemanagement.configEditor'
- 如果您要向某个用户授予访问权限,请运行以下命令:
- Service Management 角色不允许用户访问 端点 >Google Cloud 控制台中的服务页面。如果您希望用户能够访问 Endpoints > 服务页面,则必须授予他们 Project Viewer 角色或具有更高权限的项目角色。如需了解详情,请参阅授予、更改和撤消对资源的访问权限。
撤消访问权限
如需撤消对 API 的访问权限,请从之前具有 IAM 角色的成员中移除该角色。
Google Cloud 控制台
- 在 Google Cloud 控制台中,前往项目的 Endpoints > Services 页面。
- 如果您有多个 API,请点击 API 的名称。
- 如果权限侧边栏未打开,请点击 add 权限。
- 找到要撤消其访问权限的成员。您可以点击适用的角色卡以查看成员列表,也可以在搜索成员框中输入名称或角色。
- 点击删除 delete。
- 如果您还想撤消用户对 Google Cloud 项目的访问权限,请参阅授予、更改和撤消对资源的访问权限了解详情。
gcloud
- 打开 Cloud Shell;如果您已安装 gcloud CLI,则 打开一个终端窗口。
- 输入适用的
gcloud
命令:- 如果要撤消某个用户的访问权限,请运行以下命令:
gcloud endpoints services remove-iam-policy-binding [SERVICE-NAME] \ --member='user:[EMAIL-ADDRESS]' \ --role='[ROLE-NAME]'
例如:
gcloud endpoints services remove-iam-policy-binding example-service-name \ --member='user:example-user@gmail.com' \ --role='roles/editor'
- 如果要撤消某个服务账号的访问权限,请运行以下命令:
gcloud endpoints services remove-iam-policy-binding [SERVICE-NAME] \ --member='serviceAccount:[EMAIL-ADDRESS]' \ --role='[ROLE-NAME]'
例如:
gcloud endpoints services remove-iam-policy-binding example-service-name \ --member='serviceAccount:example-service-account@example-project.iam.gserviceaccount.com' \ --role='roles/servicemanagement.configEditor'
- 如果要撤消某个 Google 群组的访问权限,请运行以下命令:
gcloud endpoints services remove-iam-policy-binding [SERVICE-NAME] \ --member='group:[GROUP-NAME]@googlegroups.com' \ --role='[ROLE-NAME]'
例如:
gcloud endpoints services remove-iam-policy-binding example-service-name \ --member='group:example-group@googlegroups.com' \ --role='roles/viewer'
- 如果要撤消某个用户的访问权限,请运行以下命令:
- 如果您还想撤消用户对 Google Cloud 项目的访问权限,请参阅授予、更改和撤消对资源的访问权限了解详情。
后续步骤
了解: