配置巡檢檢查集群工作負載
ACK提供巡檢功能,幫助您掃描集群中工作負載配置的安全隱患。執(zhí)行巡檢任務后,系統(tǒng)會生成巡檢報告,您可以根據(jù)報告結果查看并處理風險項,實時了解集群中工作負載的健康狀態(tài)。
前提條件
集群版本為v1.14及以上版本。如需升級集群,請參見手動升級集群。
如果您當前使用的是RAM用戶,請確保已參見下方內容完成RAM授權和RBAC授權。
RAM授權
請完成配置巡檢頁面的RAM授權操作,確保當前RAM用戶擁有操作當前集群的配置巡檢頁面的權限,否則會出現(xiàn)權限不足無法操作配置巡檢頁面功能的問題。具體操作,請參見自定義RAM授權策略。
如果您需要使用巡檢報告功能,請完成日志服務指定
logproject
(當前集群logtail-ds組件所使用的logproject
)的RAM授權,確保當前RAM用戶擁有日志服務指定logproject
的數(shù)據(jù)讀取權限,否則會出現(xiàn)權限不足無法查看巡檢報告的問題。具體操作,請參見RAM自定義授權示例。{ "Version": "1", "Statement": [ { "Action": [ "log:Get*", "log:List*" ], "Resource": "acs:log:*:*:project/<指定的Project名稱>/*", "Effect": "Allow" } ] }
RBAC授權
請完成配置巡檢頁面涉及資源的RBAC授權,授予RAM用戶指定集群的管理員權限,以確保RAM用戶擁有操作配置巡檢頁面中涉及的Kubernetes資源的權限。具體操作,請參見為RAM用戶或RAM角色授予RBAC權限。
執(zhí)行巡檢
登錄容器服務管理控制臺,在左側導航欄選擇集群。
在集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇 。
可選:按照頁面提示安裝并升級巡檢組件。
巡檢組件security-inspector本身不計費,但會占用您的Pod資源。組件介紹及變更記錄,請參見security-inspector。
執(zhí)行巡檢。
重要請在業(yè)務低峰期執(zhí)行巡檢操作。
默認巡檢所有支持的檢查項,您可以在配置巡檢頁面右上方,單擊巡檢配置,然后配置巡檢時執(zhí)行的檢查項。更多信息,請參見檢查項。
立即執(zhí)行:在配置巡檢頁面右上方,單擊立即執(zhí)行巡檢。
定期執(zhí)行:在配置巡檢頁面右上方,單擊巡檢配置,然后選中定期巡檢,并配置巡檢周期。
等待巡檢完成后,在巡檢詳情頁簽,單擊巡檢結果對應操作列中的詳情,查看檢查結果。
巡檢詳情
巡檢詳情頁面通過表格化的方式展示不同工作負載的詳細巡檢結果,主要包括以下功能:
支持按照是否有風險、命名空間、工作負載類別等條件對結果進行過濾展示工作負載的巡檢通過項和風險項數(shù)量。
展示巡檢結果的各個檢查項的詳細信息,包括Pod和Container維度的檢查狀態(tài)(已通過、未通過)、檢查項詳細說明以及加固建議。如有未通過的檢查項無需處理,您可以將其加入白名單。
查看工作負載的YAML文件。
巡檢報告
巡檢報告頁面主要展示最近執(zhí)行的巡檢掃描結果,主要包括以下幾類信息:
掃描結果概覽,包括總的檢查條目數(shù)、檢查各個資源項數(shù)目及百分比、整體的健康度。
各大類掃描結果統(tǒng)計,包括報告健康檢查、鏡像、網(wǎng)絡、資源、安全等大類的結果。
各個Workload配置的詳細掃描結果,包括資源類別、資源名稱、命名空間、檢查類型、檢查項、檢查結果等內容。
檢查項
配置巡檢功能會掃描并展示以下檢查項的掃描結果。
檢查項ID | 檢查項 | 檢查的內容及安全風險 | 修復建議 |
hostNetworkSet | 禁止容器共享主機的網(wǎng)絡命名空間 | 通過檢查Workload的Pod spec中是否配置了 | 修改Pod spec,刪除 示例: |
hostIPCSet | 禁止容器共享主機的IPC命名空間 | 通過檢查Workload的Pod spec中是否配置了 | 修改Pod spec,刪除 示例: |
hostPIDSet | 禁止容器共享主機的PID命名空間 | 通過檢查Workload的Pod spec中是否配置了 | 修改Pod spec,刪除 示例: |
hostPortSet | 禁止容器內進程監(jiān)聽節(jié)點主機端口 | 通過檢查Workload的Pod spec中是否配置了 | 修改Pod spec,刪除 示例: |
runAsRootAllowed | 禁止以root用戶啟動容器 | 通過檢查Workload的Pod spec中是否未配置 | 修改Pod spec,增加 示例: |
runAsPrivileged | 禁止以特權模式啟動容器 | 通過檢查Workload的Pod spec中是否配置了 | 修改Pod spec,刪除 示例: |
privilegeEscalationAllowed | 禁止容器內子進程擁有提升權限的能力 | 通過檢查Workload的Pod spec中是否未配置 | 修改Pod spec,增加 示例: |
capabilitiesAdded | 禁用非必需的Linux Capabilities | 通過檢查Workload的Pod spec中的 | 修改Pod spec,根據(jù)實際需求只添加必需的Linux Capabilities,刪除不需要的Linux Capabilities。 不依賴額外Linux Capabilities,刪除所有不需要的Linux Capabilities。示例: 只添加必需的Linux Capabilities,刪除所有不需要的Linux Capabilities。示例: |
notReadOnlyRootFileSystem | 開啟容器內的文件系統(tǒng)只讀功能 | 通過檢查Workload的Pod spec中是否未配置 | 修改Pod spec,增加 示例: 如果需要修改某個目錄下的文件,通過 示例: |
cpuRequestsMissing | 配置運行容器所需的最少CPU資源 | 通過檢查Workload的Pod spec中是否未配置 | 修改Pod spec,增加 示例: |
cpuLimitsMissing | 限制運行容器可使用的最大CPU資源 | 通過檢查Workload的Pod spec中是否未配置 | 修改Pod spec,增加 示例: |
memoryRequestsMissing | 配置運行容器所需的最少內存資源 | 通過檢查Workload的Pod spec中是否未配置 | 修改Pod spec,增加 示例: |
memoryLimitsMissing | 限制容器可使用的最大內存資源 | 通過檢查Workload的Pod spec中是否未配置 | 修改Pod spec,增加 示例: |
readinessProbeMissing | 配置容器就緒探針 | 通過檢查Workload的Pod spec中是否未配置 | 修改Pod spec,增加 示例: |
livenessProbeMissing | 配置容器存活探針 | 通過檢查Workload的Pod spec中是否未配置 | 修改Pod spec,增加 示例: |
tagNotSpecified | 容器使用明確的鏡像版本 | 通過檢查Workload的Pod spec中的 | 修改Pod spec,修改 示例: |
anonymousUserRBACBinding | 禁止匿名用戶訪問集群 | 通過檢查集群內的RBAC(Role-based access control)綁定找出配置了匿名用戶訪問權限的配置項。如果配置了允許匿名用戶訪問集群資源的配置項,則存在被惡意匿名用戶竊取集群敏感信息、攻擊和入侵集群的風險。 | 修改掃描出來的RBAC綁定,根據(jù)實際情況刪除允許匿名用戶訪問集群資源的權限配置項。 示例: |
事件
事件類型 | 事件名稱 | 事件內容示例 | 事件說明 | 處理措施 |
Normal | SecurityInspectorConfigAuditStart | Start to running config audit | 開始執(zhí)行巡檢任務。 | 無需處理。 |
Normal | SecurityInspectorConfigAuditFinished | Finished running once config audit | 巡檢任務執(zhí)行完成。 | 無需處理。 |
Warning | SecurityInspectorConfigAuditHighRiskFound | 2 high risks have been found after running config audit | 巡檢執(zhí)行完之后,發(fā)現(xiàn)部分工作負載存在未修復的高風險檢查項。 |
|