implementing-policy-as-code-with-open-policy-agent
Faz seu agente aplicar políticas de segurança como código em sistemas como Kubernetes, garantindo que as regras sejam seguidas automaticamente.
O que ela faz
Esta ferramenta ajuda a garantir que seus sistemas de computador (especificamente Kubernetes) sigam regras de segurança e organização. Ela faz isso verificando e bloqueando configurações que não estejam de acordo com as políticas definidas.
Quando usar
- ✓Quando você quer garantir que todos os seus sistemas sigam as mesmas regras de segurança.
- ✓Quando você precisa impedir que configurações incorretas sejam aplicadas nos seus sistemas.
- ✓Quando você quer ter um registro de auditoria das suas políticas de segurança.
Exemplo do que pedir para a IA
“Configure o Open Policy Agent para bloquear a criação de Pods sem limites de CPU definidos.”
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
Você define regras em uma linguagem chamada Rego e usa o Gatekeeper para aplicá-las no Kubernetes. Ele age como um porteiro, verificando cada nova configuração antes de permitir que ela seja aplicada.
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-policy-as-code-with-open-policy-agentOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/implementing-policy-as-code-with-open-policy-agent/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 Política como Código com Open Policy Agent
Quando Usar
- Ao impor políticas de segurança organizacional em clusters Kubernetes de forma programática
- Ao exigir controle de admissão que bloqueia a criação de recursos não conformes
- Ao implementar governança de políticas que pode ser versionada, testada e auditada
- Ao padronizar regras de segurança em múltiplos clusters e ambientes
- Ao precisar de um motor de políticas flexível que se estenda além do Kubernetes para APIs e CI/CD
Não use para varredura de vulnerabilidades (use Trivy/Checkov), para detecção de ameaças em tempo de execução (use Falco), ou para imposição de políticas de rede (use Kubernetes NetworkPolicy ou Calico).
Pré-requisitos
- Cluster Kubernetes com acesso de administrador para instalação do Gatekeeper
- Helm para implantação do Gatekeeper
- OPA CLI ou conftest para testes locais de políticas
- Conhecimento de Rego para autoria de políticas
Fluxo de Trabalho
Passo 1: Instalar OPA Gatekeeper
# Install Gatekeeper via Helm
helm repo add gatekeeper https://open-policy-agent.github.io/gatekeeper/charts
helm install gatekeeper gatekeeper/gatekeeper \
--namespace gatekeeper-system --create-namespace \
--set replicas=3 \
--set audit.replicas=1 \
--set audit.writeToRAMDisk=true
Passo 2: Criar Modelos de Restrição
# templates/k8s-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}] {
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])
}
---
# templates/k8s-container-limits.yaml
apiVersion: templates.gatekeeper.sh/v1
kind: ConstraintTemplate
metadata:
name: k8scontainerlimits
spec:
crd:
spec:
names:
kind: K8sContainerLimits
validation:
openAPIV3Schema:
type: object
properties:
cpu:
type: string
memory:
type: string
targets:
- target: admission.k8s.gatekeeper.sh
rego: |
package k8scontainerlimits
violation[{"msg": msg}] {
container := input.review.object.spec.containers[_]
not container.resources.limits.cpu
msg := sprintf("Container %v has no CPU limit", [container.name])
}
violation[{"msg": msg}] {
container := input.review.object.spec.containers[_]
not container.resources.limits.memory
msg := sprintf("Container %v has no memory limit", [container.name])
}
---
# templates/k8s-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])
}
Passo 3: Aplicar Restrições
# constraints/require-labels.yaml
apiVersion: constraints.gatekeeper.sh/v1beta1
kind: K8sRequiredLabels
metadata:
name: require-team-labels
spec:
enforcementAction: deny
match:
kinds:
- apiGroups: [""]
kinds: ["Namespace"]
- apiGroups: ["apps"]
kinds: ["Deployment", "StatefulSet"]
excludedNamespaces:
- kube-system
- gatekeeper-system
parameters:
labels:
- "team"
- "environment"
- "cost-center"
---
# constraints/block-privileged.yaml
apiVersion: constraints.gatekeeper.sh/v1beta1
…
Perguntas frequentes
O que é 'Policy as Code'?
É a ideia de gerenciar e aplicar políticas (como regras de segurança) usando código, da mesma forma que você gerencia o código do seu software. Isso permite versionamento, testes e automação.
O que é Open Policy Agent (OPA)?
É uma ferramenta de código aberto que permite definir e aplicar políticas de forma centralizada em diferentes sistemas.
O que é Gatekeeper?
É um componente que funciona com o OPA dentro do Kubernetes. Ele intercepta as solicitações para criar ou modificar recursos e as valida contra as políticas definidas.
Detalhes
Descrição original do autor
Implements policy-as-code enforcement with Open Policy Agent (OPA) and Gatekeeper for Kubernetes and CI/CD pipelines, covering writing Rego policies, deploying OPA Gatekeeper as a Kubernetes admission controller, testing policies in development, and integrating policy evaluation into deployment pipelines. Use when writing Rego policies, deploying Gatekeeper admission control, or gating CI/CD pipel
Popularidade
- Estrelas no GitHub
- 35 mil
- Posição no ranking
- #5935
- 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