本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
EKS Auto 模式 - 安全性
提示
透過 Amazon EKS 研討會探索
Amazon EKS Auto Mode 透過將 AWS 的安全管理延伸到控制平面之外,以包含工作者節點和核心叢集元件,來引入增強的安全功能。此全方位的安全模型可協助組織維持強大的安全狀態,同時降低營運開銷。
共同責任模型 - EKS Auto 模式
EKS Auto 模式的主要安全性增強功能包括:
-
減少攻擊面的最低容器最佳化作業系統
-
透過 EC2 受管執行個體強制執行安全最佳實務
-
使用強制性節點輪換的自動化安全修補程式管理
-
內建節點隔離和安全性界限
-
以最少的必要許可簡化 IAM 整合
EKS Auto Mode 預設會強制執行這些安全控制,協助組織滿足其安全和合規要求,同時簡化叢集操作。此方法符合defense-in-depth原則,在基礎設施、節點和工作負載層級提供多層安全控制。
重要
雖然 EKS Auto Mode 提供增強型安全功能,但組織仍應在應用程式層實作適當的安全控制,並遵循叢集上執行之工作負載的安全最佳實務。
安全架構
EKS Auto Mode 會跨 EKS 基礎設施的多層實作安全控制,從控制平面到個別節點。了解此架構對於有效管理和保護 EKS 叢集至關重要。
控制平面安全性
EKS Auto Mode 中的 EKS 控制平面維持與傳統 EKS 叢集相同的高安全標準,同時新增新的安全功能:
-
信封加密:所有 Kubernetes API 資料都會使用信封加密自動加密。
-
KMS 整合:使用 AWS KMS 搭配 Kubernetes KMS 提供者 v2,以及 AWS 擁有的金鑰或客戶受管金鑰 (CMK) 的選項。
-
增強型元件管理:自動擴展、ENI 管理和 EBS 控制器等關鍵元件會移至叢集之外,並由 AWS 管理。
-
改善安全控制和稽核功能:除了標準 EKS 叢集之外,EKS Auto Mode 所需的許可是透過叢集 IAM 角色而非個別節點角色進行完整管理。
IAM 整合與存取管理
EKS Auto Mode 透過 EKS 存取項目和 EKS Pod 身分,提供與 AWS Identity and Access Management (IAM) 的增強整合。
叢集存取管理
EKS Auto Mode 透過叢集存取管理 (CAM) API 推出叢集存取管理的改善:
-
透過 標準化身分驗證模式
EKS_API -
透過 API 型存取管理增強安全性
-
使用存取項目和存取政策簡化存取控制
您可以建立存取項目來管理叢集存取:
aws eks create-access-entry \ --cluster-name ${EKS_CLUSTER_NAME} \ --principal-arn arn:aws:iam::${ACCOUNT_ID}:role/${IAM_ROLE_NAME} \ --type STANDARD
重要
雖然仍然可以建立具有CONFIG_MAP_AND_API身分驗證模式的 EKS Auto Mode 叢集,但這不是標準方法,強烈建議對新叢集使用預設API身分驗證模式。相較於舊版 ConfigMap 型方法, API 型身分驗證可提供增強的安全性和簡化的存取管理。
EKS Pod 身分識別
EKS Auto Mode 隨附已部署的 Pod Identity Agent,可讓您以簡化的方式將 AWS IAM 許可授予 Pod:
-
在沒有 OIDC 提供者組態的情況下簡化 IAM 許可管理
-
與 IRSA 相比,降低了營運開銷
-
透過工作階段標記和 ABAC 支援增強安全性
aws eks create-pod-identity-association \ --cluster-name ${EKS_CLUSTER_NAME} \ --role-arn arn:aws:iam::${AWS_ACCOUNT_ID}:role/${IAM_ROLE_NAME} \ --namespace ${NAMESPACE} \ --service-account ${SERVICE_ACCOUNT_NAME}
重要
與 IRSA 相比,Pod Identity 是 EKS Auto Mode 中 IAM 許可的建議方法,因為它提供增強的安全功能和簡化的管理。
節點 IAM 角色
EKS Auto Mode 使用新的 AmazonEKSWorkerNodeMinimalPolicy ,只提供 EKS Auto Mode 節點操作所需的許可。這些許可:
-
與傳統節點政策相比,提供一組減少的許可
-
遵守最低權限原則
-
由 AWS 自動管理和更新
這種最少的政策方法透過限制節點及其工作負載可用的許可,協助改善安全狀態。
節點安全性
EKS Auto Mode 在節點層級引入了幾項重大的安全改進:
EC2 受管執行個體安全性
EKS Auto Mode 節點使用具有增強型安全屬性的 Amazon EC2 受管執行個體:
-
IAM 強制執行的限制,可防止可能影響 AWS 操作節點能力的操作
-
不可變的基礎設施模式,其中組態變更需要節點替換
-
在 21 天內進行強制性節點取代,以確保定期安全性更新
-
使用具有控制跳轉限制的 IMDSv2 限制存取執行個體中繼資料
作業系統安全
作業系統是 Bottlerocket
-
唯讀根檔案系統
-
根據預設,SELinux 已啟用強制存取控制
-
使用唯一 SELinux MCS 標籤的自動 Pod 隔離
-
停用 SSH 存取和移除不必要的服務
-
透過節點輪換的自動化安全修補程式
節點元件安全性
節點元件設定了安全最佳實務:
-
使用安全預設值設定的 Kubelet
-
容器執行時間強化組態
-
自動化憑證管理和輪換
-
受限制node-to-control-plane通訊
網路安全
EKS Auto Mode 實作數個網路安全功能,以確保叢集內和外部資源的安全通訊:
VPC CNI 網路政策
EKS Auto Mode 利用 Amazon VPC CNI 外掛程式的原生 Kubernetes 網路政策支援:
-
與上游 Kubernetes 網路政策 API 整合
-
允許對 pod-to-pod精細控制
-
同時支援輸入和輸出規則
若要在 EKS Auto Mode 中啟用網路政策支援,您需要使用configMap資訊清單設定 VPC CNI 附加元件。請見此處範例:
apiVersion: v1 kind: ConfigMap metadata: name: amazon-vpc-cni namespace: kube-system data: enable-network-policy: "true"
定義網路政策支援也需要在節點類別中設定,如下所示:
apiVersion: eks.amazonaws.com/v1 kind: NodeClass metadata: name: example-node-class spec: networkPolicy: DefaultAllow networkPolicyEventLogs: Enabled
啟用後,您可以建立網路政策來控制流量:
apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: default-deny spec: podSelector: {} policyTypes: - Ingress - Egress
增強型 ENI 管理
EKS Auto Mode 可改善彈性網路界面 (ENI) 管理的安全性:
-
AWS 受管 ENI 連接和組態
-
控制流量與資料流量的分隔
-
自動化 IP 地址管理,減少節點上所需的權限
儲存體安全性
EKS Auto Mode 為暫時性和持久性儲存提供增強的安全功能:
暫時性儲存
-
寫入暫時性磁碟區的所有資料都會自動加密
-
使用業界標準的 AES-256 密碼編譯演算法
-
由服務無縫處理的加密和解密
EBS 磁碟區
-
根和資料 EBS 磁碟區一律加密
-
磁碟區設定為在執行個體終止時刪除
-
您可以選擇指定用於加密的自訂 KMS 金鑰
EFS 整合
-
支援使用 EFS 傳輸中的加密
-
EFS 檔案系統的自動靜態加密
-
與 EFS 存取點整合以增強存取控制
重要
搭配 EKS Auto Mode 使用 EFS 時,請確保在 EFS 檔案系統層級設定適當的加密設定,因為 EKS Auto Mode 不會直接管理 EFS 加密。
監控和記錄
EKS Auto Mode 提供增強的監控和記錄功能,可協助您維持叢集安全狀態和操作狀態的可見性。
控制平面記錄
EKS Auto Mode 會維護與標準 EKS 相同的控制平面記錄功能,但預設會啟用所有日誌以進行增強型監控。
-
日誌會傳送至 Amazon CloudWatch Logs
-
根據預設,EKS Auto Mode 會啟用所有控制平面日誌:API 伺服器、稽核、驗證器、控制器管理員和排程器
-
EKS Auto Mode 可讓您詳細了解叢集操作和安全性事件
重要
控制平面記錄會產生 CloudWatch 中日誌儲存的額外費用。仔細考慮您的記錄策略,以平衡安全需求與成本管理。
節點層級記錄
EKS Auto Mode 可增強節點層級記錄:
-
系統日誌會自動收集,並可透過 CloudWatch Logs 存取
-
節點日誌會在節點終止後保留,以協助事件後分析
-
增強對節點層級安全事件和操作問題的可見性
Amazon GuardDuty 整合
EKS Auto Mode 叢集與 Amazon GuardDuty 無縫整合,以增強威脅偵測。功能包括:
-
自動化掃描控制平面稽核日誌
-
可啟用工作負載監控的執行期監控
-
與現有 GuardDuty 調查結果和提醒機制整合
若要在 Amazon GuardDuty for Kubernetes 稽核日誌上啟用 EKS Auto Mode 保護,您可以執行下列命令:
aws guardduty update-detector \ --detector-id 12abc34d567e8fa901bc2d34e56789f0 \ --data-sources '{"Kubernetes":{"AuditLogs":{"Enable":true}}}'
Amazon GuardDuty 整合以實現執行期安全性
Amazon GuardDuty 為 EKS Auto Mode 叢集提供基本的執行期安全監控,提供全面的威脅偵測和安全監控功能。此整合特別重要,因為它有助於即時識別潛在的安全威脅和惡意活動。
EKS Auto Mode 的主要 GuardDuty 功能
-
執行期監控:
-
持續監控執行時間行為
-
偵測惡意或可疑活動
-
識別潛在的容器逸出嘗試
-
監控異常程序執行或網路連線
-
-
Kubernetes 特定威脅偵測:
-
識別可疑的 Pod 部署嘗試
-
偵測遭入侵的容器
-
監控特權容器啟動
-
識別可疑的服務帳戶用量
-
-
全面的調查結果類型:
-
政策:Kubernetes/* - 偵測違反安全最佳實務的行為
-
影響:Kubernetes/* - 識別可能受影響的資源
-
探索:Kubernetes/* - 偵測偵察活動
-
執行:Kubernetes/* - 識別可疑的執行模式
-
持續性:Kubernetes/* - 偵測潛在的持續性威脅
-
若要在 Amazon GuardDuty for Kubernetes 稽核日誌和執行期監控上啟用 EKS Auto Mode 保護,您可以執行下列命令:
aws guardduty update-detector \ --detector-id 12abc34d567e8fa901bc2d34e56789f0 \ --data-sources '{ "Kubernetes": { "AuditLogs": {"Enable": true}, "RuntimeMonitoring": {"Enable": true} } }'
重要
EKS Auto Mode 叢集會自動支援 GuardDuty 執行期監控,可在節點層級提供增強的安全性可見性,而無需額外的組態。
GuardDuty 調查結果整合
GuardDuty 調查結果可以與其他 AWS 服務整合,以進行自動化回應:
-
EventBridge 規則:
{ "source": ["aws.guardduty"], "detail-type": ["GuardDuty Finding"], "detail": { "type": ["Runtime:Container/*", "Runtime:Kubernetes/*"], "severity": [4, 5, 6, 7, 8] } }
-
Security Hub 整合:
# Enable Security Hub integration
aws securityhub enable-security-hub \
--enable-default-standards \
--tags '{"Environment":"Production"}' \
--region us-west-2
使用 EKS Auto 模式的 GuardDuty 最佳實務
-
啟用所有調查結果類型:
-
同時啟用 Kubernetes 稽核日誌監控和執行期監控
-
設定所有嚴重性層級的問題清單
-
-
實作自動化回應:
-
為高嚴重性問題清單建立 EventBridge 規則
-
與 AWS Security Hub 整合,以進行集中式安全管理
-
在適當的情況下設定自動修復動作
-
-
定期檢閱和調校:
-
定期檢閱 GuardDuty 調查結果
-
根據您的環境調校偵測閾值
-
根據新的問題清單類型更新回應程序
-
-
跨帳戶管理:
-
考慮使用 GuardDuty 管理員帳戶進行集中式管理
-
啟用跨多個帳戶的調查結果彙總
-
警告
雖然 GuardDuty 提供全面的安全監控,但它應該是defense-in-depth策略的一部分,其中包括其他安全控制,例如網路政策、Pod 安全標準和適當的 RBAC 組態。
常見問答集 (FAQ)
問:EKS Auto Mode 在安全性方面與標準 EKS 有何不同? 答:EKS Auto Mode 透過 EC2 受管執行個體、自動修補、強制節點輪換和內建安全控制提供增強的安全性。它透過讓 AWS 管理更多安全層面來減少營運開銷,同時保持強大的安全狀態。
問:我是否仍然可以使用現有的安全工具和政策搭配 EKS Auto 模式? 答:是,EKS Auto Mode 與大多數現有的安全工具和政策相容。不過,由於 EKS Auto Mode 節點的受管性質,某些節點層級的安全工具可能需要調整。
問:如何在 EKS Auto 模式下部署安全代理程式和監控工具? 答:在 EKS Auto 模式下,安全代理程式和監控工具應該部署為 Kubernetes 工作負載 (通常是 DaemonSets,預設在每個節點上部署一個 Pod 執行個體),而不是直接安裝在節點作業系統上。此方法符合 EKS Auto Mode 的不可變基礎設施模型。範例:
apiVersion: apps/v1 kind: DaemonSet metadata: name: security-agent namespace: security spec: selector: matchLabels: app: security-agent template: metadata: labels: app: security-agent spec: containers: - name: security-agent image: security-vendor/agent:latest securityContext: privileged: false # Use specific capabilities instead of privileged mode capabilities: add: ["NET_ADMIN", "SYS_ADMIN"]
問:第三方安全解決方案是否與 EKS Auto Mode 相容? 答:許多熱門的第三方安全解決方案已更新為支援 EKS Auto Mode,但一律建議您與安全廠商驗證特定版本和部署需求,因為 EKS Auto Mode 的支援可能需要更新版本或特定部署組態。
問:EKS Auto Mode 中的安全代理程式有哪些限制? 答:金鑰限制包括:
-
無法直接存取修改節點的作業系統
-
節點輪換之間沒有持續性
-
必須與容器型部署相容
-
需要遵守節點不可變性
-
可能需要不同的權限組態
-
節點的任何持續變更都應透過
NodePools和NodeClasses資源完成。
注意
雖然 EKS Auto Mode 可能需要調整您的安全工具部署策略,但這些變更通常會導致更可維護且安全的組態符合雲端原生最佳實務。EKS Auto Mode 預期會完全接管其管理的大部分功能。因此,如果您可以取得這些功能的任何手動變更,EKS Auto Mode 可能會覆寫或捨棄這些功能。
問:我可以搭配 EKS Auto Mode 使用自訂 AMIs 嗎? 答:EKS Auto Mode 目前不支援自訂 AMIs。這是根據設計,因為 AWS 會在共同責任模型中管理節點的安全性、修補和維護。EKS Auto Mode 節點使用由 AWS 最佳化和維護的特殊 Bottlerocket 變體。
問:以 EKS Auto 模式自動輪換節點的頻率為何? 答:EKS Auto Mode 中的節點的生命週期上限為 21 天。它們將在此限制之前自動取代,以確保定期安全性更新和修補程式應用程式。
問:SSH 是否可以進入 EKS Auto Mode 節點進行故障診斷? 答:否,EKS Auto 模式不提供直接 SSH 存取。反之,您可以使用 NodeDiagnostic 自訂資源定義 (CRD) 來收集系統日誌和偵錯資訊。
問:根據預設,網路政策支援是否在 EKS Auto Mode 中啟用? 答:目前,網路政策支援需要透過 VPC CNI 附加元件組態明確啟用。啟用後,您可以使用標準 Kubernetes 網路政策。
問:我應該將 IRSA 或 Pod Identity 與 EKS Auto Mode 搭配使用嗎? 答:雖然兩者都支援,但 Pod Identity 是 EKS Auto 模式的建議方法,因為它已包含 Pod Identity Security 代理程式附加元件,並提供增強的安全功能和簡化的管理。
問:我是否仍然可以在 EKS Auto 模式中使用 aws-auth ConfigMap? 答:ConfigMap aws-auth 是已棄用的功能。建議使用以 API 為基礎的預設身分驗證方法,以增強安全性並簡化存取管理。
問:如何在 EKS Auto 模式下監控安全事件? 答:EKS Auto Mode 與多個監控解決方案整合,包括 GuardDuty、CloudWatch 和 CloudTrail。GuardDuty 特別針對 EKS 工作負載提供增強的執行期安全監控。
問:如何從 EKS Auto Mode 節點收集日誌? 答:使用 NodeDiagnostic CRD,它會自動將日誌上傳到 S3 儲存貯體。您也可以使用 CloudWatch Container Insights 和 AWS Distro for OpenTelemetry。
注意
當新功能新增至 EKS Auto Mode 且我們收到客戶的常見問題時,此常見問答集區段會定期更新。