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:
- 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 |
Use os seguintes comandos para ativar estes serviç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 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.