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