ASD

K8s Security Policies

Implementa políticas de seguridad de Kubernetes, incluyendo NetworkPolicy, PodSecurityPolicy y RBAC, para seguridad de nivel productivo.

Estrellas
38.8k

en todo el repo

Actividad
34

0–100, la ruta de este skill

Actualizado
hace 5 meses

último commit aquí

Commits
0

últimos 90 días

Contexto
1.8k tok

58 tok en reposo

Paquete
3 archivos

14 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

npx -y skills add wshobson/agents --skill k8s-security-policies --agent claude-code

Se instala solo en este repositorio.

Qué hace

  • Genera manifiestos YAML de NetworkPolicy, RBAC (Role/ClusterRole/RoleBinding) y Pod Security Standards por namespace
  • Configura securityContext restringido a nivel de pod y contenedor (non-root, readOnlyRootFilesystem, drop ALL capabilities)
  • Crea ConstraintTemplate y Constraint de OPA Gatekeeper para admission control
  • Define PeerAuthentication y AuthorizationPolicy de Istio para mTLS y control de acceso
  • Proporciona comandos de troubleshooting con kubectl para NetworkPolicy y RBAC

Úsalo cuando

  • Implementar segmentación de red en un clúster
  • Configurar Pod Security Standards y RBAC de mínimo privilegio
  • Crear políticas de seguridad para cumplimiento normativo
  • Asegurar clústeres multi-tenant o implementar admission control

