Gestão centralizada do acesso root
Lição 20 · Módulo 5 — Especialista
Well-Architected: SEC01-BP02
O problema: um root por conta
Na lição 8 você protegeu o usuário root de uma conta: MFA, sem chaves de acesso, contatos alternativos, uso raro. Agora multiplique por 200 contas-membro. São 200 senhas, 200 dispositivos MFA e 200 caixas de e-mail capazes de recuperar a senha — cada uma é um caminho de ataque.
Em novembro de 2024 o IAM lançou o gerenciamento centralizado do acesso root para contas-membro do AWS Organizations. A ideia: em vez de proteger 200 credenciais root, você remove essas credenciais e executa as poucas tarefas que exigem root a partir de uma conta central, com sessões curtas e escopo limitado.
Os dois recursos e como habilitar
No console do IAM, em Root access management, há duas capacidades:
- Root credentials management: permite à conta de gerenciamento e ao administrador delegado do IAM apagar credenciais root das contas-membro.
- Privileged root actions in member accounts: permite a essas mesmas contas executar certas tarefas que exigem root. É necessária também para permitir que uma conta recupere a credencial root depois de apagada.
Pré-requisitos: contas gerenciadas pelo Organizations e trusted access do IAM habilitado na organização. Opcionalmente, registre um administrador delegado — a documentação recomenda uma conta voltada a segurança ou gestão, e a SRA usa a Security Tooling (lição 17).
12345678910
aws organizations enable-aws-service-access \ --service-principal iam.amazonaws.com aws iam enable-organizations-root-credentials-managementaws iam enable-organizations-root-sessions # Opcional: delegar à conta de Security Toolingaws organizations register-delegated-administrator \ --service-principal iam.amazonaws.com \ --account-id 111111111111 Depois de habilitado, você pode remover de cada conta-membro a senha root, as chaves de acesso, os certificados de assinatura e desativar o MFA. E contas novas criadas pelo Organizations já nascem sem credenciais root.
Sessões privilegiadas com sts:AssumeRoot
Uma tarefa privilegiada começa com sts:AssumeRoot, chamado por um usuário ou papel IAM da
conta de gerenciamento ou do administrador delegado (nunca com credencial root). A sessão:
- dura no máximo 900 segundos (15 minutos);
- exige uma task policy gerenciada pela AWS que limita o que pode ser feito;
- precisa ir para um endpoint regional do STS — o endpoint global não é suportado.
| Task policy | Para quê |
|---|---|
IAMAuditRootUserCredentials | Auditar o estado das credenciais root da conta-membro |
IAMCreateRootUserPassword | Permitir recuperação de senha (só quando a conta não tem credenciais root) |
IAMDeleteRootUserCredentials | Apagar senha, chaves, certificados e desativar MFA do root |
S3UnlockBucketPolicy | Apagar uma bucket policy mal configurada que nega acesso a todos |
SQSUnlockQueuePolicy | Apagar uma política de fila SQS que nega acesso a todos |
12345678
aws sts assume-root \ --region us-east-1 \ --target-principal 222222222222 \ --task-policy-arn arn=arn:aws:iam::aws:policy/root-task/S3UnlockBucketPolicy \ --duration-seconds 900 # Com as credenciais retornadas (AccessKeyId, SecretAccessKey, SessionToken):aws s3api delete-bucket-policy --bucket bucket-travado-exemplo
Para limitar quais tarefas cada papel pode iniciar, use a chave de condição
sts:TaskPolicyArn na política que concede sts:AssumeRoot.
Relação com SCPs e auditoria
- SCPs restringem o root das contas-membro. Muitas organizações já têm SCPs que negam ações ao root; elas continuam úteis como camada extra.
-
No CloudTrail da conta-membro, as ações da sessão aparecem com identidade do tipo
Root. Uma SCP que nega tudo paraarn:aws:iam::*:roottambém bloqueia as sessões deAssumeRoot. Por isso o controleAWS-GR_RESTRICT_ROOT_USERdo Control Tower tem o parâmetroExemptAssumeRoot, que acrescenta a condição"Null": "aws:AssumedRoot": "true": o deny passa a valer só quando a chaveaws:AssumedRootestá ausente, ou seja, para o root "de verdade". Nas suas SCPs próprias, use a mesma condição e teste numa conta isolada antes. - Para rastrear: localize o evento
AssumeRootna conta que iniciou a sessão (ele traztargetPrincipale a task policy) e procure oaccessKeyIdda sessão no CloudTrail da conta-alvo. - Crie alertas para qualquer
AssumeRoot: deve ser raro, e cada ocorrência precisa de um motivo registrado.
O que continua exigindo cuidado
- Nem toda tarefa de root está coberta. Algumas ainda exigem entrar como root. Nesse caso, use "Allow password recovery", faça a tarefa e apague as credenciais de novo.
- A conta que faz AssumeRoot vira crítica. Poucos papéis com
sts:AssumeRoot, MFA na federação, escopo porsts:TaskPolicyArne monitoramento. - O e-mail root continua importante. A recuperação habilitada é feita por quem tem acesso à caixa de e-mail do root da conta-membro.
Teste rápido
Um bucket de uma conta-membro tem uma bucket policy que nega acesso a todos, inclusive aos administradores. Com o acesso root centralizado habilitado, qual é o caminho recomendado?
Depois de habilitar o recurso e apagar as credenciais root de todas as contas-membro, qual root ainda precisa de MFA e proteção manual?
Resumo — e fim da trilha
Com o acesso root centralizado, contas-membro deixam de ter credenciais root de longo prazo, e as tarefas raras que exigem root viram sessões de até 15 minutos, com escopo por task policy e rastro no CloudTrail. O root da conta de gerenciamento continua sob sua guarda.
Esta é a última lição do Foundations do Zero. Você passou pelas oito boas práticas do SEC01:
contas como fronteira, root, objetivos de controle, ameaças, escopo, automação, modelagem de ameaças e
evolução contínua — até a arquitetura de referência e a operação em escala. O próximo passo é aplicar
essa base nas outras áreas do pilar: veja o mapa em
epics.dennisasilva.com.
Referência Well-Architected
Esta lição estende a SEC01-BP02 Secure account root user and properties, que pede limitar o uso do root às tarefas que realmente o exigem, usar MFA e ter controles detectivos que alertem quando o root é usado. Para MFA em profundidade, veja MFA no IAM do Zero.
Referências
Terminou esta lição?
Seu progresso fica salvo apenas neste navegador.