Pular para o conteúdo
Skillpedia
Segurança35 mil · #5934

implementing-pod-security-admission-controller

Ajuda seu agente a configurar regras de segurança para contêineres no Kubernetes, garantindo que apenas aplicações seguras sejam executadas.

O que ela faz

Este recurso ajuda a configurar e gerenciar o controlador de segurança de Pods do Kubernetes (PSA). Ele garante que seus aplicativos rodem de forma segura, seguindo padrões definidos.

Quando usar

  • ✓Ao configurar a segurança de pods pela primeira vez em um cluster Kubernetes.
  • ✓Para definir regras de segurança padrão para todo o cluster.
  • ✓Para verificar por que um pod foi bloqueado ou por que a segurança não está funcionando como esperado.

Exemplo do que pedir para a IA

“Como configuro o nível de segurança 'restrito' para o namespace 'producao'?”

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/implementing-pod-security-admission-controller/SKILL.md

Mensagem pronta para colar

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

Você define regras de segurança aplicando rótulos (labels) específicos aos namespaces ou configurando um arquivo centralizado para todo o cluster. Isso diz ao Kubernetes quais padrões de segurança cada namespace deve seguir.

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 implementing-pod-security-admission-controller

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/implementing-pod-security-admission-controller/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.

Implementando o Controlador de Admissão Pod Security

Visão Geral

O Pod Security Admission (PSA) é um controlador de admissão nativo do Kubernetes (estável desde a v1.25) que aplica os Padrões de Segurança de Pod (Pod Security Standards) no nível do namespace. Ele substitui o PodSecurityPolicy (PSP), que foi descontinuado, e oferece três perfis de segurança: Privileged, Baseline e Restricted, com três modos de aplicação: enforce, audit e warn.

Quando Usar

  • Configurando o PSA em um cluster pela primeira vez
  • Definindo a aplicação padrão em todo o cluster via AdmissionConfiguration
  • Isentando namespaces do sistema, contas de serviço ou classes de runtime da aplicação
  • Depurando por que um pod foi rejeitado, ou por que a aplicação está silenciosamente sem funcionar
  • Planejando um rollout seguro: warn e audit primeiro, enforce quando as violações chegarem a zero
  • Extraindo violações do PSA do log de auditoria do kube-apiserver

Não é esta habilidade: decidir sob qual perfil uma carga de trabalho deve ser executada, ou quais securityContext mudanças o Restricted exige. Use implementing-kubernetes-pod-security-standards.

Pré-requisitos

  • Kubernetes v1.25+ (PSA é estável/GA)
  • kubectl com acesso cluster-admin
  • Sem dependência de ferramentas externas - PSA é nativo do kube-apiserver

Padrões de Segurança de Pod

Perfil Privileged

  • Sem restrições - Nenhuma restrição aplicada
  • Caso de uso: Pods de nível de sistema (kube-system, monitoramento)

Perfil Baseline

  • Minimamente restritivo - Previne escalonamento de privilégios conhecido
  • Bloqueia: contêineres privilegiados, hostPID, hostIPC, hostNetwork, hostPorts, certos tipos de volume, adição de capacidades além dos padrões de runtime

Perfil Restricted

  • Altamente restritivo - Segue as melhores práticas de segurança
  • Requer: não root, drop ALL capabilities, seccomp RuntimeDefault, considerações sobre sistema de arquivos raiz somente leitura
  • Bloqueia: Tudo no Baseline, mais execução como root, escalonamento de privilégios, tipos de volume não aprovados

Modos de Aplicação

Modo Comportamento Caso de Uso
enforce Rejeita pods que violam a política Aplicação em produção
audit Registra violações no log de auditoria Avaliação pré-aplicação
warn Exibe avisos para o usuário Feedback do desenvolvedor

Implementação

Aplicar ao Namespace via Labels

# Restricted enforcement with audit and warn
apiVersion: v1
kind: Namespace
metadata:
  name: production
  labels:
    pod-security.kubernetes.io/enforce: restricted
    pod-security.kubernetes.io/enforce-version: v1.28
    pod-security.kubernetes.io/audit: restricted
    pod-security.kubernetes.io/audit-version: v1.28
    pod-security.kubernetes.io/warn: restricted
    pod-security.kubernetes.io/warn-version: v1.28
# Baseline enforcement for staging
apiVersion: v1
kind: Namespace
metadata:
  name: staging
  labels:
    pod-security.kubernetes.io/enforce: baseline
    pod-security.kubernetes.io/enforce-version: v1.28
    pod-security.kubernetes.io/audit: restricted
    pod-security.kubernetes.io/audit-version: v1.28
    pod-security.kubernetes.io/warn: restricted
    pod-security.kubernetes.io/warn-version: v1.28
# Privileged for system namespaces
apiVersion: v1
kind: Namespace
metadata:
  name: kube-system
  labels:
    pod-security.kubernetes.io/enforce: privileged

Aplicar Labels com kubectl

# Set restricted enforcement
kubectl label namespace production \
  pod-security.kubernetes.io/enforce=restricted \
  pod-security.kubernetes.io/enforce-version=v1.28 \
  pod-security.kubernetes.io/audit=restricted \
  pod-security.kubernetes.io/warn=restricted

# Set baseline enforcement
kubectl label namespace staging \
  pod-security.kubernetes.io/enforce=baseline \
  pod-security.kubernetes.io/audit=restricted \
  pod-security.kubernetes.io/warn=restricted

# Check current labels
kubectl get namespace production -o jsonpath='{.metadata.labels}' | jq .

Teste de Dry-Run

# Test what would happen with restricted policy on a namespace
kubectl label --dry-run=server --overwrite namespace staging \
  pod-security.kubernetes.io/enforce=restricted

# Output shows existing pods that would violate the policy
# Warning: existing pods in namespace "staging" violate the new PodSecurity enforce level "restricted:latest"

Padrões em Todo o Cluster (AdmissionConfiguration)

# /etc/kubernetes/psa-config.yaml
apiVersion: apiserver.config.k8s.io/v1
kind: AdmissionConfiguration
plugins:
  - name: PodSecurity
    configuration:
      apiVersion: pod-security.admission.config.k8s.io/v1

…
Perguntas frequentes

Quais são os níveis de segurança disponíveis?

Existem três níveis: 'Privileged' (sem restrições), 'Baseline' (minimamente restritivo) e 'Restricted' (altamente restritivo, seguindo melhores práticas).

Quais são os modos de aplicação?

Os modos são 'enforce' (bloqueia pods que violam a regra), 'audit' (registra as violações) e 'warn' (avisa o usuário sobre violações).

Preciso instalar algo extra?

Não, o controlador de segurança de Pods (PSA) já vem integrado nas versões mais recentes do Kubernetes (v1.25+).

Detalhes

Descrição original do autor

Configures and operates the Kubernetes Pod Security Admission (PSA) controller that enforces Pod Security Standards: namespace enforce/audit/warn labels, cluster-wide defaults via AdmissionConfiguration, exemptions for usernames, runtime classes and namespaces, version pinning, and troubleshooting pods the controller rejected. Use when wiring PSA up on a cluster, setting cluster-wide default enfor

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

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