Pular para o conteúdo
Skillpedia
Segurança48 mil · #4091

aws-iam-best-practices

Ajuda seu agente a revisar e melhorar as permissões de acesso na AWS. Garante que apenas o necessário seja permitido, aumentando a segurança.

O que ela faz

Esta ferramenta ajuda a verificar e melhorar a segurança das suas permissões na nuvem AWS. Ela garante que apenas as ações necessárias sejam permitidas, seguindo as melhores práticas de segurança.

Quando usar

  • ✓Quando você quer saber se suas permissões são muito amplas.
  • ✓Para garantir que apenas o necessário seja acessível.
  • ✓Ao configurar novas permissões para evitar falhas de segurança.

Exemplo do que pedir para a IA

“Verifique minhas permissões para que apenas o essencial seja acessado.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/security/aws-iam-best-practices/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/security/aws-iam-best-practices/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta analisa suas permissões existentes e sugere ajustes para seguir o princípio do menor privilégio. Ela também verifica se a autenticação de múltiplos fatores (MFA) está ativada e se as chaves de acesso estão seguras.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill aws-iam-best-practices

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/security/aws-iam-best-practices/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Melhores Práticas do AWS IAM

Revise e fortaleça as políticas do IAM seguindo as melhores práticas de segurança da AWS e os princípios de menor privilégio.

Quando Usar

Use esta habilidade quando precisar revisar políticas do IAM, implementar acesso de menor privilégio ou fortalecer a segurança do IAM.

Princípios Fundamentais

Menor Privilégio

  • Conceda as permissões mínimas necessárias
  • Use políticas gerenciadas quando possível
  • Evite permissões com curinga (*)
  • Revisões regulares de acesso

Defesa em Profundidade

  • Habilite MFA para todos os usuários
  • Use funções do IAM em vez de chaves de acesso
  • Implemente políticas de controle de serviço (SCPs)
  • Habilite o CloudTrail para auditoria

Separação de Funções

  • Separe funções de administrador e de usuário
  • Use funções diferentes para ambientes diferentes
  • Implemente fluxos de trabalho de aprovação
  • Auditorias regulares de permissões

Verificações de Segurança do IAM

Encontrar Políticas Excessivamente Permissivas

# List policies with full admin access
aws iam list-policies --scope Local \
  --query 'Policies[*].[PolicyName,Arn]' --output table | \
  grep -i admin

# Find policies with wildcard actions
aws iam list-policies --scope Local --query 'Policies[*].Arn' --output text | \
while read arn; do
  version=$(aws iam get-policy --policy-arn "$arn" \
    --query 'Policy.DefaultVersionId' --output text)
  doc=$(aws iam get-policy-version --policy-arn "$arn" \
    --version-id "$version" --query 'PolicyVersion.Document')
  if echo "$doc" | grep -q '"Action": "\*"'; then
    echo "Wildcard action in: $arn"
  fi
done

# Find inline policies (should use managed policies)
aws iam list-users --query 'Users[*].UserName' --output text | \
while read user; do
  policies=$(aws iam list-user-policies --user-name "$user" \
    --query 'PolicyNames' --output text)
  if [ -n "$policies" ]; then
    echo "Inline policies on user $user: $policies"
  fi
done

Aplicação de MFA

# List users without MFA
aws iam get-credential-report --output text | \
  awk -F, 'NR>1 && $4=="false" {print $1}'

# Check if MFA is required in policies
aws iam list-policies --scope Local --query 'Policies[*].Arn' --output text | \
while read arn; do
  version=$(aws iam get-policy --policy-arn "$arn" \
    --query 'Policy.DefaultVersionId' --output text)
  doc=$(aws iam get-policy-version --policy-arn "$arn" \
    --version-id "$version" --query 'PolicyVersion.Document')
  if echo "$doc" | grep -q "aws:MultiFactorAuthPresent"; then
    echo "MFA enforced in: $arn"
  fi
done

# Enable MFA for a user (returns QR code)
aws iam create-virtual-mfa-device \
  --virtual-mfa-device-name user-mfa \
  --outfile /tmp/qr.png \
  --bootstrap-method QRCodePNG

Gerenciamento de Chaves de Acesso

# Find old access keys (>90 days)
aws iam list-users --query 'Users[*].UserName' --output text | \
while read user; do
  aws iam list-access-keys --user-name "$user" \
    --query 'AccessKeyMetadata[*].[AccessKeyId,CreateDate,Status]' \
    --output text | \
  while read key_id create_date status; do
    age_days=$(( ($(date +%s) - $(date -d "$create_date" +%s)) / 86400 ))
    if [ $age_days -gt 90 ]; then
      echo "$user: Key $key_id is $age_days days old"
    fi
  done
done

# Rotate access key
OLD_KEY="<AWS_ACCESS_KEY_ID>"
USER="myuser"

# Create new key
NEW_KEY=$(aws iam create-access-key --user-name "$USER")
echo "New key created. Update applications, then run:"
echo "aws iam delete-access-key --user-name $USER --access-key-id $OLD_KEY"

# Deactivate old key (test first)
aws iam update-access-key \
  --user-name "$USER" \
  --access-key-id "$OLD_KEY" \
  --status Inactive

Análise de Funções e Políticas

# List unused roles (no activity in 90 days)
aws iam list-roles --query 'Roles[*].[RoleName,RoleLastUsed.LastUsedDate]' \
  --output text | \
while read role last_used; do
  if [ "$last_used" = "None" ]; then
    echo "Never used: $role"
  fi
done

# Find roles with trust relationships to external accounts
aws iam list-roles --query 'Roles[*].RoleName' --output text | \
while read role; do
  trust=$(aws iam get-role --role-name "$role" \
    --query 'Role.AssumeRolePolicyDocument')
  if echo "$trust" | grep -q '"AWS":'; then
    echo "External trust: $role"
  fi
done

# Analyze policy permissions
aws iam simulate-principal-policy \
  --policy-source-arn arn:aws:iam::123456789012:user/myuser \
  --action-names s3:GetObject s3:PutObject \
  --resource-arns arn:aws:s3:::mybucket/*

Modelos de Políticas do IAM

Menor Privilégio de Acesso ao S3

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [

…
Perguntas frequentes

O que é o 'menor privilégio'?

É o princípio de dar a alguém (ou a um serviço) apenas as permissões exatas que ele precisa para fazer seu trabalho, e nada mais.

O que é MFA?

MFA significa Autenticação de Múltiplos Fatores. É uma camada extra de segurança que exige mais de uma forma de verificar sua identidade, como uma senha e um código do seu celular.

Por que evitar permissões com '*'?

Usar '*' em permissões significa 'tudo'. Isso pode dar acesso a mais coisas do que o necessário, aumentando o risco de segurança.

Detalhes

Descrição original do autor

IAM policy review, hardening, and least privilege implementation

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#4091
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas