ACK提供巡检功能,帮助您扫描集群中工作负载配置的安全隐患。执行巡检任务后,系统会生成巡检报告,您可以根据报告结果查看并处理风险项,实时了解集群中工作负载的健康状态。
前提条件
集群版本为v1.14及以上版本。如需升级集群,请参见手动升级集群。
如果您当前使用的是RAM用户,请确保已参见下方内容完成RAM授权和RBAC授权。
RAM授权
请完成配置巡检页面的RAM授权操作,确保当前RAM用户拥有操作当前集群的配置巡检页面的权限,否则会出现权限不足无法操作配置巡检页面功能的问题。具体操作,请参见自定义RAM授权策略。
如果您需要使用巡检报告功能,请完成日志服务指定
logproject
(当前集群logtail-ds组件所使用的logproject
)的RAM授权,确保当前RAM用户拥有日志服务指定logproject
的数据读取权限,否则会出现权限不足无法查看巡检报告的问题。具体操作,请参见RAM自定义授权示例。RBAC授权
请完成配置巡检页面涉及资源的RBAC授权,授予RAM用户指定集群的管理员权限,以确保RAM用户拥有操作配置巡检页面中涉及的Kubernetes资源的权限。具体操作,请参见为RAM用户或RAM角色授予RBAC权限。
执行巡检
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
可选:按照页面提示安装并升级巡检组件。
巡检组件security-inspector本身不计费,但会占用您的Pod资源。组件介绍及变更记录,请参见security-inspector。
执行巡检。
重要请在业务低峰期执行巡检操作。
默认巡检所有支持的检查项,您可以在配置巡检页面右上方,单击巡检配置,然后配置巡检时执行的检查项。更多信息,请参见检查项。
立即执行:在配置巡检页面右上方,单击立即执行巡检。
定期执行:在配置巡检页面右上方,单击巡检配置,然后选中定期巡检,并配置巡检周期。
等待巡检完成后,在巡检详情页签,单击巡检结果对应操作列中的详情,查看检查结果。
巡检详情
巡检详情页面通过表格化的方式展示不同工作负载的详细巡检结果,主要包括以下功能:
支持按照是否有风险、命名空间、工作负载类别等条件对结果进行过滤展示工作负载的巡检通过项和风险项数量。
展示巡检结果的各个检查项的详细信息,包括Pod和Container维度的检查状态(已通过、未通过)、检查项详细说明以及加固建议。如有未通过的检查项无需处理,您可以将其加入白名单。
查看工作负载的YAML文件。
巡检报告
巡检报告页面主要展示最近执行的巡检扫描结果,主要包括以下几类信息:
扫描结果概览,包括总的检查条目数、检查各个资源项数目及百分比、整体的健康度。
各大类扫描结果统计,包括报告健康检查、镜像、网络、资源、安全等大类的结果。
各个Workload配置的详细扫描结果,包括资源类别、资源名称、命名空间、检查类型、检查项、检查结果等内容。
检查项
配置巡检功能会扫描并展示以下检查项的扫描结果。
检查项ID | 检查项 | 检查的内容及安全风险 | 修复建议 |
hostNetworkSet | 禁止容器共享主机的网络命名空间 | 通过检查Workload的Pod spec中是否配置了 | 修改Pod spec,删除 示例: |
hostIPCSet | 禁止容器共享主机的IPC命名空间 | 通过检查Workload的Pod spec中是否配置了 | 修改Pod spec,删除 示例: |
hostPIDSet | 禁止容器共享主机的PID命名空间 | 通过检查Workload的Pod spec中是否配置了 | 修改Pod spec,删除 示例: |
hostPortSet | 禁止容器内进程监听节点主机端口 | 通过检查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,根据实际需求只添加必需的Linux Capabilities,删除不需要的Linux Capabilities。 不依赖额外Linux Capabilities,删除所有不需要的Linux Capabilities。示例: 只添加必需的Linux Capabilities,删除所有不需要的Linux Capabilities。示例: |
notReadOnlyRootFileSystem | 开启容器内的文件系统只读功能 | 通过检查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绑定,根据实际情况删除允许匿名用户访问集群资源的权限配置项。 示例: |
事件
事件类型 | 事件名称 | 事件内容示例 | 事件说明 | 处理措施 |
Normal | SecurityInspectorConfigAuditStart | Start to running config audit | 开始执行巡检任务。 | 无需处理。 |
Normal | SecurityInspectorConfigAuditFinished | Finished running once config audit | 巡检任务执行完成。 | 无需处理。 |
Warning | SecurityInspectorConfigAuditHighRiskFound | 2 high risks have been found after running config audit | 巡检执行完之后,发现部分工作负载存在未修复的高风险检查项。 |
|