Usar chaves da API

Esta página descreve como usar chaves da API no API Gateway.

Uma chave de API é uma string que identifica um Google Cloud projeto para fins de quota, faturação e monitorização. Os programadores geram uma chave da API num projeto na Google Cloud consola. Em seguida, incorporam essa chave em cada chamada à sua API como um parâmetro de consulta ou num cabeçalho de pedido.

Se especificar um requisito de chave de API na configuração da API, o API Gateway usa a chave de API para procurar o Google Cloud projeto associado. O API Gateway rejeita pedidos, a menos que a chave da API tenha sido gerada no seu Google Cloud projeto ou noutrosGoogle Cloud projetos nos quais a sua API tenha sido ativada.

Para criar uma chave da API ou ver as chaves da API já disponíveis no seu Google Cloud projeto, aceda à página APIs e serviços > Credenciais.

Aceder a Credenciais

Use uma chave da API

Para usar funcionalidades do API Gateway, como quotas, pode transmitir uma chave de API para que o API Gateway possa identificar o Google Cloud projeto ao qual a aplicação cliente está associada.

Configure a autenticação de chaves de API para o API Gateway

Para proteger o acesso ao seu gateway através de uma chave da API:

  1. Ative o suporte de chaves da API para o seu serviço. Introduza o seguinte comando, em que:
    • MANAGED_SERVICE_NAME especifica o nome do serviço gerido criado quando implementou a API. Pode ver esta propriedade de serviço gerido apresentada com o comando gcloud api-gateway apis describe.
    • PROJECT_ID especifica o nome do seu Google Cloud projeto.
    gcloud services enable MANAGED_SERVICE_NAME.apigateway.PROJECT_ID.cloud.goog
    Por exemplo:
    gcloud services enable my-api-123abc456def1.apigateway.my-project.cloud.goog
  2. Modifique a especificação OpenAPI usada para criar a configuração da API de modo a incluir instruções para aplicar uma política de segurança de validação de chaves da API a todo o tráfego. Adicione o tipo security e securityDefinitions ou securitySchemes, conforme mostrado:

    OpenAPI 2.0

      # openapi2-functions.yaml
      swagger: '2.0'
      info:
        title: API_ID optional-string
        description: Sample API on API Gateway with a Google Cloud Functions backend
        version: 1.0.0
      schemes:
        - https
      produces:
        - application/json
      paths:
        /hello:
          get:
            summary: Greet a user
            operationId: hello
            x-google-backend:
              address: https://GCP_REGION-PROJECT_ID.cloudfunctions.net/helloGET
            security:
            - api_key: []
            responses:
              '200':
                description: A successful response
                schema:
                  type: string
      securityDefinitions:
        # This section configures basic authentication with an API key.
        api_key:
          type: "apiKey"
          name: "key"
          in: "query"

    O securityDefinition configura a sua API para exigir uma chave de API transmitida como um parâmetro de consulta denominado key quando pede acesso a todos os caminhos definidos na especificação.

    OpenAPI 3.x

    # openapi-functions.yaml
    openapi: 3.0.4
    info:
      title: API_ID