使用 API 密钥

本页面介绍如何在 API Gateway 中使用 API 密钥。

API 密钥是一个简单的字符串,用于标识 Google Cloud 项目,以实现配额、结算和监控的目的。开发者在 Google Cloud 控制台中的项目中生成 API 密钥,并将该密钥作为查询参数或请求标头嵌入到对 API 的每次调用中。

如果您在 API 配置中指定 API 密钥要求,API Gateway 会使用 API 密钥查找关联的 Google Cloud 项目。除非 API 密钥是在您的 Google Cloud 项目或已启用 API 的其他 Google Cloud 项目中生成的,否则 API Gateway 将拒绝请求。

如需创建 API 密钥,或查看 Google Cloud 项目中已有的 API 密钥,请前往 API 和服务 > 凭据页面。

进入“凭据”页面

使用场景

要使用quotas之类的 API Gateway 功能,您可以传入 API 密钥,以便 API Gateway 可以识别与客户端应用关联的 Google Cloud 项目。

关于 API Gateway 的 API 密钥身份验证

如果您使用 API 密钥进行身份验证,则必须先为您的服务启用 API 密钥支持。

输入以下命令:

gcloud services enable MANAGED_SERVICE_NAME

MANAGED_SERVICE_NAME 指定您在部署 API 时创建的代管式服务的名称。您可以在控制台的 API 着陆页上的 API 的“托管式服务”列中找到此名称。或者,您也可以在使用 gcloud api-gateway apis describe 命令时在 Managed service 属性中找到此名称。

例如:

gcloud services enable my-api-a12bcd345e67f89g0h.apigateway.my-project.cloud.goog

限制 API 密钥

默认情况下,API 密钥不受限制。不受限制的密钥会带来安全方面的问题,因为任何人都可以随时随地使用此类密钥。我们建议您尽可能添加 API 限制。 API 限制用于指定可以使用 API 密钥调用哪些 API。生产应用使用的所有 API 密钥都应具有 API 限制。

如需添加 API 限制,请执行以下操作:

  1. 找到 API 配置中注明的 API 标题。在以下示例中,API 标题为 My Example Config

    # openapi.yaml
    swagger: '2.0'
    info:
      title: My Example Config
      description: Sample API on API Gateway
      version: 1.0.0
    ...
    
  2. 在 Google Cloud 控制台中,转到 API 和服务 > 凭据页面。

    进入“凭据”页面

  3. 选择您要用于 API 的 API 密钥的名称。

  4. 在 API 密钥详细信息页面的 API 限制部分中,点击限制密钥

  5. 从可用 API 下拉列表中选择您的 API 密钥将用于访问的 API。例如,如果使用上面的示例配置,请选择 My Example Config

  6. 点击保存

您的限制应该会立即生效。