使用集群审计功能

在Kubernetes集群中,API Server的审计日志可以帮助集群管理人员记录或追溯不同用户的日常操作,是集群安全运维中重要的环节。本文旨在帮助您了解阿里云Kubernetes集群API Server审计日志的能力,并根据您的需求为审计日志设置自定义的告警规则。

注意事项


  • 创建集群时候,默认选中使用日志服务,即会自动开通审计报表相关功能。日志服务的计费详情请参见计费说明。若未开通,请参见手动开通审计报表
  • 请不要修改审计报表。如果您有自定义审计报表的需求,请在日志服务管理控制台创建新的报表。

操作步骤


查看审计报表

您可以通过以下两种方式访问审计报表:

  • 登录容器服务管理控制台,在左侧导航栏单击集群,在集群列表目标集群的操作列中,选择更多 > 集群审计
  • 登录容器服务管理控制台,在左侧导航栏单击集群,在集群列表中单击集群名称,进入到集群信息页面。在集群管理页左侧导航栏中,选择安全管理 > 集群审计

容器服务Kubernetes版内置了3个审计日志报表。通过报表,您可以获取以下内容:

  • 所有用户以及系统组件对集群执行的重要操作。
  • 操作的源地址、源地址所属区域以及分布。
  • 各类资源的详细操作列表。
  • 子账号操作详细列表。
  • 重要操作(登录容器、访问保密字典、删除资源等)的详细列表。

审计报表说明

- 审计中心概览

审计中心概览展示Kubernetes集群中的事件整体概览以及重要事件(公网访问、命令执行、删除资源、访问保密字典等)的详细信息。

说明 在该报表中,默认显示一周的统计信息。您可以自定义选择统计时间范围。此外,该报表支持指定Namespace、子账号ID、状态码进行筛选。您可以选择任一一项或多项组合筛选指定范围的事件。

- 资源操作概览

资源操作概览展示Kubernetes集群中常见的计算资源、网络资源以及存储资源的操作统计信息。操作包括创建、更新、删除、访问。

  • 计算资源包括:Deployment、StatefulSet、CronJob、DaemonSet、Job、Pod。
  • 网络资源包括:Service、Ingress。
  • 存储资源包括:ConfigMap、Secret、PersistentVolumeClaim。

说明

  • 在该报表中,默认显示一周的统计信息。您可以自定义选择统计时间范围。此外,该报表支持指定Namespace、子账号ID进行筛选。您可以选择任一一项或多项组合筛选指定范围的事件。
  • 若您需要查看对应资源的详细操作事件,请使用资源操作详细列表。

- 资源操作详细列表

该报表用于展示Kubernetes集群中某类资源的详细操作列表。您需要选择或输入指定的资源类型进行实时查询。该报表会显示资源操作各类事件的总数、Namespace分布、成功率、时序趋势以及详细操作列表等。

说明

  • 若您需要查看Kubernetes中注册的CRD(CustomResourceDefinition)资源或列表中没有列举的其他资源,可以手动输入资源名的复数形式。例如CRD资源为AliyunLogConfig,则输入AliyunLogConfigs。
  • 在该报表中,默认显示一周的统计信息。您可以自定义选择统计时间范围。此外,该报表支持指定Namespace、子账号ID、状态码进行筛选。您可以选择任一一项或多项组合筛选指定范围的事件。

设置告警

若您需要对某些资源的操作进行实时告警,可以通过日志服务的告警功能实现。告警方式支持短信、钉钉机器人、邮件、自定义WebHook和通知中心。详细操作方式请参见日志服务告警配置

说明 关于审计日志的更多查询方式,可以参考审计报表中的查询语句。操作方式为:在日志服务Project详情页中,单击左侧导航栏中的仪表盘,进入指定的仪表盘(报表),展开指定分析图表右上角的折叠列表,并单击查看分析详情。详细操作方式请参见查看分析详情

示例:对容器执行命令时告警

某公司对于Kubernetes集群使用有严格限制,不允许用户登录容器或对容器执行命令,如果有用户执行命令时需要立即给出告警,并希望告警时能够显示用户登录的具体容器、执行的命令、操作人、事件ID、时间、操作源IP等信息。