如何在GKE中将自定义Kubernetes审计策略YAML传入主节点?
在GKE中配置Kubernetes API审计策略
GKE作为托管式Kubernetes集群,无法直接SSH登录主节点修改/etc/kubernetes/manifests/kube-apiserver.yaml,需通过GKE官方提供的配置方式实现审计策略的配置,主要分为两种场景:
1. 使用默认托管审计日志(Cloud Audit Logs)
GKE默认集成GCP Cloud Audit Logs,自动记录Kubernetes API的审计事件,无需手动修改API Server配置:
- 审计日志会自动同步到Cloud Logging,可在GCP控制台「日志资源管理器」中通过过滤条件
resource.type="k8s_cluster"+logName="projects/[你的项目ID]/logs/cloudaudit.googleapis.com%2Fdata_access"查看 - 该方式适用于大多数基础审计需求,涵盖核心API操作的记录
2. 自定义审计策略(高级场景)
若需要更精细的审计规则(如指定特定资源的记录级别、过滤请求类型),可通过以下步骤配置:
步骤1:编写自定义审计策略YAML
创建audit-policy.yaml文件,示例规则如下:
apiVersion: audit.k8s.io/v1 kind: Policy rules: # 记录Pod资源的请求与响应详情 - level: RequestResponse resources: - group: "" resources: ["pods"] # 仅记录Service资源的元数据信息 - level: Metadata resources: - group: "" resources: ["services"]
步骤2:通过gcloud命令更新集群
使用gcloud container clusters update命令应用自定义策略:
gcloud container clusters update [集群名称] \ --zone [集群所在区域] \ --audit-policy-file=audit-policy.yaml
关键注意事项
- 自定义审计策略的日志会发送到Cloud Logging的
k8s_audit日志流,可通过logName="projects/[你的项目ID]/logs/k8s_audit"过滤查看,与默认Cloud Audit Logs共存 - 仅GKE标准集群(非Autopilot模式)支持自定义审计策略,Autopilot集群仅能使用默认托管审计
- 集群更新后,GKE会自动重启API Server组件生效,无需手动操作主节点
内容的提问来源于stack exchange,提问作者kristen_1024
相关产品推荐
相关产品推荐

