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 a Google Cloud CLI 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 a Google Cloud CLI para implantação
Para preparar gcloud
para a implantação:
- Instale e inicialize a gcloud CLI.
- Atualize a gcloud CLI:
gcloud components update
- Verifique se a gcloud CLI está autorizada a 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_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 a função de Invocador do Cloud Functions.
- Para um back-end do Cloud Run, a conta de serviço precisa ter a função de Chamador do Cloud Run.
- Para um back-end do App Engine, siga as etapas em Como configurar o acesso ao IAP para conceder à conta de serviço associada ao gateway o papel de 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 --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 Run functions, o Cloud Run e o Identity Aware Proxy (IAP) oferecem essa opção.