Configurar o ambiente de desenvolvimento

Este documento descreve como configurar seu ambiente de desenvolvimento de gateway de API.

Pré-requisitos

Antes de criar uma API no gateway de API, faça o seguinte:

Preparar a Google Cloud CLI para implantação

Para preparar gcloud para a implantação:

  1. Instale e inicialize a gcloud CLI.
  2. Atualize a gcloud CLI:
    gcloud components update
  3. Verifique se a gcloud CLI está autorizada a acessar seus dados e serviços:
    gcloud auth login

    Uma nova guia do navegador será aberta. Escolha uma conta.

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

Ative os serviços necessários do Google

O gateway de API exige que você ative os seguintes serviços Google Cloud :

Nome Nome do serviço
API Gateway API apigateway.googleapis.com
Service Management API servicemanagement.googleapis.com
API Service Control servicecontrol.googleapis.com

Para ativar os serviços necessários:

Console do Google Cloud

  1. No console do Google Cloud , acesse a página APIs e serviços > Biblioteca de APIs.

    Acessar a biblioteca de APIs

  2. Na página Biblioteca de APIs, digite o nome da API necessária na barra de pesquisa.
  3. Nos resultados da pesquisa, selecione a página da API.
  4. Na página da API, clique em Ativar.
  5. Repita essas etapas para cada um dos serviços listados na tabela anterior.

CLI do Google Cloud

Use os comandos a seguir para ativar os 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 do gcloud, consulte serviços gcloud.

Configurar a conta de serviço usada para criar configurações de API

Uma configuração de API implantada em um gateway é executada com as permissões associadas à conta de serviço do gateway.

Como prática recomendada, crie uma conta de serviço separada no mesmo projeto usado para o gateway de API. Em seguida, atribua à conta de serviço apenas as permissões necessárias para acessar o serviço de back-end. Assim, você limita as permissões associadas à configuração da API.

Para o gateway de API, o usuário que cria ou atualiza uma configuração ou gateway de API requer a permissão iam.serviceAccounts.actAs no objeto da conta de serviço. Essa permissão está incluída no papel de Usuário da conta de serviço.

Para adicionar o papel e a permissão necessários à conta de serviço do gateway:

Console do Google Cloud

  1. No console Google Cloud , acesse a página IAM e administrador > Contas de serviço.

    Acesse as Contas de serviço

  2. Selecione o projeto necessário ou crie um novo.
  3. Clique na conta de serviço necessária.
  4. Clique na guia Permissões.
  5. Clique em Gerenciar acesso.
  6. Clique em Adicionar papel e atribua o papel Service Account User ao principal que vai referenciar a conta de serviço ao criar a configuração da API.
  7. Clique em Salvar.

CLI do Google Cloud

Adicione o papel e a permissão à conta de serviço do usuário com o seguinte comando:

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

em que:

  • SERVICE_ACCOUNT_EMAIL é o e-mail da conta de serviço, no formato SA_NAME@PROJECT_ID.iam.gserviceaccount.com.
  • USER_EMAIL é o endereço de e-mail do usuário.

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 do gateway requer as permissões necessárias para acessar o serviço de back-end. Exemplo:

  • Para um back-end do função do Cloud, a conta de serviço precisa ter o papel de Invocador do Cloud Functions.
  • Para um back-end do Cloud Run, a conta de serviço precisa receber o papel de Invocador do Cloud Run.
  • Para um back-end do App Engine, siga as etapas em Configurar o acesso ao IAP para conceder à conta de serviço associada ao gateway o papel Usuário do app da Web protegido pelo IAP.

Ao limitar as permissões associadas à configuração da API, você protege melhor seus sistemas de back-end. Para mais informações, consulte a documentação do Gerenciamento de identidade e acesso (IAM, na sigla em inglês).

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

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

Consulte Criar uma configuração de API para mais informações sobre como criar configurações de API.

Usar uma conta de serviço padrão

Alguns produtos do Google Cloud definem uma conta de serviço padrão. Por exemplo, se você estiver usando o Compute Engine e tiver ativado a API Compute Engine para o projeto, uma conta de serviço padrão do Compute Engine será criada. A conta de serviço padrão pode ser identificada pelo endereço de e-mail:

PROJECT_NUMBER-compute@developer.gserviceaccount.com

Se você atribuir as permissões necessárias à conta de serviço padrão, poderá omitir a opção --backend-auth-service-account ao criar uma configuração de API:

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

Para mais informações, consulte Conta de serviço padrão do Compute Engine.

Usar o OpenID Connect

As solicitações do gateway de API para serviços de back-end podem usar a autenticação. Essas solicitações são protegidas por meio de tokens do OpenID Connect (OIDC) assinados pela conta de serviço do gateway. Confirme se o serviço de back-end está configurado corretamente para aceitar tokens OIDC para autenticação e autorização. O Cloud Run functions, o Cloud Run e o Identity-Aware Proxy (IAP) fornecem essa opção.

A seguir