implementing-opa-gatekeeper-for-policy-enforcement
Faz seu agente aplicar regras de segurança personalizadas em um sistema chamado Kubernetes, impedindo configurações incorretas antes que aconteçam.
O que ela faz
Este recurso ajuda a garantir que tudo o que você coloca no seu cluster Kubernetes siga regras específicas. Ele age como um porteiro, verificando se as solicitações de recursos estão em conformidade antes de serem aceitas.
Quando usar
- ✓Quando você quer garantir que todos os recursos no seu cluster Kubernetes tenham etiquetas específicas.
- ✓Quando você quer impedir que contêineres com permissões excessivas sejam executados.
- ✓Quando você quer restringir quais imagens de contêiner podem ser usadas no seu cluster.
Exemplo do que pedir para a IA
“Configure o OPA Gatekeeper para garantir que todos os pods tenham a etiqueta 'ambiente' e que nenhum contêiner privilegiado seja implantado.”
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
Mensagem pronta para colar
Como funciona
Ele funciona instalando um componente chamado OPA Gatekeeper no seu cluster Kubernetes usando o Helm. Depois, você define regras (ConstraintTemplates) e aplica essas regras a recursos específicos (Constraints) para validar, modificar ou bloquear solicitações.
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-opa-gatekeeper-for-policy-enforcementOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/implementing-opa-gatekeeper-for-policy-enforcement/SKILL.md -o SKILL.mdConteú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 OPA Gatekeeper para Aplicação de Políticas
Visão Geral
OPA Gatekeeper é um controlador de admissão do Kubernetes que aplica políticas escritas em Rego. Ele usa ConstraintTemplates (modelos de política com lógica Rego) e Constraints (políticas instanciadas com parâmetros) para validar, mutar ou negar requisições de recursos do Kubernetes no momento da admissão.
Quando Usar
- Ao implantar ou configurar capacidades de implementação de OPA Gatekeeper para aplicação de políticas em seu ambiente
- Ao estabelecer controles de segurança alinhados a requisitos de conformidade
- Ao construir ou melhorar a arquitetura de segurança para este domínio
- Ao realizar avaliações de segurança que exigem esta implementação
Pré-requisitos
- Cluster Kubernetes v1.24+
- Helm 3
- kubectl com acesso cluster-admin
- Familiaridade com a linguagem de políticas Rego
Instalando o Gatekeeper
# Install via Helm
helm repo add gatekeeper https://open-policy-agent.github.io/gatekeeper/charts
helm repo update
helm install gatekeeper gatekeeper/gatekeeper \
--namespace gatekeeper-system --create-namespace \
--set replicas=3 \
--set audit.replicas=1 \
--set audit.logLevel=INFO
# Verify
kubectl get pods -n gatekeeper-system
kubectl get crd | grep gatekeeper
Verificar Instalação
# Check webhook
kubectl get validatingwebhookconfigurations gatekeeper-validating-webhook-configuration
# Check CRDs
kubectl get crd constrainttemplates.templates.gatekeeper.sh
kubectl get crd configs.config.gatekeeper.sh
Exemplos de ConstraintTemplate
1. Exigir Labels em Recursos
# template-required-labels.yaml
apiVersion: templates.gatekeeper.sh/v1
kind: ConstraintTemplate
metadata:
name: k8srequiredlabels
spec:
crd:
spec:
names:
kind: K8sRequiredLabels
validation:
openAPIV3Schema:
type: object
properties:
labels:
type: array
items:
type: string
targets:
- target: admission.k8s.gatekeeper.sh
rego: |
package k8srequiredlabels
violation[{"msg": msg, "details": {"missing_labels": missing}}] {
provided := {label | input.review.object.metadata.labels[label]}
required := {label | label := input.parameters.labels[_]}
missing := required - provided
count(missing) > 0
msg := sprintf("Missing required labels: %v", [missing])
}
# constraint-require-team-label.yaml
apiVersion: constraints.gatekeeper.sh/v1beta1
kind: K8sRequiredLabels
metadata:
name: require-team-label
spec:
match:
kinds:
- apiGroups: [""]
kinds: ["Namespace"]
- apiGroups: ["apps"]
kinds: ["Deployment"]
parameters:
labels:
- "team"
- "environment"
2. Bloquear Contêineres Privilegiados
# template-block-privileged.yaml
apiVersion: templates.gatekeeper.sh/v1
kind: ConstraintTemplate
metadata:
name: k8sblockprivileged
spec:
crd:
spec:
names:
kind: K8sBlockPrivileged
targets:
- target: admission.k8s.gatekeeper.sh
rego: |
package k8sblockprivileged
violation[{"msg": msg}] {
container := input.review.object.spec.containers[_]
container.securityContext.privileged == true
msg := sprintf("Privileged container not allowed: %v", [container.name])
}
violation[{"msg": msg}] {
container := input.review.object.spec.initContainers[_]
container.securityContext.privileged == true
msg := sprintf("Privileged init container not allowed: %v", [container.name])
}
# constraint-block-privileged.yaml
apiVersion: constraints.gatekeeper.sh/v1beta1
kind: K8sBlockPrivileged
metadata:
name: block-privileged-containers
spec:
match:
kinds:
- apiGroups: [""]
kinds: ["Pod"]
namespaces:
- "production"
- "staging"
3. Restringir Registros de Imagens de Contêiner
# template-allowed-repos.yaml
apiVersion: templates.gatekeeper.sh/v1
kind: ConstraintTemplate
metadata:
name: k8sallowedrepos
spec:
crd:
spec:
names:
kind: K8sAllowedRepos
validation:
openAPIV3Schema:
type: object
properties:
repos:
type: array
items:
type: string
targets:
- target: admission.k8s.gatekeeper.sh
rego: |
package k8sallowedrepos
…
Perguntas frequentes
O que é OPA Gatekeeper?
É uma ferramenta que ajuda a aplicar políticas personalizadas no Kubernetes, garantindo que os recursos criados ou modificados estejam em conformidade com as regras definidas.
O que são ConstraintTemplates e Constraints?
ConstraintTemplates são modelos de políticas com a lógica definida em Rego. Constraints são instâncias dessas políticas, onde você especifica quais recursos devem ser verificados e com quais parâmetros.
Por que usar o Helm?
O Helm é um gerenciador de pacotes para Kubernetes que simplifica a instalação e o gerenciamento de aplicações e componentes, como o OPA Gatekeeper.
Detalhes
Descrição original do autor
Deploys OPA Gatekeeper via Helm as a Kubernetes admission controller and writes ConstraintTemplates with Rego plus instantiated Constraints to validate, mutate, or deny resource requests at admission time. Use when enforcing custom policy-as-code at admission on Kubernetes v1.24+, blocking non-compliant workloads before scheduling, or expressing a rule that built-in controls cannot. Keywords: Gate
Popularidade
- Estrelas no GitHub
- 35 mil
- Posição no ranking
- #5925
- Licença
- Apache-2.0
- Atualizada em
- 31/08/2026
Comentários
- …
Mais skills deste repositório
abusing-dpapi-for-credential-access
Dá ao seu agente de IA instruções prontas para uma tarefa específica, para ele fazer melhor e mais rápido.
mukul975/Anthropic-Cybersecurity-Skills
abusing-shadow-credentials-for-privesc
Ensina seu agente de IA a escrever textos claros e bem estruturados.
mukul975/Anthropic-Cybersecurity-Skills
achieving-cmmc-level-2-compliance
Ajuda seu agente a preparar um ambiente para conformidade com CMMC Nível 2. Ele implementa requisitos de segurança e gerencia a documentação necessária.
mukul975/Anthropic-Cybersecurity-Skills
acquiring-disk-image-with-dd-and-dcfldd
Ajuda seu agente a criar cópias exatas de discos rígidos. Isso é útil para garantir que nenhuma informação seja perdida ou alterada durante investigações.
mukul975/Anthropic-Cybersecurity-Skills
Skills parecidas
django-security
Ajuda seu agente a implementar práticas de segurança em aplicações Django. Ele foca em autenticação, autorização e prevenção contra ataques comuns, garantindo um código mais seguro.
affaan-m/ECC
laravel-security
Ajuda seu agente a proteger aplicações Laravel contra ameaças. Implementa práticas de segurança para autenticação, autorização e prevenção de ataques comuns.
affaan-m/ECC
module-regression
Ajuda seu agente a gerenciar mudanças em projetos grandes. Garante que alterações em uma parte do código não quebrem outras partes.
affaan-m/ECC