A Cloud8 é uma plataforma que centraliza e enriquece dados provenientes de múltiplas contas e múltiplos provedores de nuvem, facilitando a análise e visualização de dados tanto de forma isolada, quanto unificada. Para auxiliar nossos clientes a integrarem esses dados aos seus próprios sistemas de BI, relatórios personalizados ou painéis, oferecemos a possibilidade de exportação dos dados para contas de armazenamento dos principais provedores de nuvem.
Abaixo você vai encontrar os passos necessários para criar essa integração com Amazon AWS, Google GCP e Microsoft Azure. Pule diretamente para:
![]() Integração Cloud8 com AWS S3 Bucket | ![]() Integração Cloud8 com Azure Storage Account | ![]() Integração Cloud8 com GCP Cloud Storage |
Exportando dados da Cloud8 para um Cloud Storage Account (todos os provedores suportados)
Como fazer uma integração com AWS S3 Bucket? #
Abaixo está o passo-a-passo para integrar um S3 Bucket à sua conta Cloud8.
- Encontre no menu lateral a opção “Integrações“;
- Crie uma nova integração do Tipo “Bucket S3“;
- Indique o nome do Bucket S3 definido na AWS no campo “Bucket”;
- Configure o par de acesso, IAM Role ARN e External ID, fornecidos pela AWS. Essa credencial deve possuir permissões de gravar, ler, listar e remover arquivos no Bucket, conforme a policy descrita em Permissões necessárias no Bucket S3, logo abaixo;
- Preencha as demais informações e finalize em Gravar
- Essa integração funciona também no Melhores Práticas e em “Reports” – pode-se criar o relatório para ser exportado

Permissões necessárias no Bucket S3 #
A IAM Role informada na integração precisa de permissão para gravar, ler, listar e remover arquivos no Bucket de destino. A permissão é concedida na IAM Role, e não no Bucket: é a mesma role usada na conexão do provider AWS com a Cloud8.
Para anexar a policy à role, no Console da AWS:
- Acesse IAM → Roles e localize a role usada pela Cloud8;
- Na aba Permissions, clique em Add permissions → Create inline policy;
- Selecione o editor JSON, apague o conteúdo existente e cole a policy abaixo, substituindo
NOME-DO-BUCKETpelo nome do seu Bucket S3; - Clique em Next, defina um nome para a policy (ex.:
cloud8-export-s3) e finalize em Create policy.
Se preferir reaproveitar a mesma policy em outras roles, crie-a em IAM → Policies → Create policy e depois anexe-a à role.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:DeleteObjectVersion",
"s3:PutObject",
"s3:DeleteObject",
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::NOME-DO-BUCKET/*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::NOME-DO-BUCKET"
]
}
]
}
Atenção: os dois blocos têm Resources diferentes de propósito. As ações sobre arquivos (PutObject, GetObject, DeleteObject, DeleteObjectVersion) valem para os objetos dentro do Bucket, por isso o /* no final. Já o ListBucket vale para o Bucket em si, sem o /*.
Ao clicar em Gravar, a Cloud8 grava um arquivo de teste no Bucket para validar o acesso. Se a policy não estiver anexada à role, a integração não é salva e aparece o erro “is not authorized to perform: s3:PutObject […] because no identity-based policy allows the s3:PutObject action”.
Modelo opcional: leitura de todos os Buckets #
Caso você já queira conceder à Cloud8 leitura de todos os Buckets da conta, aproveitando a mesma role para outras funcionalidades e configurações da plataforma, utilize o modelo abaixo no lugar da policy anterior. Ele mantém a gravação e a remoção de arquivos restritas ao Bucket de exportação e libera apenas leitura nos demais. Substitua NOME-DO-BUCKET pelo nome do Bucket de exportação:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ListarBuckets",
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets"
],
"Resource": "*"
},
{
"Sid": "LerTodosOsBuckets",
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource": "arn:aws:s3:::*"
},
{
"Sid": "LerArquivosDeTodosOsBuckets",
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": "arn:aws:s3:::*/*"
},
{
"Sid": "GravarNoBucketDeExportacao",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:DeleteObject",
"s3:DeleteObjectVersion"
],
"Resource": "arn:aws:s3:::NOME-DO-BUCKET/*"
}
]
}
Atenção: com esse modelo, a role passa a ler o conteúdo de todos os Buckets da conta, inclusive os que não têm relação com a Cloud8. Avalie se isso está de acordo com a política de segurança da sua empresa antes de aplicá-lo. Se o objetivo for apenas a exportação de dados, a policy anterior é suficiente.
IAM Role #
Uma IAM Role é uma entidade no AWS IAM que define um conjunto de permissões para fazer solicitações aos serviços da AWS. Ao contrário de um usuário IAM, que é associado a uma pessoa, uma função IAM é destinada a ser assumida por qualquer entidade confiável, como um serviço AWS, um aplicativo, ou um usuário IAM. As funções são úteis para conceder permissões temporárias e podem ser assumidas por diferentes entidades conforme necessário.
ARN (Amazon Resource Name) #
O ARN é um identificador que segue um formato padrão e único para identificar recursos dentro da AWS. Ele é usado para especificar a função de maneira única em políticas e permissões.
Exemplo de Role ARN #
arn:aws:iam::ID-NUMERICO-AWS:role/NOME-DO-ROLE
Uso de IAM Role ARN em S3 #
Quando você usa uma IAM Role com o S3, pode conceder permissões específicas para acessar buckets e objetos S3. Por exemplo, você pode criar uma função IAM com permissões para acessar um bucket S3 específico e depois configurar um serviço AWS (como EC2) ou um usuário IAM para assumir essa função. Isso é útil para gerenciar e controlar o acesso aos recursos S3 de forma segura e escalável.
Por que usar IAM Role ARN? #
- Segurança: Permite conceder permissões temporárias, minimizando riscos.
- Flexibilidade: Pode ser assumida por várias entidades, facilitando a gestão de permissões.
- Escalabilidade: Ideal para grandes ambientes onde diferentes serviços e usuários precisam de acesso controlado.
Como fazer uma integração com Azure Storage Account? #
Caso você ainda não o tenha feito, o primeiro passo é criar uma Storage Account na Azure. Para isso, na barra de pesquisa do painel Azure, busque por “Storage accounts”. Clique em “Create”. Na aba Basics, preencha as informações, defina a Subscription e Resource Group onde a conta de armazenamento será criada.
Defina um nome e região para criação do recurso, e em “Preferred storage type” escolha “Azure Blob Storage or Azure Data Lake Storage”.
Em Performance, selecione “Standard”, e em Redundancy selecione “Locally-redundant storage (LRS)”. Entretanto, trata-se de uma sugestão, e a definição da redundância deverá sempre acompanhar as regras de negócio do usuário.

