# Pod Security Standards 部署指南 > **版本**: K4.3 > **用途**: Kubernetes 內建安全機制 > **建立日期**: 2026-03-29 (台北時間) --- ## 1. 部署 Namespace Labels ```bash # 在 K3s Master (192.168.0.120) 執行 kubectl apply -f k8s/pod-security/namespace-labels.yaml # 或從本機透過 kubeconfig kubectl --kubeconfig=/path/to/k3s.yaml apply -f k8s/pod-security/namespace-labels.yaml ``` ## 2. 驗證 ```bash # 檢查 namespace labels kubectl get ns -o custom-columns='NAME:.metadata.name,ENFORCE:.metadata.labels.pod-security\.kubernetes\.io/enforce' # 預期結果: # awoooi-prod baseline # kube-state-metrics baseline # kured privileged # descheduler restricted # velero baseline # argocd baseline ``` ## 3. PSS 級別說明 | 級別 | 說明 | 適用場景 | |------|------|---------| | `privileged` | 無限制 | Kured (hostPID + 重啟) | | `baseline` | 基本限制 | 大多數應用 | | `restricted` | 最嚴格 | 無特權需求的工具 | ## 4. 標籤說明 | 標籤 | 作用 | |------|------| | `enforce` | 違反時拒絕 Pod | | `warn` | 違反時發出警告 | | `audit` | 記錄到審計日誌 | ## 5. 驗證 Pod 合規 ```bash # 測試 Pod 是否合規 kubectl auth can-i create pod --namespace=awoooi-prod --as=system:serviceaccount:default:default # 檢查是否有警告 kubectl get events -n awoooi-prod --field-selector reason=FailedCreate ``` --- ## 架構圖 ``` ┌─────────────────────────────────────────────────────────────┐ │ K3s Cluster PSS │ ├─────────────────────────────────────────────────────────────┤ │ privileged │ kured (hostPID + node reboot required) │ ├─────────────────┼───────────────────────────────────────────┤ │ baseline │ awoooi-prod, kube-state-metrics, │ │ │ velero, argocd │ ├─────────────────┼───────────────────────────────────────────┤ │ restricted │ descheduler (純 API 存取) │ └─────────────────┴───────────────────────────────────────────┘ ```