Metodologia: o que exatamente lemos da sua conta
A lista completa de chamadas de API que fazemos, por caminho de acesso. Nenhuma delas escreve, altera ou remove qualquer coisa.
Por que publicamos isso
Dar acesso à conta de AWS de uma empresa é uma decisão de segurança, e uma decisão de segurança precisa de detalhe verificável, não de promessa. Esta página lista cada chamada que executamos. As duas listas abaixo não são escritas à mão: saem do mesmo código que faz as chamadas — o template CloudFormation da role e a lista de ações do CLI open-source — então elas não têm como divergir do que o produto realmente faz.
Caminho 1: role assumida
Você implanta uma role somente leitura por CloudFormation e nós a assumimos com um ExternalId exclusivo da sua conta. Estas são as permissões que a role concede, agrupadas como estão no template. Toda ação é List, Read ou Describe, enumerada individualmente — não há curinga em lugar nenhum.
CostExplorerRead
Cost Explorer — commitment coverage / spend (rule COMMIT-C001).
ce:GetCostAndUsagece:GetReservationUtilizationce:GetReservationCoveragece:GetSavingsPlansUtilizationce:GetSavingsPlansCoverage
EC2Read
EC2 inventory — idle instances, orphan volumes, snapshots, EIPs, NAT. DescribeRegions lets us scan every enabled region, not just one.
ec2:DescribeRegionsec2:DescribeInstancesec2:DescribeVolumesec2:DescribeAddressesec2:DescribeSnapshotsec2:DescribeNatGatewaysec2:DescribeRouteTables
RDSRead
RDS inventory — idle databases, snapshots, reservations.
rds:DescribeDBInstancesrds:DescribeDBSnapshotsrds:DescribeReservedDBInstances
S3Read
S3 — bucket list + lifecycle config only (never object contents).
s3:ListAllMyBucketss3:ListBuckets3:GetLifecycleConfigurations3:ListBucketMultipartUploadss3:ListMultipartUploadParts
CloudWatchRead
CloudWatch — utilization metrics for "idle resource" rules.
cloudwatch:GetMetricDatacloudwatch:GetMetricStatistics
LambdaRead
Lambda — function inventory.
lambda:ListFunctions
CloudFrontRead
CloudFront — cross-check before recommending an S3 bucket removal (never suggest deleting a bucket that serves a live distribution).
cloudfront:ListDistributions
ELBRead
Load balancers — detect idle ALB/NLB with no healthy targets.
elasticloadbalancing:DescribeLoadBalancerselasticloadbalancing:DescribeTargetGroupselasticloadbalancing:DescribeTargetHealth
LogsRead
CloudWatch Logs — log groups with no retention accumulate forever.
logs:DescribeLogGroups
DynamoDBRead
DynamoDB — provisioned tables sitting idle versus their capacity.
dynamodb:ListTablesdynamodb:DescribeTable
Route53Read
Route 53 — hosted zones billing a flat fee while hosting nothing.
route53:ListHostedZones
SelfPolicySimulation
Self-diagnosis of a missing permission, scoped to this role only.
iam:SimulatePrincipalPolicy
Caminho 2: CLI open-source
Se preferir não criar role nenhuma, o CLI roda na sua máquina com as credenciais que você já usa, coleta um snapshot e envia só o snapshot. O código é aberto e auditável, e estas são as únicas chamadas que ele faz.
ce:GetCostAndUsageec2:DescribeRegionsec2:DescribeInstancesec2:DescribeVolumesec2:DescribeSnapshotsec2:DescribeAddressesec2:DescribeNatGatewaysec2:DescribeRouteTablesrds:DescribeDBInstancesrds:DescribeDBSnapshotss3:ListAllMyBucketss3:GetBucketLocations3:GetLifecycleConfigurations3:ListBucketMultipartUploadss3:ListMultipartUploadPartscloudfront:ListDistributionscloudwatch:GetMetricStatisticselasticloadbalancing:DescribeLoadBalancerselasticloadbalancing:DescribeTargetGroupselasticloadbalancing:DescribeTargetHealthlogs:DescribeLogGroupsdynamodb:ListTablesdynamodb:DescribeTableredshift:DescribeClustersroute53:ListHostedZonessts:GetCallerIdentity
Por que as duas listas não são idênticas
São caminhos de acesso diferentes, com capacidades diferentes, e a diferença é deliberada. A role assumida consegue consultar dados de reserva e de plano de economia pelo Cost Explorer, que alimentam a análise de cobertura de compromisso; o CLI local não pede essas permissões. Já o CLI precisa se identificar e descobrir a região dos buckets, o que a role obtém de outra forma. Listar as duas separadamente é mais honesto do que apresentar uma união que não corresponde a nenhum dos dois casos.
O que nunca fazemos
- Nenhuma ação de escrita, alteração ou remoção — em nenhum dos dois caminhos.
- Não lemos o conteúdo dos seus objetos, bancos ou logs: só metadados de configuração e métricas de uso.
- Não executamos os comandos de correção por você. O relatório mostra o comando; rodar é decisão sua.