Conclua clicando em “Review + create”. Valide os dados e clique em “Create”.

Pesquise pelo storage account criado. No menu lateral esquerdo, pesquise por “Containers”. Clique em “Add container”, defina um nome e clique em “Create”. Anote o nome do container criado.

No menu lateral esquerdo localize “Access keys”. Copie para um bloco de notas as seguintes informações:
- Storage account name
- Key

Integrando o Storage Account com a Plataforma Cloud8 #
Siga os passos abaixo para criar uma integração dentro de nosso Painel MultiCloud com o Azure Storage Account.
- Encontre no menu lateral a opção “Integrações“
- Selecione “Nova Integração” na primeira opção
- Clique em “Tipo” e selecione a opção “Azure Storage Account“
- Dê um nome para essa integração
- Preencha os dados necessários: Storage Account Name, Storage Account Key e Container

Como fazer uma integração com GCP Cloud Storage? #
Caso ainda não tenha feito, primeiro você precisa criar o GCP JSON no Service Account. Para isso, acesse o Console da GCP e pesquise por IAM & Admin. Selecione Service Accounts no menu lateral esquerdo.

Na aba Permissions, selecione Manage access | Add another role e escolha Storage Object Admin.

Retorne para Service Accounts, e clique no ícone de três pontos para selecionar a opção Manage Keys. Clique em Add key | Create new key para criar uma nova chave de acesso, caso não a tenha criado ainda. Do contrário, basta a concessão dos acessos necessários na etapa anterior.

Veja abaixo como integrar um GCP Cloud Storage à sua conta Cloud8.
- Encontre no menu lateral a opção “Integrações“;
- Crie uma nova integração do Tipo “GCP Cloud Storage“
- Adicione uma credencial (arquivo JSON de um Service Account) gerada na Access Key;
- Clique em “Gravar” e está pronto.

