Search
Close this search box.

Como criar uma credencial GCP para integrar ao Cloud8

Para utilizar sua conta Google Cloud (GCP) integrada à Plataforma Cloud8, você vai precisar fornecer uma credencial de acesso. Abaixo segue o passo a passo para criação de uma credencial para integrar a sua nuvem GCP ao Cloud8.

Integração básica #

Passo 1. Precisamos de um arquivo JSON que contenha a service account:

* IMPORTANTE: habilitar APIs em https://console.cloud.google.com/apis/dashboard – verifique o projeto e habilite as APIs para “Cloud Resource Manager API”, “Compute”, “Cloud SQL” e “Cloud Billing” (para utilizar o Cost Analytics);

  • Em Manage, habilitar;
  • Criar o Service Account:https://console.developers.google.com/iam-admin/serviceaccounts/project (se tiver mais um projeto, veja qual o GCP pegou por default!);
  • Create Service Account
  • Roles –> dependendo do tipo que ação que deseja que o Cloud8 execute – visualização e/ou backup, agendamentos para redução de custos, etc
  • Browser
  • Viewer
  • View Service Accounts
  • Compute Engine -> Compute Admin ou Compute Viewer;
  • Cloud SQL -> Cloud SQL Admin ou Cloud SQL Viewer;
  • Monitoring -> Monitoring Viewer – métricas;
  • BigQuery -> BigQuery Data Viewer e BigQuery Job User – análise de custos;
  • Kubernetes -> Kubernetes Engine Cluster Viewer;
  • Cloud Asset Viewer
  • Compute Recommender Viewer
  • Cloud Functions Viewer

Agora é só escolher um nome e concluir a criação. Após a criação, clique nos ‘3 pontinhos‘ bem à direita e crie uma nova chave JSON.


* Nota: se o projeto for membro de um “Organization”, ele deverá terá as mesmos roles que o Service Account, caso contrário receberá a mensagem “User is not Authorized”.

Passo 2. Depois de criar, abra o arquivo .json e coloque o conteúdo no Cloud8 para realizarmos a sincronização.

Avançado #

Suporte a export de dados do Cloud SQL para um bucket #

Se for utilizar o workflow de export de dados do Cloud SQL, é necessário liberar uma das permissões:

  • Role: “Cloud Storage Admin
  • No “Cloud Storage”, escolher o bucket e adicionar a ServiceAccount da instância “Cloud SQL” como Object Creator

Customização #

Caso queira configurar por permissão de API, pode-se gerar um arquivo YAML com o seguinte conteúdo:

title: Automation
description: ""
stage: "GA"
includedPermissions:
- cloudsql.instances.get
- cloudsql.instances.list
- cloudsql.instances.update --> CloudSQL nao tem um setLabels infelizmente
- cloudsql.instances.restart
- cloudsql.instances.export
- compute.autoscalers.get
- compute.autoscalers.list
- compute.autoscalers.update
- compute.instances.start
- compute.instances.startWithEncryptionKey
- compute.instances.stop
- compute.instances.get
- compute.instances.list
- compute.addresses.list- compute.instances.setLabels
- compute.instanceGroupManagers.get
- compute.instanceGroupManagers.list
- compute.instanceGroupManagers.update
- compute.instanceGroupManagers.use
- compute.disks.list
- compute.disks.get
- compute.disks.createSnapshot
- compute.disks.setLabels
- compute.zones.get
- compute.zones.list
- compute.snapshots.list
- compute.snapshots.get
- compute.snapshots.setLabels
- monitoring.groups.get
- monitoring.groups.list
- monitoring.metricDescriptors.get
- monitoring.metricDescriptors.list
- monitoring.monitoredResourceDescriptors.get
- monitoring.monitoredResourceDescriptors.list
- monitoring.timeSeries.list
- resourcemanager.projects.get
- compute.regions.list
- cloudfunctions.functions.list
- resourcemanager.projects.getIamPolicy
- iam.serviceAccounts.get
- cloudasset.assets.searchAllResources
- recommender.computeInstanceIdleResourceRecommendations.list
- recommender.computeInstanceMachineTypeRecommendations.list
- cloudasset.assets.searchAllResources

E em seguida, fazer a criação da Service Account:

gcloud iam roles create cloudautomation --project <project_id> --file ./cloud8.yaml

gcloud projects add-iam-policy-binding <project_id> --role projects/<project_id>/roles/cloudautomation --member serviceAccount:<email>

Integração com custos #

* Importante: o Cloud8 precisa do projeto que contém o BigQuery dos custos. No Service Account deste projeto, precisamos dos Roles: Viewer, Browser, BigQuery Data Viewer e BigQuery Job User.

No console GCP:

  • Clicar em “Billing
  • Verificar “my billing account” – A URL seria: 
    https://console.cloud.google.com/billing?project=&folder=&organizationId=SEU-ORGANIZATION-ID
  • Você deveria ver uma linha com o “Billing Account ID” e o número de projetos abaixo dele
  • Ao clicar no Billing Account ID ele te redireciona para o dashboard
  • Billing Export – verifica se BigQuery export está marcado
    https://console.cloud.google.com/billing/BILLING_ACCOUNT_ID/export/bigquery?organizationId=SEU-ORGANIZATION-ID
    * Sugerimos usar o “Detailed Usage cost
  • No Cloud8 vamos precisar de DataSet e do table name (gcp_billing_export_v1_BILLING_ACCOUNT_ID ou gcp_billing_export_resource_v1_BILLING_ACCOUNT_ID)

Permissão para a organização inteira

Entrar em IAM da Organização:

https://console.cloud.google.com/iam-admin/iam?organizationId=xxxxxx&supportedpurview=project

Clicar em Grant Access:

No “Add principal” colocar o Service Account “xpto@__project__.iam.gserviceaccount.com” que já gerou o JSON

Adicionar os Roles novamente:
Viewer
Browser
View Service Accounts
Compute Viewer;
Cloud SQL Viewer
Monitoring Viewer
BigQuery Data Viewer
BigQuery Job User
Kubernetes Engine Cluster Viewer;
Cloud Asset Viewer
Compute Recommender Viewer
Cloud Functions Viewer