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