概览
GKE on AWS 支持 Cloud API 和 Kubernetes 集群级层的审核日志记录。本文档提供有关 Kubernetes 集群审核日志的信息。如需了解 Cloud API 审核日志记录,请参阅 Cloud API 审核日志记录信息。
GKE on AWS 利用 Kubernetes 审核日志记录功能,该功能会按时间顺序记录对集群的 Kubernetes API 服务器进行的调用。审核日志适合用于调查可疑的 API 请求以及收集统计信息。
在集群版本 1.23 及更高版本中,GKE on AWS 默认在 Google Cloud 项目中写入 Cloud Audit Logs。写入 Cloud Audit Logs 将具有以下优势:
- 所有 GKE 集群的审核日志都可以集中管理。
- 写入 Cloud Audit Logs 的日志条目是不可变的。
- Cloud Audit Logs 条目会保留 400 天。
- Cloud Audit Logs 包含在 Anthos 的价格中。
限制
适用于 GKE on AWS 的 Cloud Audit Logs 的当前版本具有一些限制:
不支持数据访问(get、list、watch 请求)日志记录。
不支持修改 Kubernetes 审核政策。
Cloud Audit Logs 不能应对长时间的网络中断。如果无法将日志条目导出到 Google Cloud,则它们将缓存在 10G 磁盘缓冲区中。如果该缓冲区填满,则会丢弃后续条目。
准备工作
如需启用 Cloud Audit Logs,您必须添加从控制层面对 servicecontrol.googleapis.com
的出站访问权限。
审核政策
Cloud Audit Logs 行为由静态配置的 Kubernetes 审核日志记录政策决定。更改此政策目前不受支持,但将在未来版本中提供。
访问 Cloud Audit Logs
您可以在 Google Cloud 控制台中或使用 Google Cloud CLI 访问 Cloud Audit Logs。
控制台
在 Google Cloud 控制台中,转到 Logging 菜单中的日志浏览器页面。
点击 toggle_off 显示查询切换开关。
在文本框中填写以下过滤条件:
resource.type="k8s_cluster" logName="projects/PROJECT_ID/logs/externalaudit.googleapis.com%2Factivity"
屏幕如下所示:
点击运行查询以显示来自 GKE on AWS 集群(已配置为登录此项目)的所有审核日志。
gcloud
列出项目的管理员活动日志中适用于 k8s_cluster
资源类型的前两个日志条目:
gcloud logging read \ 'logName="projects/PROJECT_ID/logs/externalaudit.googleapis.com%2Factivity" AND resource.type="k8s_cluster" ' \ --limit 2 \ --freshness 300d
其中,PROJECT_ID 是您的项目 ID。
输出内容会显示两个日志条目。请注意,对于每个日志条目,logName
字段的值为 projects/PROJECT_ID/logs/externalaudit.googleapis.com%2Factivity
,并且 protoPayload.serviceName
等于 gkemulticloud.googleapis.com
。