mcpField
K
kubernetes-hardening

kubernetes-hardening

github.com/bagelholeセキュリティ1.2k368 回インストール23 週間前に更新
リポジトリ

kubernetes-hardening について

kubernetes-hardeningは、Kubernetesクラスターとワークロードを保護するためのスキルです。Podのセキュリティ、ネットワークポリシー、RBACなどの設定方法を扱います。

主な機能

  1. 01Pod Security Standardsの設定
  2. 02セキュリティコンテキストの設定
  3. 03ネットワークポリシーの設定
  4. 04最小権限RBACの適用
  5. 05クラスターのハードニング

活用シーン

  1. 01本番ネームスペースに制限ポリシーを適用
  2. 02Podのネットワーク通信を制限
  3. 03アプリに最小権限のロールを設定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/bagelhole/devops-security-agent-skills --skill kubernetes-hardening

インストール後、Claude Code で/kubernetes-hardeningを入力して読み込まれたか確認します。

詳細

Kubernetes のセキュリティ強化

Kubernetes クラスターとワークロードを保護します。

このスキルを使用する場面

次のような場合にこのスキルを使用します。

  • Kubernetes クラスターのセキュリティを強化する
  • Pod セキュリティ標準を導入する
  • ネットワークポリシーを設定する
  • セキュリティコンプライアンス要件を満たす

Pod セキュリティ標準

# 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

セキュリティコンテキスト

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"]

ネットワークポリシー

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

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

ベストプラクティス

  • Pod セキュリティ標準を有効にする
  • ネットワークポリシーを導入する
  • 最小権限の原則に基づいて RBAC を使用する
  • 監査ログを有効にする
  • 暗号化によって etcd を保護する
  • mTLS にサービスメッシュを使用する
  • 定期的にセキュリティスキャンを実施する

関連スキル

コメント