AWS — Guia de Configuração
O Elven Assessment analisa 71 serviços da AWS cobrindo segurança, confiabilidade, custo, operações e conformidade. Esta página detalha como configurar o acesso e personalizar o escopo do assessment.
Métodos de autenticação
Assume Role
Este é o método mais seguro. A plataforma assume temporariamente uma IAM Role na sua conta, sem armazenar chaves de longa duração.
Como funciona: A plataforma usa suas próprias credenciais para chamar sts:AssumeRole na sua conta AWS e obter credenciais temporárias com validade de 1 hora.
Campos necessários:
| Campo | Obrigatório | Descrição |
|---|---|---|
| Role ARN | Sim | ARN da IAM Role a ser assumida |
| External ID | Recomendado | Proteção adicional contra confused deputy |
| Sessão | Não | Nome da sessão STS (padrão: ElvenAssessment) |
Exemplo:
Role ARN: arn:aws:iam::123456789012:role/ElvenAssessmentRole
External ID: elven-assessment-prod-2026
Cross-account
Assume Role é especialmente vantajoso para assessments multi-conta: crie a mesma role em cada conta e adicione múltiplas contas ao mesmo assessment.
Instance Profile
Usa as credenciais do ambiente onde a plataforma está rodando (ex.: EC2 Instance Profile, ECS Task Role, EKS Pod Identity).
Quando usar: A plataforma está implantada dentro da própria AWS e a instância/pod já tem uma IAM Role com as permissões necessárias.
Configuração: Selecione "Instance Profile" no dropdown — nenhum campo adicional é necessário.
Sem campos adicionais
Este método não solicita credenciais. A plataforma usa automaticamente as credenciais do ambiente de execução via IMDS (Instance Metadata Service).
Access Key + Secret Key
Método direto com credenciais de longa duração. Menos recomendado por razões de segurança.
Campos necessários:
| Campo | Descrição |
|---|---|
| Access Key ID | Começa com AKIA... |
| Secret Access Key | Chave secreta correspondente |
| Session Token | Opcional — necessário apenas para credenciais temporárias |
Nunca use credenciais root
Nunca insira as credenciais da conta root da AWS. Crie sempre um usuário IAM dedicado com permissões mínimas.
Armazenamento das chaves
As chaves são armazenadas criptografadas (AES-256-GCM). Ainda assim, prefira Assume Role para não manter chaves de longa duração na plataforma.
AWS Profile (arquivo local)
Usa um perfil do arquivo ~/.aws/credentials configurado no servidor onde a plataforma está instalada.
Campos necessários:
| Campo | Descrição |
|---|---|
| Profile Name | Nome do perfil (ex.: prod, staging) |
Quando usar: Instalações self-hosted onde o administrador já gerencia perfis AWS no servidor.
Política IAM recomendada
Para o assessment funcionar corretamente, a IAM Role ou usuário precisa das seguintes permissões:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ReadOnlyAccess",
"Effect": "Allow",
"Action": [
"ec2:Describe*",
"ec2:Get*",
"ec2:List*",
"s3:GetBucketAcl",
"s3:GetBucketPolicy",
"s3:GetBucketPublicAccessBlock",
"s3:GetBucketEncryption",
"s3:GetBucketVersioning",
"s3:GetBucketLogging",
"s3:ListAllMyBuckets",
"iam:Get*",
"iam:List*",
"iam:GenerateCredentialReport",
"rds:Describe*",
"rds:List*",
"elasticache:Describe*",
"elasticache:List*",
"eks:Describe*",
"eks:List*",
"lambda:Get*",
"lambda:List*",
"cloudtrail:Describe*",
"cloudtrail:Get*",
"cloudtrail:List*",
"cloudwatch:Describe*",
"cloudwatch:Get*",
"cloudwatch:List*",
"logs:Describe*",
"logs:Get*",
"logs:List*",
"kms:Describe*",
"kms:Get*",
"kms:List*",
"secretsmanager:Describe*",
"secretsmanager:List*",
"config:Describe*",
"config:Get*",
"config:List*",
"guardduty:Get*",
"guardduty:List*",
"securityhub:Describe*",
"securityhub:Get*",
"securityhub:List*",
"wafv2:Get*",
"wafv2:List*",
"elb:Describe*",
"elbv2:Describe*",
"autoscaling:Describe*",
"route53:Get*",
"route53:List*",
"acm:Describe*",
"acm:Get*",
"acm:List*",
"sns:Get*",
"sns:List*",
"sqs:Get*",
"sqs:List*",
"redshift:Describe*",
"dynamodb:Describe*",
"dynamodb:List*",
"athena:Get*",
"athena:List*",
"glue:Get*",
"glue:List*",
"emr:Describe*",
"emr:List*",
"kinesis:Describe*",
"kinesis:List*",
"firehose:Describe*",
"firehose:List*",
"backup:Describe*",
"backup:Get*",
"backup:List*",
"ssm:Describe*",
"ssm:Get*",
"ssm:List*",
"organizations:Describe*",
"organizations:List*",
"tag:Get*",
"support:Describe*"
],
"Resource": "*"
},
{
"Sid": "CostExplorerAccess",
"Effect": "Allow",
"Action": [
"ce:GetRightsizingRecommendation",
"ce:GetCostAndUsage",
"ce:GetUsageForecast",
"ce:GetReservationUtilization",
"ce:GetSavingsPlansPurchaseRecommendation"
],
"Resource": "*"
}
]
}
AWS Managed Policy alternativa
Para simplificar, você pode usar a policy gerenciada ReadOnlyAccess da AWS (arn:aws:iam::aws:policy/ReadOnlyAccess) e adicionar apenas as permissões de Cost Explorer separadamente. A policy gerenciada inclui a maioria dos Describe* e List* necessários.
Trust Policy para Assume Role
Se estiver usando Assume Role, a IAM Role precisa de uma Trust Policy que permita à plataforma assumi-la. Substitua ACCOUNT_ID_DA_PLATAFORMA pelo ID da conta AWS onde o Elven Assessment está rodando:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::ACCOUNT_ID_DA_PLATAFORMA:root"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"sts:ExternalId": "elven-assessment-prod-2026"
}
}
}
]
}
Seleção de regiões
- Todas as regiões (padrão): a plataforma consulta automaticamente todas as regiões ativas da sua conta.
- Regiões específicas: desmarque regiões que não são utilizadas para reduzir o tempo de execução.
Regiões mais comuns no Brasil
Se seus recursos estão principalmente no Brasil, priorize sa-east-1 (São Paulo). Para ambientes globais, inclua us-east-1, us-west-2 e eu-west-1.
Seleção de serviços
| Opção | Quando usar |
|---|---|
| Todos os serviços (padrão) | Assessment completo — recomendado para a maioria dos casos |
| Personalizado | Quando há restrições de tempo ou quando apenas parte do ambiente é relevante |
Serviços avaliados por categoria
Identidade e Acesso IAM (usuários, grupos, roles, policies, MFA, password policy), STS, SSO
Computação EC2 (instâncias, security groups, key pairs, snapshots, AMIs), Lambda, Auto Scaling, Batch
Contêineres EKS (clusters, node groups, pods, RBAC, network policies), ECS, ECR, Fargate
Rede VPC, subnets, NACLs, Route Tables, NAT Gateway, VPN, Direct Connect, ELB, ALB/NLB, CloudFront, Route 53, API Gateway
Storage S3 (ACL, políticas, criptografia, versionamento, logging), EBS, EFS, FSx, Storage Gateway, Backup
Banco de Dados RDS, Aurora, DynamoDB, ElastiCache, Redshift, DocumentDB, Neptune, MemoryDB
Segurança GuardDuty, Security Hub, Inspector, Macie, WAF, Shield, Config, CloudTrail, KMS, Secrets Manager, ACM
Observabilidade CloudWatch, CloudTrail, X-Ray, EventBridge
DevOps CodePipeline, CodeBuild, CodeDeploy, CodeCommit
Analytics e IA Athena, Glue, EMR, Kinesis, SageMaker, Bedrock
Governança Organizations, Control Tower, Service Catalog, Trusted Advisor
EKS Deep-Dive (opcional)
Quando o assessment inclui EKS, a plataforma realiza uma análise aprofundada dos clusters Kubernetes:
- RBAC — ClusterRoles, ClusterRoleBindings e privilégios excessivos
- Network Policies — namespaces sem isolamento de rede
- Pod Security — pods rodando como root, capabilities privilegiadas
- Secrets — secrets sem criptografia at-rest via KMS
- Node Groups — versões desatualizadas do Kubernetes, node groups sem auto-scaling
- Add-ons — CoreDNS, kube-proxy, VPC CNI em versões vulneráveis
- Logging — audit logging do control plane habilitado
Autenticação no EKS
A análise do EKS usa as mesmas credenciais AWS do assessment para gerar um token de autenticação temporário (k8s-aws-v1). Não são necessárias credenciais adicionais.
Dicas de configuração
Nomeie os assessments de forma clara
Use um padrão como AWS [Conta] - [Mês/Ano] (ex.: AWS Produção - Mai/2026). Isso facilita a comparação histórica.
Permissões insuficientes
Se o assessment falhar em determinados serviços com erro AccessDenied, verifique se a policy IAM cobre todos os serviços selecionados. Os erros por serviço são listados na página de progresso.
Cost Explorer
Para que o rightsizing funcione com dados reais de uso, é necessário que o Cost Explorer esteja habilitado na conta AWS (Billing & Cost Management → Cost Explorer → Enable). A habilitação pode levar até 24h para disponibilizar dados históricos.