Conectar AWS.
O GrandeTotal lê o custo diário e o detalhamento por serviço dos últimos 30 dias da sua conta AWS, via AWS Cost Explorer. O acesso é feito por uma role IAM que você cria e controla — sem chave de acesso de longa duração e sem nenhuma permissão de escrita.
O que é pedido
- Uma role IAM que confia na conta AWS do GrandeTotal, exigindo um External ID exclusivo da sua conexão.
- Uma política anexada a essa role com uma única ação:
ce:GetCostAndUsage.
ReadOnlyAccess, ViewOnlyAccess etc.) para "simplificar", não é necessário para o GrandeTotal funcionar.Passo a passo
1. Inicie a conexão no painel
Em /painel/conectar, clique em Conectar AWS. O painel gera um External ID exclusivo para essa conexão e mostra a conta AWS do GrandeTotal que precisa ser confiada — os dois valores aparecem na tela nesse momento, use exatamente o que for exibido ali.
2. Crie a role IAM na conta a conectar
No console AWS da conta que você quer conectar, vá em IAM → Roles → Create role → Custom trust policy e cole a política de confiança abaixo, substituindo os dois valores entre <> pelos que o painel mostrou:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<CONTA_AWS_DO_GRANDETOTAL>:root"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"sts:ExternalId": "<EXTERNAL_ID_MOSTRADO_NO_PAINEL>"
}
}
}
]
}3. Anexe a política de permissão
Crie e anexe uma política gerenciada só com esta ação, sem restrição de recurso (o Cost Explorer não é escopável por recurso):
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ce:GetCostAndUsage",
"Resource": "*"
}
]
}4. Nomeie, crie e copie o ARN
Dê um nome reconhecível à role (por exemplo, grandetotal-raiox), confirme a criação e copie o Role ARN (formato arn:aws:iam::123456789012:role/grandetotal-raiox).
arn:...:role/grandetotal-raiox) e a da política de permissão que você anexou no passo 3 (arn:...:policy/...). O painel só aceita o primeiro — colar o ARN da policy dá erro na verificação.5. Cole o ARN no painel e verifique
De volta em /painel/conectar, cole o ARN e clique em Verificar e conectar. O GrandeTotal tenta assumir a role naquele instante (sessão de 15 minutos, sem credencial permanente armazenada); se a política de confiança e o External ID baterem, a conexão fica conectada.
6. Sincronize
Use o botão de sincronizar no painel para buscar os últimos 30 dias. O GrandeTotal consulta o Cost Explorer na região us-east-1 (única região onde o serviço existe) e grava o total diário e o detalhamento por serviço, com a origem aws_cost_explorer e o instante em que os valores foram observados.
Opcional: recomendações e anomalias da AWS
O AWS FinOps Agent (agente de custo da própria AWS, em prévia) lê o Cost Optimization Hub e o Cost Anomaly Detection. O GrandeTotal pode ler essas duas fontes, só em leitura, na tela /painel/aws-finops. Para isso, acrescente esta declaração à política da role (a de custo continua igual) e ative o Cost Optimization Hub no console de Billing and Cost Management (gratuito):
{
"Effect": "Allow",
"Action": [
"ce:GetAnomalies",
"cost-optimization-hub:ListRecommendations",
"cost-optimization-hub:ListEnrollmentStatuses"
],
"Resource": "*"
}Cada leitura faz requisições ao Cost Explorer, cobradas pela AWS a US$ 0,01 na sua conta. O próprio AWS FinOps Agent não tem API: ele é usado pelo console da AWS, por um aplicativo web, e entrega relatórios no Slack e no Jira.
Opcional: custo por recurso e inventário
Na tela /painel/aws-custos o GrandeTotal mostra o custo por conta, região, tipo de uso e serviço (isso usa só ce:GetCostAndUsage, que a role já tem) e, para ir mais fundo, o custo por recurso e o inventário. Para esses dois, acrescente à política da role:
{
"Effect": "Allow",
"Action": [
"ce:GetCostAndUsageWithResources",
"ec2:DescribeRegions",
"ec2:DescribeInstances",
"ec2:DescribeVolumes",
"rds:DescribeDBInstances",
"lambda:ListFunctions",
"ecs:ListClusters",
"ecs:DescribeClusters",
"ec2:DescribeAddresses",
"s3:ListAllMyBuckets",
"ecr:DescribeRepositories"
],
"Resource": "*"
}O custo por recurso também exige ligar, no Cost Explorer, as preferências de dados no nível de recurso (a AWS leva até 48 horas para começar a guardar e só mantém 14 dias). Cada página do Cost Explorer custa US$ 0,01 na sua conta; por isso a leitura fica guardada por 6 horas e há um limite diário. O inventário usa chamadas gratuitas de descrição.
Erros comuns
- Não conseguimos assumir esse role: confira se o ARN colado está correto, se o External ID na política de confiança é exatamente o que o painel mostrou (sem espaços) e se a conta principal do trust policy é a conta AWS do GrandeTotal, não a sua.
- AccessDenied ao sincronizar: confirme que a política anexada tem a ação
ce:GetCostAndUsagee que o Cost Explorer está habilitado na conta (em contas recém-criadas, pode levar até 24h para os dados aparecerem). - Conta em AWS Organizations: o Cost Explorer só retorna os dados da conta dona da role. Para consolidado de organização, conecte a conta de pagamento (management account) com a mesma role.
Revogar o acesso
A qualquer momento, exclua a role no IAM ou remova a declaração de confiança — a próxima sincronização falha e a conexão aparece como erro no painel. Não é necessário avisar o GrandeTotal antes de revogar.
Quer saber o que existe do nosso lado para isso funcionar? Veja Segurança e acesso.