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:
- Instale e inicialize o Cloud SDK.
- Atualize o Cloud SDK:
gcloud components update
- 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.
- 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.comgcloud 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.