Pular para o conteúdo
Skillpedia
Diversos35 mil · #6203

securing-aws-lambda-execution-roles

Otimiza as permissões de funções de execução do AWS Lambda. Garante que as funções tenham acesso mínimo necessário para operar.

O que ela faz

Este guia ensina como tornar as permissões das funções Lambda mais seguras. Ele ajuda a garantir que cada função tenha acesso apenas ao que realmente precisa, evitando riscos de segurança.

Quando usar

  • ✓Ao criar novas funções Lambda.
  • ✓Ao corrigir funções Lambda com permissões excessivas.
  • ✓Ao configurar o acesso mínimo necessário para suas funções.

Exemplo do que pedir para a IA

“Como posso garantir que minha função Lambda só acesse os dados que ela precisa no S3?”

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/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/securing-aws-lambda-execution-roles/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/securing-aws-lambda-execution-roles/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Ele analisa o que sua função Lambda faz, cria regras de permissão específicas para ela e aplica limites para garantir que ela não possa fazer mais do que o permitido.

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 mukul975/Anthropic-Cybersecurity-Skills --skill securing-aws-lambda-execution-roles

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/securing-aws-lambda-execution-roles/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.

Protegendo Funções de Execução do AWS Lambda

Quando Usar

  • Ao implantar novas funções Lambda e definir suas funções de execução IAM
  • Ao corrigir funções Lambda excessivamente permissivas descobertas durante auditorias de segurança
  • Ao implementar padrões de acesso de menor privilégio para arquiteturas serverless
  • Ao criar modelos IAM reutilizáveis para funções Lambda entre equipes
  • Quando o Security Hub ou o Prowler relatam funções Lambda com permissões excessivas

Não use para proteger a invocação de funções Lambda (use políticas baseadas em recursos e autorizadores do API Gateway), para segurança de código Lambda (use ferramentas SAST) ou para segurança de rede Lambda (use configuração de VPC e grupos de segurança).

Pré-requisitos

  • Permissões IAM para criação de políticas, modificação de roles e operações do Access Analyzer
  • AWS IAM Access Analyzer habilitado na conta
  • Eventos de dados do CloudTrail habilitados para Lambda para capturar o uso real da API
  • Funções Lambda existentes para auditar e definir o escopo das permissões
  • Compreensão das interações necessárias de cada função com os serviços AWS

Fluxo de Trabalho

Etapa 1: Auditar Permissões Atuais da Função de Execução Lambda

Liste todas as funções Lambda e suas roles IAM associadas para identificar funções com privilégios excessivos.

# List all Lambda functions with their execution roles
aws lambda list-functions \
  --query 'Functions[*].[FunctionName,Role]' --output table

# For each function, analyze attached policies
for func in $(aws lambda list-functions --query 'Functions[*].FunctionName' --output text); do
  role_arn=$(aws lambda get-function-configuration --function-name "$func" --query 'Role' --output text)
  role_name=$(echo "$role_arn" | awk -F'/' '{print $NF}')
  echo "=== $func -> $role_name ==="

  # Check for AWS managed policies (often too broad)
  aws iam list-attached-role-policies --role-name "$role_name" \
    --query 'AttachedPolicies[*].[PolicyName,PolicyArn]' --output table

  # Check inline policies
  for policy in $(aws iam list-role-policies --role-name "$role_name" --query 'PolicyNames' --output text); do
    echo "  Inline: $policy"
    aws iam get-role-policy --role-name "$role_name" --policy-name "$policy" \
      --query 'PolicyDocument' --output json
  done
done

Etapa 2: Analisar o Uso Real da API com o CloudTrail

Use o CloudTrail e o IAM Access Analyzer para determinar quais ações de API a função realmente utiliza.

# Query CloudTrail for actual API calls made by a Lambda execution role
aws cloudtrail lookup-events \
  --lookup-attributes AttributeKey=Username,AttributeValue=LAMBDA_ROLE_NAME \
  --start-time 2026-01-23T00:00:00Z \
  --end-time 2026-02-23T00:00:00Z \
  --query 'Events[*].[EventTime,EventName,EventSource]' \
  --output table | sort -k2 | uniq -f1

# Use IAM Access Analyzer policy generation (based on CloudTrail activity)
aws accessanalyzer start-policy-generation \
  --policy-generation-details '{
    "principalArn": "arn:aws:iam::ACCOUNT:role/lambda-execution-role",
    "cloudTrailDetails": {
      "trailArn": "arn:aws:cloudtrail:us-east-1:ACCOUNT:trail/management-trail",
      "startTime": "2026-01-23T00:00:00Z",
      "endTime": "2026-02-23T00:00:00Z"
    }
  }'

# Check the generated policy
aws accessanalyzer get-generated-policy \
  --job-id JOB_ID \
  --query 'generatedPolicyResult.generatedPolicies[*].policy'

Etapa 3: Criar Políticas de Execução de Menor Privilégio

Crie políticas IAM com escopo definido que concedam apenas as ações e recursos específicos que cada função precisa.

# Exemplo: Política com escopo para uma função que lê do S3 e escreve no DynamoDB
cat > lambda-scoped-policy.json << 'EOF'
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "ReadInputBucket",
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::input-data-bucket",
        "arn:aws:s3:::input-data-bucket/*"
      ]
    },
    {
      "Sid": "WriteDynamoDB",
      "Effect": "Allow",
      "Action": [
        "dynamodb:PutItem",
        "dynamodb:UpdateItem",
        "dynamodb:BatchWriteItem"
      ],
      "Resource": "arn:aws:dynamodb:us-east-1:ACCOUNT:table/results-table"
    },
    {
      "Sid": "CloudWatchLogs",
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents"
      ],
      "Resource": "arn:aws:logs:us-east-1:ACCOUNT:log-group:/aws/lambda/my-function:*"
    }
  ]
}
EOF

# Criar a política
aws iam create-policy \

…
Perguntas frequentes

O que são 'funções Lambda'?

São pequenos programas que rodam na nuvem da Amazon (AWS) sem que você precise gerenciar servidores.

O que são 'permissões' ou 'políticas IAM'?

São regras que definem o que um usuário ou serviço (como uma função Lambda) pode ou não fazer dentro da AWS.

Por que é importante limitar as permissões?

Para evitar que, se uma função for comprometida, o invasor tenha acesso a informações ou ações que não deveria, protegendo seus dados e sistemas.

Detalhes

Descrição original do autor

Hardens AWS Lambda execution roles by writing least-privilege IAM policies, applying permission boundaries, restricting resource-based policies, validating permissions with IAM Access Analyzer, and enforcing role scoping through SCPs. Use when deploying new Lambda functions, remediating overly permissive Lambda roles found in an audit, or building reusable least-privilege IAM role templates for se

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

Estrelas no GitHub
35 mil
Posição no ranking
#6203
Licença
Apache-2.0
Atualizada em
31/08/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas