控制谁能启用您的 API

API 密钥与其创建时所在的 Google Cloud 项目相关联。如果您的 API 需要 API 密钥,则您必须向您的 API 用户提供密钥(该密钥源自您在其中创建 Cloud Endpoints 服务的项目),或者让用户在各自的 Google Cloud 项目中启用您的 API 并创建 API 密钥。本页面介绍如何授予用户启用 API 所需的权限。

授予访问权限

Endpoints 使用 Identity and Access Management (IAM) Service Consumer 角色,令非 Google Cloud 项目成员能够在各自的 Google Cloud 项目中启用您的 API。本部分介绍如何使用 Google Cloud 控制台或 Google Cloud CLI 授予访问权限。

Google Cloud 控制台

  1. 在 Google Cloud 控制台中,前往项目的 Endpoints > Services 页面。

    转到“Endpoints 服务”页面

  2. 如果您有多个 API,请点击要授予其访问权限的 API 的名称。
  3. 如果权限侧边栏未打开,请点击显示权限面板
  4. 添加主账号字段中,输入要授予其访问权限的个人或 Google 群组的电子邮件地址。
  5. 选择角色下拉菜单中,选择 Service Management > 服务使用者
  6. 点击保存
  7. 根据需要添加更多成员并选择角色。
  8. 与您添加的用户或群组联系,告知他们可以在各自的 Google Cloud 项目中启用此 API。 如需了解如何在“API 和服务”中启用某项服务,请参阅在 Google Cloud 项目中启用 API

gcloud

  1. 打开 Cloud Shell;如果已安装 Google Cloud CLI,则打开终端窗口。
    • 如果要向个别用户授予访问权限,请调用以下内容:
      gcloud endpoints services add-iam-policy-binding [SERVICE-NAME] \
            --member='user:EMAIL-NAME@gmail.com' \
            --role='roles/servicemanagement.serviceConsumer'
    • 如果要向某个 Google 群组授予访问权限,请调用以下内容:
      gcloud endpoints services add-iam-policy-binding [SERVICE-NAME] \
            --member='group:GROUP-NAME@googlegroups.com' \
            --role='roles/servicemanagement.serviceConsumer'
  2. 与您添加的用户或群组联系,告知他们可以在各自的 Google Cloud 项目中启用此 API。如需了解如何在“API 和服务”中启用某项服务,请参阅在 Google Cloud 项目中启用 API

撤消访问权限

要撤消对 API 的访问权限,请从之前具有服务使用者角色的用户或群组中移除该角色。撤消某位用户的访问权限后,他们将无法启用您的 API。

本部分介绍如何使用 Google Cloud 控制台或 Google Cloud CLI 撤消访问权限。

Google Cloud 控制台

  1. 在 Google Cloud 控制台中,前往 Google Cloud 项目的 Endpoints > Services 页面。

    转到“Endpoints 服务”页面

  2. 如果您有多个 API,请点击要撤消其访问权限的 API 的名称。
  3. 如果权限侧边面板未打开,请点击 权限
  4. 点击该成员所属的角色卡片。
  5. 点击删除

gcloud

  • 如果要撤消个别用户的访问权限,请调用以下内容:
    gcloud endpoints services remove-iam-policy-binding [SERVICE-NAME] \
          --member='user:'EMAIL-NAME@gmail.com' --role='roles/servicemanagement.serviceConsumer'
  • 如果要撤消某 Google 群组的访问权限,请调用以下内容:
    gcloud endpoints services remove-iam-policy-binding [SERVICE-NAME] \
          --member='group:GROUP-NAME@googlegroups.com' \
          --role='roles/servicemanagement.serviceConsumer'

后续步骤