kubernetes-hardening について
kubernetes-hardeningは、Kubernetesクラスターとワークロードを保護するためのスキルです。Podのセキュリティ、ネットワークポリシー、RBACなどの設定方法を扱います。
主な機能
- 01Pod Security Standardsの設定
- 02セキュリティコンテキストの設定
- 03ネットワークポリシーの設定
- 04最小権限RBACの適用
- 05クラスターのハードニング
活用シーン
- 01本番ネームスペースに制限ポリシーを適用
- 02Podのネットワーク通信を制限
- 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 にサービスメッシュを使用する
- 定期的にセキュリティスキャンを実施する
関連スキル
- kubernetes-ops - K8s の運用
- container-hardening - コンテナーのセキュリティ
コメント
Markdown 対応