0 XP

DEVOPSQUEST

Minha Trilha
Módulo 6 · AWS, Cloud e Segurança

IAM na prática: diagnosticar acesso sem ampliar privilégios

Intermediário 55 min+25 XPAWS CLIIAM Policy SimulatorCloudTrail

Objetivos desta aula

  • Identificar a identidade efetiva de uma chamada
  • Separar confiança de role e autorização de recursos
  • Investigar AccessDenied com evidências
  • Validar permissões positivas e negativas
  • Entender limites de políticas e criptografia

Uma role já foi criada para a API, mas o upload falha com AccessDenied. Nesta aula, o foco é diagnosticar autorização, não criar outra identidade. Comece anotando ação, recurso, horário e identidade envolvida; sem isso, qualquer alteração de política vira tentativa e erro.

A primeira pergunta é quem está chamando a AWS. Execute aws sts get-caller-identity no mesmo contexto da aplicação ou do pipeline. O perfil do seu notebook pode funcionar enquanto a role da aplicação falha; testar com outra identidade não comprova a correção.

A política de confiança define quem pode assumir uma role, enquanto a política de permissões define o que ela pode fazer depois. Se sts:AssumeRole falha, investigue a confiança e as permissões do chamador antes de alterar acesso ao S3.

Uma autorização considera mais que a política anexada à role. SCPs, permissions boundaries, políticas de sessão e políticas de recurso também participam da avaliação; um Deny explícito aplicável prevalece sobre um Allow. Adicionar outra política permissiva não remove essa negação.

No S3, diferencie bucket de objeto: s3:ListBucket usa o ARN do bucket e pode ser limitado por prefixo; s3:GetObject usa o ARN com caminho do objeto. Uma aplicação que lê uma chave conhecida pode não precisar listar todo o bucket.

Use o simulador como diagnóstico, não como prova definitiva. simulate-principal-policy ajuda a comparar ações e recursos, mas não reproduz todos os cenários de políticas de recurso, sessão e organização. Confirme com uma chamada real controlada e examine a mensagem de erro.

Criptografia pode acrescentar outra camada: ler objeto protegido por SSE-KMS pode exigir kms:Decrypt, além da autorização no S3. Verifique a key policy e a região da chave, sem substituir criptografia por acesso público para destravar o teste.

Feche a mudança com testes negativos: o arquivo permitido deve ser lido e outro prefixo deve continuar negado. Registre evidências no PR e consulte CloudTrail quando houver eventos disponíveis; para operações de objetos S3, os data events precisam ser habilitados e podem gerar custo.

Na prática

Confirmar identidade e simular leitura de objeto

bash

# Execute com o perfil autorizado a diagnosticar IAM; troque conta e bucket.
aws sts get-caller-identity
aws iam simulate-principal-policy \
  --policy-source-arn arn:aws:iam::123456789012:role/cloudshop-api \
  --action-names s3:GetObject \
  --resource-arns arn:aws:s3:::cloudshop-assets/uploads/teste.txt \
  --query 'EvaluationResults[].{Acao:EvalActionName,Decisao:EvalDecision}'
# A simulação exige permissão IAM própria; não a conceda à aplicação.

Validar acesso permitido e acesso proibido

bash

# Execute no contexto da role da API, com objetos de teste existentes.
aws s3api get-object --bucket cloudshop-assets \
  --key uploads/teste.txt /tmp/cloudshop-permitido.txt
# Este comando deve retornar AccessDenied, não o conteúdo financeiro.
aws s3api get-object --bucket cloudshop-assets \
  --key financeiro/teste.txt /tmp/cloudshop-proibido.txt
# Se o segundo funcionar, revise as políticas antes de publicar.

Por que isso importa

Diagnosticar a causa de uma negação evita transformar um problema operacional em exposição permanente.

Erro comum

Adicionar AdministratorAccess sem identificar a ação e o recurso que falharam.

Dica de produção

Mantenha uma matriz de ações permitidas e negadas por role e repita os testes após mudanças.

Alerta de segurança

Não copie tokens temporários ou objetos sensíveis para tickets e logs; use dados sintéticos nos testes.

Pergunta de entrevista

Uma role tem Allow para GetObject, mas a chamada falha: quais camadas você investigaria?

Glossário

política de confiança
Documento que define quais identidades podem assumir uma role.
permissions boundary
Limite das permissões que políticas de identidade podem conceder.
SCP
Política de organização que limita permissões nas contas abrangidas.
negação explícita
Regra Deny aplicável que prevalece sobre permissões Allow.
SSE-KMS
Criptografia no S3 integrada ao serviço de gerenciamento de chaves KMS.

Conexão com o CloudShop

Adicionar ao CloudShop evidências de leitura autorizada em uploads/ e negação em financeiro/, usando a role da API.

Quiz da aula

  1. 1. Qual verificação confirma a identidade efetiva da CLI?

  2. 2. Um Deny explícito aplicável pode ser superado por outro Allow?

  3. 3. Por que testar um prefixo proibido?

Minhas anotações

Salvo automaticamente neste navegador.

AnteriorPróxima