Pular para o conteúdo
Skillpedia
Deploy e nuvem (DevOps)35 mil · #5518

auditing-kubernetes-cluster-rbac

Ensina seu agente de IA a colocar projetos no ar e cuidar da infraestrutura.

O que ela faz

Esta ferramenta ajuda a verificar as permissões de acesso em um sistema chamado Kubernetes. Ela procura por configurações que dão permissões demais a usuários ou programas, o que pode ser um risco de segurança.

Quando usar

  • ✓Ao verificar a segurança de um sistema Kubernetes.
  • ✓Quando você precisa garantir que as permissões são as mínimas necessárias.
  • ✓Ao investigar possíveis acessos indevidos ou elevação de privilégios.

Exemplo do que pedir para a IA

“Verifique as permissões de acesso no meu cluster Kubernetes para encontrar configurações inseguras.”

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/auditing-kubernetes-cluster-rbac/SKILL.md

Mensagem pronta para colar

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

A ferramenta usa comandos específicos para analisar as regras de permissão (RBAC) do Kubernetes. Ela procura por padrões perigosos, como permissões amplas ou acesso a informações sensíveis.

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 auditing-kubernetes-cluster-rbac

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/auditing-kubernetes-cluster-rbac/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.

Auditoria de RBAC em Clusters Kubernetes

Quando Usar

  • Ao realizar avaliações de segurança de clusters Kubernetes (EKS, GKE, AKS ou auto-gerenciados)
  • Ao validar que as políticas de RBAC aplicam o princípio do menor privilégio para usuários e contas de serviço
  • Ao investigar potencial movimento lateral ou escalonamento de privilégios dentro de um cluster Kubernetes
  • Quando auditorias de conformidade exigem documentação de controles de acesso e permissões
  • Ao integrar novas equipes a um cluster compartilhado e definir políticas de RBAC apropriadas

Não use para auditoria de políticas de rede (use ferramentas de política de rede Cilium ou Calico), para escaneamento de imagens de contêineres (use Trivy ou Grype), ou para monitoramento de segurança em tempo de execução (use Falco ou Sysdig Secure).

Pré-requisitos

  • kubectl configurado com permissões de cluster-admin ou de leitura equivalentes para o cluster alvo
  • rbac-tool instalado (kubectl krew install rbac-tool ou binário do GitHub)
  • KubiScan instalado (pip install kubiscan)
  • Kubeaudit instalado (brew install kubeaudit ou de releases do GitHub)
  • Acesso aos logs de auditoria do cluster para correlacionar descobertas de RBAC com acesso real à API

Fluxo de Trabalho

Passo 1: Enumerar ClusterRoles e Roles com Permissões Perigosas

Identifique roles com permissões de curinga, acesso a secrets, execução de pods ou capacidades de escalonamento.

# List all ClusterRoles with wildcard verb access
kubectl get clusterroles -o json | python3 -c "
import json, sys
data = json.load(sys.stdin)
for role in data['items']:
    name = role['metadata']['name']
    for rule in role.get('rules', []):
        verbs = rule.get('verbs', [])
        resources = rule.get('resources', [])
        if '*' in verbs or '*' in resources:
            print(f'ClusterRole: {name}')
            print(f'  Verbs: {verbs}')
            print(f'  Resources: {resources}')
            print(f'  API Groups: {rule.get(\"apiGroups\", [])}')
            print()
"

# Find roles that can read secrets
kubectl get clusterroles -o json | python3 -c "
import json, sys
data = json.load(sys.stdin)
for role in data['items']:
    name = role['metadata']['name']
    for rule in role.get('rules', []):
        resources = rule.get('resources', [])
        verbs = rule.get('verbs', [])
        if ('secrets' in resources or '*' in resources) and ('get' in verbs or 'list' in verbs or '*' in verbs):
            if not name.startswith('system:'):
                print(f'ClusterRole: {name} -> can access secrets (verbs: {verbs})')
"

# Find roles with pod/exec permissions (container escape risk)
kubectl get clusterroles -o json | python3 -c "
import json, sys
data = json.load(sys.stdin)
for role in data['items']:
    name = role['metadata']['name']
    for rule in role.get('rules', []):
        resources = rule.get('resources', [])
        if 'pods/exec' in resources or 'pods/*' in resources:
            print(f'ClusterRole: {name} -> has pods/exec access')
"

Passo 2: Auditar ClusterRoleBindings e RoleBindings

Revise os bindings para identificar quem tem acesso elevado e detectar atribuições de grupo excessivamente amplas.

# List all ClusterRoleBindings with the subjects
kubectl get clusterrolebindings -o json | python3 -c "
import json, sys
data = json.load(sys.stdin)
for binding in data['items']:
    name = binding['metadata']['name']
    role = binding['roleRef']['name']
    subjects = binding.get('subjects', [])
    for subject in subjects:
        kind = subject.get('kind', '')
        subj_name = subject.get('name', '')
        ns = subject.get('namespace', 'cluster-wide')
        print(f'{name} -> Role: {role} | {kind}: {subj_name} ({ns})')
" | sort

# Find bindings to cluster-admin
kubectl get clusterrolebindings -o json | python3 -c "
import json, sys
data = json.load(sys.stdin)
for binding in data['items']:
    if binding['roleRef']['name'] == 'cluster-admin':
        print(f\"Binding: {binding['metadata']['name']}\")
        for subject in binding.get('subjects', []):
            print(f\"  {subject.get('kind')}: {subject.get('name')} (ns: {subject.get('namespace', 'N/A')})\")
"

# Find bindings granting access to all authenticated users
kubectl get clusterrolebindings -o json | python3 -c "
import json, sys
data = json.load(sys.stdin)
for binding in data['items']:
    for subject in binding.get('subjects', []):
        if subject.get('name') in ['system:authenticated', 'system:unauthenticated']:
            print(f\"WARNING: {binding['metadata']['name']} grants {binding['roleRef']['name']} to {subject['name']}\")
"

…

Perguntas frequentes

O que é RBAC no Kubernetes?

RBAC (Role-Based Access Control) é o sistema que controla quem pode fazer o quê dentro de um cluster Kubernetes, definindo permissões baseadas em papéis.

Por que é importante auditar o RBAC?

Auditar o RBAC ajuda a prevenir acessos não autorizados, vazamento de dados e a garantir que apenas as permissões estritamente necessárias sejam concedidas, seguindo o princípio do menor privilégio.

Quais ferramentas são usadas?

São usadas ferramentas como `kubectl`, `rbac-tool`, `KubiScan` e `Kubeaudit` para analisar as configurações de permissão.

Detalhes

Descrição original do autor

Auditing Kubernetes cluster RBAC configurations to identify overly permissive roles, wildcard permissions, dangerous ClusterRoleBindings, service account abuse, and privilege escalation paths using kubectl, rbac-tool, KubiScan, and Kubeaudit. '

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

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