Segue o passo a passo para criação de uma credencial para integrar a sua nuvem GCP ao Cloud8.
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” (se for usar a análise de custos pelo Cloud8);
– 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
Escolha um nome e criar. 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”.
Depois de criar, abra o arquivo .json e coloque o conteúdo no Cloud8 para realizarmos a sincronização.
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 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 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 se 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 Serice Account deste projeto, precisamos dos Roles: Viewer, Browser, BigQuery Data Viewer e BigQuery Job User.
No console GCP:
– clicar em “Billing”
– verifica “my billing account” – A URL seria https://console.cloud.google.com/billing?project=&folder=&organizationId= (com o ID do seu organizationID)
– 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=ORG_ID – tem que substituir pelos valores). Sugerimos usar o “Detailed Usage cost”
– no Cloud8 vamos precisar DataSet e do table name (gcp_billing_export_v1_BILLING_ACCOUNT_ID ou gcp_billing_export_resource_v1_BILLING_ACCOUNT_ID)