Como fazer uma integração com o Google Drive? #
Inicialmente, é necessário habilitar a API do Google Drive dentro do projeto onde a Service Account tenha sido criada, através do link: https://console.cloud.google.com/apis/api/drive.googleapis.com/metrics?project=xxxxxx

Também será necessário um arquivo JSON que contenha a service account. Para isso, no console da Google, em Service Accounts, selecione a service account criada e na aba Keys, clique em Add Key, e em seguida Create new key. A Service Account não precisa de nenhuma role no projeto: o acesso ao Google Drive é concedido diretamente no Shared Drive, adicionando o e-mail dela como membro (veja abaixo).

Selecione JSON, logo após clique em Create. Uma Private Key será gerada automaticamente.

Em seguida, é necessário criar um Shared Drive através do link https://drive.google.com/drive/shared-drives. Clique em Create a shared drive.
NOTA: Shared Drives só existem em contas do Google Workspace (contas de trabalho ou escola) cuja edição inclua o recurso; contas pessoais gratuitas (@gmail.com) não têm acesso. Mesmo no Workspace, o administrador da organização pode restringir quem pode criar Shared Drives.
Se a opção Create a shared drive não aparecer, peça ao administrador do Google Workspace para criar o Shared Drive ou liberar a criação para o seu usuário. Veja Criar um drive compartilhado e Permitir que os usuários criem drives compartilhados.

Defina um nome e clique em Create.

Anote o Shared Drive Folder ID, que pode ser obtido na própria URL do Shared Drive. Por exemplo:
URL de exemplo: https://drive.google.com/drive/folders/1AbCdEfGhIjKlMnOpQrStUv
Folder ID
1AbCdEfGhIjKlMnOpQrStUv
O ID é a sequência de caracteres depois de /folders/. Em seguida, clique em Manage Members e selecione o e-mail da Service Account e clique em Done.
Veja abaixo como integrar um GCP Cloud Storage à sua conta Cloud8.
- Encontre no menu lateral a opção “Integration“;
- Crie uma nova integração do Tipo “Google Drive“
- Defina um Name para integração;
- Adicione o Shared Drive folder ID;
- Adicione o Service account JSON
- Clique em Save e está pronto.

NOTA: A exportação para o Google Drive é feita sempre que houver dados novos de custos, de 2 a 3 vezes por dia. O nome definido em Exported file name, ao salvar o Dashboard, determina se o arquivo é sobrescrito ou se um novo é criado:
| Nome do arquivo | Comportamento |
|---|---|
custos.csv (nome fixo) | Sobrescreve o mesmo arquivo a cada exportação |
custos-YYYYMM.csv | Um arquivo por mês: atualiza somente o arquivo do mês processado |
custos-YYYYMMDDHHMMSS.csv | Cria sempre um arquivo novo a cada exportação |
Como exportar dados do Dashboards para um Storage Cloud #
Os clientes Cloud8 muitas vezes possuem relatórios em diferentes formatos que precisam ser alimentados com os dados disponíveis em nossos reports. A forma mais simples de fazer isso é através de uma integração com um Storage Cloud. Veja abaixo como fazer essa extração em passos rápidos.
NOTA: No exemplo foi utilizado bucket S3 da AWS, mas o processo é igual para todos os providers suportados.

- Clique em “FinOps – Reports“, em seguida em “Dashboards” ;
- Selecione os filtros desejados;
- Utilize o botão “Meus Dashboards” e selecione “Salvar Novo”;
- Dentro das opções exibidas, selecione a integração criada no passo anterior em Storages, para o provider escolhido
- Não esqueça de salvar


Após esses dois passos simples, o cliente receberá um arquivo completo e consistente em formato CSV, com o markup definido por ele, de 2 a 3 vezes por dia contendo todos os dados.
Dessa forma não é necessária nenhuma integração por API, geração de credenciais, scripts, tratativas de erro, etc.
Melhores Práticas #
Em “Relatórios” você pode exportar todos os dados em formato JSON. Se escolher “Imediatamente“, iremos exportar sempre que um novo item entrar ou sair na regra. Dentro do JSON, encontra-se um “identifier” que pode ser usado na conciliação de um item que abriu e depois foi fechado (seja por que mudou a regra ou o cliente / parceiro consertou e assim pode usado para fechar automaticamente).
Inventário #
Para exportação de dados de Inventário, contate o Suporte para configurarmos internamente.


