控制谁能启用您的 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 Console 或 gcloud 命令行工具授予访问权限。

Cloud Console

  1. 在 Cloud Console 中,转到项目的 Endpoints > 服务页面。

    转到“Endpoints 服务”页面

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

gcloud

  1. 打开 Cloud Shell;如果已安装 Cloud SDK,则打开终端窗口。
    • 如果要向个别用户授予访问权限,请调用以下内容:
      
      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。

本部分介绍如何使用 Cloud Console 或 gcloud 命令行工具撤消访问权限。

Cloud Console

  1. 在 Cloud Console 中,转到 Google Cloud 项目的 Endpoints > 服务页面。

    转到“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'
    

后续步骤