Como 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, verifique se você tem:

  • criou um projeto do Google Cloud Platform em que você tem o papel Editor ou Proprietário. Após a implantação inicial, conceda o papel mais restritivo Editor de configuração do serviço a um usuário, grupo ou conta de serviço.

  • preparou o SDK do Cloud conforme descrito abaixo.

  • ativou os serviços necessários do Google conforme descrito abaixo;

  • Configure a conta de serviço usada para criar configurações de API, conforme descrito abaixo.

Como preparar o SDK do Cloud para implantação

Para preparar gcloud para a implantação:

  1. Instale e inicialize o Cloud SDK.
  2. Atualize o Cloud SDK:
    gcloud components update
  3. Verifique se o SDK do Cloud tem autorização para acessar seus dados e serviços:
    gcloud auth login

    Uma nova guia do navegador será aberta e você precisará escolher uma conta.

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

Como ativar serviços obrigatórios

A API Gateway requer a ativação dos seguintes serviços do Google:

Nome Nome
apigateway.googleapis.com API Gateway
servicemanagement.googleapis.com Service Management API
servicecontrol.googleapis.com API Service Control

Para confirmar que os serviços obrigatórios estão ativados:

gcloud services list

Se você não encontrar 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 do gcloud, consulte serviços gcloud.

Como configurar uma conta de serviço

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.

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 \
  --member user:USER_EMAIL \
  --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. Por exemplo, se o back-end for implementado como uma Função do Cloud, a conta de serviço precisará ter pelo menos o papel de Chamador do Cloud Functions. Para um back-end do Cloud Run, o papel é Chamador do Cloud Run. 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 --project=PROJECT_ID \
  --backend-auth-service-account=SERVICE_ACCOUNT_EMAIL

Consulte Como criar uma API para mais informações sobre como criar configurações de API.

Como usar uma conta de serviço padrão

Alguns produtos do GCP 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 --project=PROJECT_ID

Para mais informações, consulte Como usar a conta de serviço padrão do Compute Engine.

Como 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 Functions, o Cloud Run e o Identity-Aware Proxy (IAP) fornecem essa opção.

A seguir