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 de 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

Para confirmar que os serviços necessários estão ativados:

gcloud services list

Se não vir os serviços necessários listados, ative-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 os 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 do Cloud Functions, a conta de serviço tem de ter atribuída a função de Invoker do Cloud Functions.
  • Para um back-end do Cloud Run, tem de ser atribuída à conta de serviço a função de Cloud Run Invoker.
  • 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 --project=PROJECT_ID \
  --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 --project=PROJECT_ID

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

Usar o OpenID Connect

Os pedidos do API Gateway 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?