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:
- Instale e inicialize a CLI gcloud.
- Atualize a CLI gcloud:
gcloud components update
- 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.
- 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.comgcloud services enable servicemanagement.googleapis.comgcloud 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.