Configurar o ambiente de programação

Este documento descreve como configurar o ambiente de desenvolvimento do API Gateway.

Pré-requisitos

Antes de poder criar uma API no API Gateway, certifique-se de que tem:

  • Criou um Google Cloud projeto no qual tem a função de Editor ou Proprietário. Após a implementação inicial, pode conceder a função Editor de configuração de serviços mais restritiva a um utilizador, um grupo ou uma conta de serviço.

  • Preparou a CLI do Google Cloud, conforme descrito abaixo.

  • Ativou os serviços Google necessários, conforme descrito abaixo.

  • Configure a conta de serviço usada para criar configurações da API, conforme descrito abaixo.

Preparar a CLI do Google Cloud para a implementação

Para preparar gcloud para a implementação:

  1. Instale e inicialize a CLI gcloud.
  2. Atualize a CLI gcloud:
    gcloud components update
  3. Certifique-se de que a CLI gcloud está autorizada a aceder aos seus dados e serviços:
    gcloud auth login

    É aberto um novo separador do navegador e é-lhe pedido que escolha uma conta.

  4. Defina o projeto predefinido. Substitua PROJECT_ID pelo ID do projeto do Google Cloud:
    gcloud config set project PROJECT_ID 

Ativar serviços necessários

O API Gateway requer que ative os seguintes serviços Google:

Nome Título
apigateway.googleapis.com API do API Gateway
servicemanagement.googleapis.com Service Management API
servicecontrol.googleapis.com Service Control API

Use os seguintes comandos para ativar estes serviços:

gcloud services enable apigateway.googleapis.com
gcloud services enable servicemanagement.googleapis.com
gcloud services enable servicecontrol.googleapis.com

Para mais informações sobre os serviços gcloud, consulte o artigo Serviços gcloud.

Configurar uma conta de serviço

Uma configuração da API implementada num gateway é executada com as autorizações associadas à conta de serviço do gateway.

Como prática recomendada, crie uma conta de serviço separada no mesmo projeto que está a usar para o API Gateway. Em seguida, atribua à conta de serviço apenas as autorizações necessárias para aceder ao serviço de back-end. Desta forma, limita as autorizações associadas à configuração da API.

Para o API Gateway, o utilizador que cria ou atualiza uma configuração de API ou um gateway requer a autorização iam.serviceAccounts.actAs no objeto da conta de serviço. Esta autorização está incluída na função Utilizador da conta de serviço.

A função e a autorização podem ser adicionadas à conta de serviço do utilizador com o seguinte comando:

gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \
  --member user:USER_EMAIL \
  --role roles/iam.serviceAccountUser

where:

  • SERVICE_ACCOUNT_EMAIL é o email da conta de serviço, no formato SA_NAME@PROJECT_ID.iam.gserviceaccount.com.
  • USER_EMAIL é o endereço de email do utilizador.

Por exemplo:

gcloud iam service-accounts add-iam-policy-binding my-service-account@my-project.iam.gserviceaccount.com \
  --member user:myemail@email.com \
  --role roles/iam.serviceAccountUser

Além disso, a conta de serviço da gateway requer as autorizações necessárias para aceder ao seu serviço de back-end. Por exemplo:

  • Para um back-end da Cloud Functions, tem de ser atribuída à conta de serviço a função de invocador da Cloud Functions.
  • Para um back-end do Cloud Run, tem de ser atribuída à conta de serviço a função de invocador do Cloud Run.
  • Para um back-end do App Engine, tem de seguir os passos em Configurar o acesso ao IAP para conceder à conta de serviço associada ao seu gateway a função de utilizador da app Web protegida pelo IAP.

Ao limitar as autorizações associadas à configuração da API, pode proteger melhor os seus sistemas de back-end. Para mais informações, consulte a documentação de gestão de identidade e de acesso (IAM).

Depois de criar a conta de serviço, use a opção --backend-auth-service-account para especificar o endereço de email dessa conta de serviço quando criar uma configuração da API:

gcloud api-gateway api-configs create CONFIG_ID \
  --api=API_ID --openapi-spec=API_DEFINITION \
  --backend-auth-service-account=SERVICE_ACCOUNT_EMAIL

Consulte o artigo Criar uma API para saber mais sobre a criação de configurações de API.

Usar uma conta de serviço predefinida

Alguns Google Cloud produtos definem uma conta de serviço predefinida. Por exemplo, se estiver a usar o Compute Engine e tiver ativado a API Compute Engine para o seu projeto, é criada uma conta de serviço do Compute Engine predefinida para si. A conta de serviço predefinida é identificável pelo respetivo endereço de email:

PROJECT_NUMBER-compute@developer.gserviceaccount.com

Se atribuir as autorizações necessárias à conta de serviço predefinida, pode omitir a opção --backend-auth-service-account ao criar uma configuração da API:

gcloud api-gateway api-configs create CONFIG_ID \
  --api=API_ID --openapi-spec=API_DEFINITION 

Consulte o artigo Usar a conta de serviço predefinida do Compute Engine para mais informações.

Usar o OpenID Connect

Os pedidos do Gateway da API para serviços de back-end podem usar a autenticação. Estes pedidos são protegidos através de tokens OpenID Connect (OIDC) assinados pela conta de serviço do gateway. Deve confirmar se o serviço de back-end está configurado corretamente para aceitar tokens OIDC para autenticação e autorização. As funções do Cloud Run, o Cloud Run e o Identity Aware Proxy (IAP) oferecem esta opção.

O que se segue?