No lo uses cuando

    Qué lo activa

    Di cualquiera de estas frases y el agente debería cargar este skill.

    • Crea una NetworkPolicy que bloquee todo el tráfico por defecto en el namespace production
    • Configura RBAC de mínimo privilegio para un ServiceAccount
    • Aplica Pod Security Standards restringidos a mi namespace
    • Genera una ConstraintTemplate de OPA Gatekeeper que exija labels obligatorias

    SKILL.md

    En inglés

    Kubernetes Security Policies

    Comprehensive guide for implementing NetworkPolicy, PodSecurityPolicy, RBAC, and Pod Security Standards in Kubernetes.

    Purpose

    Implement defense-in-depth security for Kubernetes clusters using network policies, pod security standards, and RBAC.

    When to Use This Skill

    • Implement network segmentation
    • Configure pod security standards
    • Set up RBAC for least-privilege access
    • Create security policies for compliance
    • Implement admission control
    • Secure multi-tenant clusters

    Pod Security Standards

    1. Privileged (Unrestricted)

    apiVersion: v1
    kind: Namespace
    metadata:
      name: privileged-ns
      labels:
        pod-security.kubernetes.io/enforce: privileged
        pod-security.kubernetes.io/audit: privileged
        pod-security.kubernetes.io/warn: privileged
    

    2. Baseline (Minimally restrictive)

    apiVersion: v1
    kind: Namespace
    metadata:
      name: baseline-ns
      labels:
        pod-security.kubernetes.io/enforce: baseline
        pod-security.kubernetes.io/audit: baseline
        pod-security.kubernetes.io/warn: baseline
    

    3. Restricted (Most restrictive)

    apiVersion: v1
    kind: Namespace
    metadata:
      name: restricted-ns
      labels:
        pod-security.kubernetes.io/enforce: restricted
        pod-security.kubernetes.io/audit: restricted
        pod-security.kubernetes.io/warn: restricted
    

    Network Policies

    Default Deny All

    apiVersion: networking.k8s.io/v1
    kind: NetworkPolicy
    metadata:
      name: default-deny-all
      namespace: production
    spec:
      podSelector: {}
      policyTypes:
        - Ingress
        - Egress
    

    Allow Frontend to Backend

    apiVersion: networking.k8s.io/v1
    kind: NetworkPolicy
    metadata:
      name: allow-frontend-to-backend
      namespace: production
    spec:
      podSelector:
        matchLabels:
          app: backend
      policyTypes:
        - Ingress
      ingress:
        - from:
            - podSelector:
                matchLabels:
                  app: frontend
          ports:
            - protocol: TCP
              port: 8080
    

    Allow DNS

    apiVersion: networking.k8s.io/v1
    kind: NetworkPolicy
    metadata:
      name: allow-dns
      namespace: production
    spec:
      podSelector: {}
      policyTypes:
        - Egress
      egress:
        - to:
            - namespaceSelector:
                matchLabels:
                  name: kube-system
          ports:
            - protocol: UDP
              port: 53
    

    Reference: See assets/network-policy-template.yaml

    RBAC Configuration

    Role (Namespace-scoped)

    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      name: pod-reader
      namespace: production
    rules:
      - apiGroups: [""]
        resources: ["pods"]
        verbs: ["get", "watch", "list"]
    

    ClusterRole (Cluster-wide)

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: secret-reader
    rules:
      - apiGroups: [""]
        resources: ["secrets"]
        verbs: ["get", "watch", "list"]
    

    RoleBinding

    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: read-pods
      namespace: production
    subjects:
      - kind: User
        name: jane
        apiGroup: rbac.authorization.k8s.io
      - kind: ServiceAccount
        name: default
        namespace: production
    roleRef:
      kind: Role
      name: pod-reader
      apiGroup: rbac.authorization.k8s.io
    

    Reference: See references/rbac-patterns.md

    Pod Security Context

    Restricted Pod

    apiVersion: v1
    kind: Pod
    metadata:
      name: secure-pod
    spec:
      securityContext:
        runAsNonRoot: true
        runAsUser: 1000
        fsGroup: 1000
        seccompProfile:
          type: RuntimeDefault
      containers:
        - name: app
          image: myapp:1.0
          securityContext:
            allowPrivilegeEscalation: false
            readOnlyRootFilesystem: true
            capabilities:
              drop:
                - ALL
    

    Policy Enforcement with OPA Gatekeeper

    ConstraintTemplate

    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

    apiVersion: constraints.gatekeeper.sh/v1beta1
    kind: K8sRequiredLabels
    metadata:
      name: require-app-label
    spec:
      match:
        kinds:
          - apiGroups: ["apps"]
            kinds: ["Deployment"]
      parameters:
        labels: ["app", "environment"]
    

    Service Mesh Security (Istio)

    PeerAuthentication (mTLS)

    apiVersion: security.istio.io/v1beta1
    kind: PeerAuthentication
    metadata:
      name: default
      namespace: production
    spec:
      mtls:
        mode: STRICT
    

    AuthorizationPolicy

    apiVersion: security.istio.io/v1beta1
    kind: AuthorizationPolicy
    metadata:
      name: allow-frontend
      namespace: production
    spec:
      selector:
        matchLabels:
          app: backend
      action: ALLOW
      rules:
        - from:
            - source:
                principals: ["cluster.local/ns/production/sa/frontend"]
    

    Best Practices

    1. Implement Pod Security Standards at namespace level
    2. Use Network Policies for network segmentation
    3. Apply least-privilege RBAC for all service accounts
    4. Enable admission control (OPA Gatekeeper/Kyverno)
    5. Run containers as non-root
    6. Use read-only root filesystem
    7. Drop all capabilities unless needed
    8. Implement resource quotas and limit ranges
    9. Enable audit logging for security events
    10. Regular security scanning of images

    Compliance Frameworks

    CIS Kubernetes Benchmark

    • Use RBAC authorization
    • Enable audit logging
    • Use Pod Security Standards
    • Configure network policies
    • Implement secrets encryption at rest
    • Enable node authentication

    NIST Cybersecurity Framework

    • Implement defense in depth
    • Use network segmentation
    • Configure security monitoring
    • Implement access controls
    • Enable logging and monitoring

    Troubleshooting

    NetworkPolicy not working:

    # Check if CNI supports NetworkPolicy
    kubectl get nodes -o wide
    kubectl describe networkpolicy <name>
    

    RBAC permission denied:

    # Check effective permissions
    kubectl auth can-i list pods --as system:serviceaccount:default:my-sa
    kubectl auth can-i '*' '*' --as system:serviceaccount:default:my-sa
    

    Related Skills

    • k8s-manifest-generator - For creating secure manifests
    • gitops-workflow - For automated policy deployment

    Reproducido de wshobson/agents bajo licencia MIT. Leer esta página en markdown.

    Archivos

    3 archivos en el paquete. Solo se lee SKILL.md al activarse — las referencias se cargan si el skill decide que las necesita.

    Antes de instalar

    Requiere un clúster Kubernetes con CNI compatible con NetworkPolicy y, opcionalmente, OPA Gatekeeper o Istio instalados.

    Necesita en el PATH:kubectl

    Detalles

    Creador
    wshobson
    Categoría
    Seguridad
    Licencia
    MIT
    Recursos incluidos
    referencias
    Repositorio
    wshobson/agents
    Código fuente
    Ver SKILL.md

    Etiquetas

    Más de wshobson/agents

    Este repo incluye 180 skills. Si instalas uno, normalmente ya tienes los demás.

    Úsalo al seleccionar y colocar iconos, imágenes, SVGs, diagramas o infografías de apoyo aprobados en un PPTX editable.

    Costo de contexto al activarse
    344 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 26 días
    documentos

    Úsalo cuando pidan optimizar un prompt, mejorar su rendimiento, diseñar una plantilla, aplicar chain-of-thought, few-shot prompting o técnicas avanzadas de prompt engineering para producción.

    Costo de contexto al activarse
    1.3k tok
    Tamaño del paquete
    10 archivos
    Última actualización
    el mes pasado
    herramientas desarrollo

    Úsalo al redactar o reparar una especificación JSON con coordenadas explícitas para un PPTX editable.

    Costo de contexto al activarse
    489 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 26 días
    documentos

    Úsalo para validar o reparar un PPTX editable en cuanto a geometría, accesibilidad, editabilidad nativa, linaje de fuente e integridad del paquete OOXML.

    Costo de contexto al activarse
    409 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 26 días
    documentos

    Úsalo para analizar un PPTX de referencia en modo solo lectura: estructura, tema, tipografía, ritmo de layout, diagnósticos, catálogos de plantillas derivados o inspección segura del paquete OOXML.

    Costo de contexto al activarse
    689 tok
    Tamaño del paquete
    8 archivos
    Última actualización
    hace 26 días
    documentos

    Úsalo al preparar la narrativa, las fuentes y el contexto de diseño para un nuevo deck PPTX editable.

    Costo de contexto al activarse
    415 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 26 días
    documentos

    Skills relacionados

    Domina las mejores prácticas de seguridad en smart contracts para prevenir vulnerabilidades comunes e implementar patrones seguros en Solidity.

    Costo de contexto al activarse
    891 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 2 meses
    seguridad

    Configura un gating humano para las acciones de revisión de agentes IA en Claude Code, con un rastro de aprobación auditable criptográficamente y gates aplicados con Cedar.

    Costo de contexto al activarse
    1.4k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    el mes pasado
    seguridad

    Domina patrones de autenticación y autorización (JWT, OAuth2, sesiones, RBAC) para construir sistemas de control de acceso seguros y escalables.

    Costo de contexto al activarse
    669 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 2 meses
    seguridad