Skip to main content
skill CX Codex

kubernetes-hardening — Claude Code skill: what it does, how to install

Generates hardened Kubernetes manifests with strict security contexts, network policies, and RBAC rules. Useful when preparing workloads for security compliance.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add BagelHole/DevOps-Security-Agent-Skills --skill kubernetes-hardening -a claude-code
Open on GitHub

What kubernetes-hardening does

This skill guides your AI assistant in enforcing Kubernetes security controls across manifests. It provides patterns for restricted Pod Security Standards labels on namespaces, default seccomp profiles, and non-root user execution.

Workload configurations generated with this skill drop all Linux capabilities and enforce readOnlyRootFilesystem: true. Turning on a read-only root will break containers that expect writable local storage, so temporary directories need explicit volume mounts.

Beyond pod configurations, the skill supplies templates for default-deny network policies, restricted ingress rules, and least-privilege RBAC roles for service accounts.

What it helps with

  • enforce restricted Pod Security Standards on Kubernetes namespaces
  • configure pod and container security contexts to drop capabilities and block root execution
  • create default-deny network policies to isolate pod traffic
  • generate least-privilege RBAC roles and role bindings

Example prompts for the agent

  • Apply restricted Pod Security Standards labels to the production namespace
  • Add a hardened securityContext with readOnlyRootFilesystem and dropped capabilities to this pod
  • Create a default-deny NetworkPolicy and allow ingress only on port 8080 for web pods

How to install kubernetes-hardening

1Skills CLI (Vercel)

npx skills add BagelHole/DevOps-Security-Agent-Skills --skill kubernetes-hardening -a claude-code

2Manually: put the files in place

~/.claude/skills/kubernetes-hardening/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/kubernetes-hardening/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about kubernetes-hardening

How to install kubernetes-hardening in Claude Code?

Run npx skills add BagelHole/DevOps-Security-Agent-Skills --skill kubernetes-hardening -a claude-code. The skill definition will be placed in ~/.claude/skills/kubernetes-hardening/SKILL.md.

What does kubernetes-hardening do?

It teaches coding agents how to secure Kubernetes clusters and manifests using Pod Security Standards, container security contexts, network policies, and RBAC rules.

Which container security settings does the skill implement?

It sets runAsNonRoot: true, user UID 1000, seccompProfile to RuntimeDefault, allowPrivilegeEscalation: false, read-only root filesystems, and drops all Linux capabilities.

Source text

SKILL.md · MIT
---
name: kubernetes-hardening
description: Implement Kubernetes security contexts, Pod Security Standards, and network policies. Secure cluster components and workloads. Use when hardening Kubernetes deployments or meeting security compliance.
license: MIT
metadata:
  author: devops-skills
  version: "1.0"
---

# Kubernetes Hardening

Secure Kubernetes clusters and workloads.

## When to Use This Skill

Use this skill when:
- Hardening Kubernetes clusters
- Implementing Pod Security Standards
- Configuring network policies
- Meeting security compliance

## Pod Security Standards

```yaml
# Namespace with restricted policy
apiVersion: v1
kind: Namespace
metadata:
  name: production
  labels:
    pod-security.kubernetes.io/enforce: restricted
    pod-security.kubernetes.io/audit: restricted
    pod-security.kubernetes.io/warn: restricted
```

## Security Context

```yaml
apiVersion: v1
kind: Pod
metadata:
  name: secure-pod
spec:
  securityContext:
    runAsNonRoot: true
    runAsUser: 1000
    runAsGroup: 1000
    fsGroup: 1000
    seccompProfile:
      type: RuntimeDefault
  containers:
  - name: app
    image: myapp:latest
    securityContext:
      allowPrivilegeEscalation: false
      readOnlyRootFilesystem: true
      capabilities:
        drop: ["ALL"]
```

## Network Policies

```yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny-all
spec:
  podSelector: {}
  policyTypes:
  - Ingress
  - Egress
---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-web
spec:
  podSelector:
    matchLabels:
      app: web
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: frontend
    ports:
    - port: 8080
```

## RBAC

```yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: app-reader
rules:
- apiGroups: [""]
  resources: ["pods", "services"]
  verbs: ["get", "list"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: app-reader-binding
subjects:
- kind: ServiceAccount
  name: myapp
roleRef:
  kind: Role
  name: app-reader
  apiGroup: rbac.authorization.k8s.io
```

## Best Practices

- Enable Pod Security Standards
- Implement network policies
- Use RBAC with least privilege
- Enable audit logging
- Secure etcd with encryption
- Use service mesh for mTLS
- Regular security scanning

## Related Skills

- [kubernetes-ops](../../../devops/orchestration/kubernetes-ops/) - K8s operations
- [container-hardening](../container-hardening/) - Container security

© devops-skills · MIT · BagelHole/DevOps-Security-Agent-Skills

Similar skills

Everything for Security →

From the same set127

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor