Skip to main content

More Info:

Define an audit policy and forward audit logs to a centralized logging system such as CloudWatch or Elasticsearch. Without collection and management, audit records cannot be retained or reviewed.

Risk Level

High

Address

Security

Compliance Standards

  • CIS EKS

Triage and Remediation

Remediation

Manual Steps

  1. Verify EKS control plane audit logging is enabled and scoped correctly
    • On any admin machine with AWS CLI access, list EKS clusters and describe the target cluster:
    • Confirm cluster.logging.clusterLogging has types including "api", "audit" (or "all" types, depending on region support) with "enabled": true and that logs are being sent to CloudWatch.
  2. Confirm audit policy configuration exists and matches organizational requirements
    • On any machine with kubectl access, check for an audit policy ConfigMap or file (common patterns):
    • Compare the contents against the required policy (e.g., at minimum capturing Metadata for pods and other critical resources), and have security/operations sign off that scope, retention, and sensitivity are appropriate.
  3. Check that audit logs are being generated and delivered to CloudWatch
    • On any admin machine with AWS CLI access, identify the CloudWatch log groups associated with the cluster:
    • Inspect a sample of recent audit log events:
    • Confirm that Kubernetes API calls (create/update/delete, authN/Z events, etc.) are present and timestamps are recent.
  4. Validate forwarding to any additional centralized logging/SIEM system
    • If you use a log forwarder (e.g., Fluent Bit/Fluentd/Vector/Custom):
    • Confirm configuration forwards CloudWatch (or node-level audit logs, if used) to the designated backend (Elasticsearch, OpenSearch, Splunk, etc.) and that events from this cluster are visible there (verify by querying on a known pod/namespace/user and recent timestamp).
  5. Review retention, access control, and integrity protections for audit logs
    • On any admin machine with AWS CLI access, verify CloudWatch retention and access:
    • Confirm retention meets policy (e.g., 90/180/365 days), that IAM policies on the log group restrict write/delete/reader access appropriately, and that any downstream system (e.g., S3 archive, SIEM) also meets retention and integrity requirements.
  6. If gaps are found, update configuration and re‑verify
    • Enable/adjust EKS control plane logging (via console, aws eks update-cluster-config, or IaC) to include the required log types and CloudWatch destination.
    • Update the audit policy ConfigMap or backing IaC to meet your logging scope, then redeploy.
    • Re-run the commands from steps 1–3 to confirm that audit logs are enabled, correctly scoped, delivered to CloudWatch, and visible in your central logging solution.
kubectl cannot configure EKS control plane audit logging or host-level audit settings on control plane nodes; these are managed via the cloud provider console/CLI/IaC and node-level configuration. Refer to the Manual Steps section for how to review and configure audit policies and centralized log forwarding.