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

securing-serverless-functions

Protege funções serverless (como AWS Lambda). Garante permissões mínimas, verifica dependências e gerencia segredos com segurança.

O que ela faz

Esta ferramenta ajuda a proteger suas funções de código que rodam na nuvem (como AWS Lambda, Azure Functions, Google Cloud Functions). Ela garante que o código tenha apenas as permissões necessárias, verifica se há componentes vulneráveis, gerencia senhas de forma segura e valida as informações que chegam.

Quando usar

  • ✓Ao colocar no ar funções que lidam com dados sensíveis.
  • ✓Ao verificar se o acesso concedido às funções é muito amplo.
  • ✓Ao adicionar segurança automática ao processo de desenvolvimento de software.

Exemplo do que pedir para a IA

“Como posso proteger minhas funções Lambda que acessam dados de clientes?”

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-serverless-functions/SKILL.md

Mensagem pronta para colar

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

Ela funciona configurando permissões mínimas para cada função, evitando que elas acessem mais do que precisam. Também verifica se há componentes desatualizados ou perigosos no código e garante que senhas e informações importantes sejam armazenadas de forma segura, não diretamente no código.

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-serverless-functions

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/securing-serverless-functions/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 Serverless

Quando Usar

  • Ao implantar funções Lambda ou Azure Functions com acesso a dados sensíveis ou APIs na nuvem
  • Ao auditar cargas de trabalho serverless existentes em busca de papéis IAM excessivamente permissivos
  • Ao integrar funções serverless em um pipeline DevSecOps com varredura de segurança automatizada
  • Ao descobrir segredos codificados ou dependências vulneráveis no código da função
  • Ao estabelecer monitoramento em tempo de execução para cargas de trabalho serverless para detectar roubo de injeção ou credenciais

Não use para segurança de computação baseada em contêineres (veja protegendo-kubernetes-na-nuvem), para configuração de API Gateway (veja implementando-regras-de-waf-na-nuvem), ou para decisões de design de arquitetura serverless.

Pré-requisitos

  • AWS Lambda, Azure Functions ou GCP Cloud Functions com acesso de implantação
  • Pipeline CI/CD com ferramentas de varredura de dependências (npm audit, Snyk, Dependabot)
  • AWS Secrets Manager, Azure Key Vault ou HashiCorp Vault para gerenciamento de segredos
  • CloudWatch, Application Insights ou Cloud Logging para monitoramento de funções

Fluxo de Trabalho

Passo 1: Impor Papéis IAM de Menor Privilégio

Atribua a cada função Lambda um papel IAM dedicado com permissões restritas apenas aos recursos específicos que ela acessa. Nunca compartilhe papéis IAM entre funções.

# Create a least-privilege role for a specific Lambda function
aws iam create-role \
  --role-name order-processor-lambda-role \
  --assume-role-policy-document '{
    "Version": "2012-10-17",
    "Statement": [{
      "Effect": "Allow",
      "Principal": {"Service": "lambda.amazonaws.com"},
      "Action": "sts:AssumeRole"
    }]
  }'

# Attach a scoped policy (not AmazonDynamoDBFullAccess)
aws iam put-role-policy \
  --role-name order-processor-lambda-role \
  --policy-name order-processor-policy \
  --policy-document '{
    "Version": "2012-10-17",
    "Statement": [
      {
        "Effect": "Allow",
        "Action": ["dynamodb:PutItem", "dynamodb:GetItem"],
        "Resource": "arn:aws:dynamodb:us-east-1:123456789012:table/Orders"
      },
      {
        "Effect": "Allow",
        "Action": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents"],
        "Resource": "arn:aws:logs:us-east-1:123456789012:log-group:/aws/lambda/order-processor:*"
      },
      {
        "Effect": "Allow",
        "Action": ["secretsmanager:GetSecretValue"],
        "Resource": "arn:aws:secretsmanager:us-east-1:123456789012:secret:order-api-key-*"
      }
    ]
  }'

Passo 2: Elimine Segredos Codificados

Substitua credenciais em texto plano em variáveis de ambiente por referências a serviços de gerenciamento de segredos. Use extensões Lambda ou chamadas de SDK para recuperar segredos em tempo de execução.

# INSECURE: Hardcoded credentials in environment variable
# DB_PASSWORD = os.environ['DB_PASSWORD']  # Stored as plaintext in Lambda config

# SECURE: Retrieve from AWS Secrets Manager with caching
import boto3
from botocore.exceptions import ClientError
import json

_secret_cache = {}

def get_secret(secret_name):
    if secret_name in _secret_cache:
        return _secret_cache[secret_name]

    client = boto3.client('secretsmanager')
    response = client.get_secret_value(SecretId=secret_name)
    secret = json.loads(response['SecretString'])
    _secret_cache[secret_name] = secret
    return secret

def lambda_handler(event, context):
    db_creds = get_secret('production/database/credentials')
    db_host = db_creds['host']
    db_password = db_creds['password']
    # Use credentials securely
# Enable encryption at rest for Lambda environment variables
aws lambda update-function-configuration \
  --function-name order-processor \
  --kms-key-arn arn:aws:kms:us-east-1:123456789012:key/key-id

Passo 3: Varra Dependências em Busca de Vulnerabilidades

Integre a varredura automatizada de dependências ao pipeline CI/CD para capturar pacotes vulneráveis antes da implantação.

# npm audit for Node.js Lambda functions
cd lambda-function/
npm audit --audit-level=high
npm audit fix

# Snyk scanning in CI/CD pipeline
snyk test --severity-threshold=high
snyk monitor --project-name=order-processor-lambda

# pip-audit for Python Lambda functions
pip-audit -r requirements.txt --desc on --fix

# Scan Lambda deployment package with Trivy
trivy fs --severity HIGH,CRITICAL ./lambda-package/
# Varredura de segurança CI/CD do GitHub Actions
name: Varredura de Segurança Lambda
on: [push, pull_request]
jobs:
  security:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

…
Perguntas frequentes

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

São pequenos pedaços de código que rodam na nuvem sob demanda, sem que você precise gerenciar servidores. Exemplos incluem AWS Lambda, Azure Functions e Google Cloud Functions.

O que é 'IAM'?

IAM significa Gerenciamento de Identidade e Acesso. É um sistema que controla quem (ou o quê) pode acessar quais recursos na nuvem, garantindo que apenas usuários ou funções autorizadas tenham permissão.

O que são 'vulnerabilidades de dependência'?

São falhas de segurança encontradas em bibliotecas ou componentes de software que seu código utiliza. Se essas bibliotecas estiverem desatualizadas ou tiverem falhas, seu código pode ficar exposto a ataques.

Detalhes

Descrição original do autor

Hardens serverless compute platforms (AWS Lambda, Azure Functions, Google Cloud Functions): least-privilege IAM roles, dependency vulnerability scanning, secrets management integration, input validation, function URL authentication, and runtime monitoring. Use when deploying serverless functions with sensitive access, auditing for overly permissive roles, or adding functions to a DevSecOps pipelin

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

Estrelas no GitHub
35 mil
Posição no ranking
#6212
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