Skip to main content

CIS Google Kubernetes Engine (GKE) 1.4.0 Benchmark

Preview Feature

This article describes functionality that is currently in preview.

Lacework provides compliance policies based on CIS Google Kubernetes Engine (GKE) Benchmark v1.4.0 (or CIS GKE 1.4.0 Benchmark for short).

Once you have integrated your GKE environment with Lacework, you can check whether your resources are compliant with the benchmark recommendations.

Visibility and Usage in the Lacework Console

You can use the CIS GKE 1.4.0 Benchmark in the following ways:

Prerequisites

Ensure you have integrated your GKE environment with the Lacework Compliance platform. Completing this will prepare your environment for the CIS GKE 1.4.0 Benchmark:

CIS GKE 1.4.0 Benchmark Policies

All policies in the CIS GKE 1.4.0 Benchmark are enabled by default.

You can enable or disable them using one of the following methods outlined in this section.

Enable or Disable Policies in the Lacework Console

On the Policies page, use the framework:cis-gke-1-4-0 tag to filter for CIS GKE 1.4.0 policies only.

You can enable or disable each one using the status toggle.

Alternatively, see Batch Update Policies to enable or disable multiple policies at once.

note

Manual policies do not have a status toggle as there is no functional check to enable. For more information about manual policies, see Automated vs Manual Policies.

Enable or Disable Policies using the Lacework CLI

tip

If you have not set up the Lacework CLI before, see the Lacework CLI guide to get started.

Enable or disable all the CIS GKE 1.4.0 policies using the following commands in the Lacework CLI:

Enable all policies
lacework policy enable --tag framework:cis-gke-1-4-0
Disable all policies
lacework policy disable --tag framework:cis-gke-1-4-0

Enable or disable specific CIS GKE 1.4.0 policies using the following command examples in the Lacework CLI:

Enable lacework-global-733
lacework policy enable lacework-global-733
Disable lacework-global-733
lacework policy disable lacework-global-733

Policy Mapping for CIS GKE 1.4.0

The CIS GKE 1.4.0 recommendations are mapped to Lacework global policies. See the following sections for the mappings used.

Table key:

  • Control ID - The CIS GKE 1.4.0 Benchmark security control identifier.
  • Title - The policy/recommendation title.
  • Lacework Policy ID - The Lacework policy identifier.
  • CIS Assessment - Whether CIS have determined that the security control can be assessed automatically or if it requires manual verification.
  • Lacework Assessment - Whether Lacework have determined that the security control can be assessed automatically or if it requires manual verification.
  • Severity - The severity of the policy (as determined by Lacework).

This section is not applicable for managed Kubernetes clusters, therefore, it contains no controls.

Automated vs Manual Policies

Lacework automates compliance policies where possible. This allows the Lacework platform to monitor your environment resources to check whether they are compliant with the benchmark recommendations.

For some benchmark recommendations, it is not possible to automate the policy checks in a Google Cloud environment. These policies are manual, and you must verify such policies manually. Lacework provides the manual remediation steps for these policies (when available).

Automated Policies (that were deemed manual)

In some cases, Lacework can automate certain CIS benchmark controls that were deemed as manual by CIS.

The following table outlines the CIS Google Kubernetes Engine (GKE) 1.4.0 Benchmark policies that fall within this category:

Click to expand
Control IDLacework Policy IDTitle
3.1.1lacework-global-729Set the proxy kubeconfig file permissions to 644 or more restrictive
3.1.2lacework-global-730Set the proxy kubeconfig file ownership to root:root
3.1.3lacework-global-731Ensure that the kubelet configuration file has permissions set to 644 or more restrictive
3.1.4lacework-global-732Set the kubelet configuration file ownership to root:root
3.2.4lacework-global-736Set the --read-only-port argument to 0
3.2.7lacework-global-739Ensure that the --hostname-override argument is not set
4.1.1lacework-global-744Ensure that the cluster-admin role is only used where required
4.1.2lacework-global-745Minimize access to secrets
4.1.3lacework-global-746Minimize wildcard use in Roles
4.1.3lacework-global-823Minimize wildcard use in ClusterRoles
4.1.4lacework-global-747Minimize access to create pods in Roles
4.1.4lacework-global-824Minimize access to create pods in ClusterRoles
4.1.5lacework-global-748Ensure that default service accounts are not actively used in Roles
4.1.5lacework-global-825Ensure that default service accounts are not actively used in ClusterRoles
4.1.6lacework-global-749Ensure that Service Account Tokens are only mounted where necessary
4.1.6lacework-global-826Ensure that default service accounts are not automatically mounting their Kubernetes API access token
4.2.1lacework-global-750Minimize the admission of privileged containers
4.2.2lacework-global-751Minimize the admission of containers wishing to share the host process ID namespace
4.2.3lacework-global-752Minimize the admission of containers wishing to share the host Inter-Process Communication (IPC) namespace
4.2.4lacework-global-753Minimize the admission of containers wishing to share the host network namespace
4.2.5lacework-global-754Minimize the admission of containers with allowPrivilegeEscalation
4.2.6lacework-global-783Minimize the admission of root containers
4.2.7lacework-global-755Minimize the admission of containers with added capabilities
5.1.4lacework-global-792Minimize Container Registries to only those approved
5.2.2lacework-global-762Prefer using dedicated GCP Service Accounts and Workload Identity
5.5.4lacework-global-767When creating New Clusters - Automate Google Kubernetes Engine (GKE) version management using Release Channels
5.5.5lacework-global-768Enable Shielded Google Kubernetes Engine (GKE) Nodes
5.6.7lacework-global-773Enable Network Policy and set as appropriate
5.9.1lacework-global-778Enable Customer-Managed Encryption Keys (CMEK) for Google Kubernetes Engine (GKE) Persistent Disks (PD)
5.10.4lacework-global-802Consider Google Kubernetes Engine (GKE) Sandbox for running untrusted workloads

Manual Policies (that were deemed automated)

In some cases, Lacework cannot automate certain CIS benchmark controls that were deemed as automated by CIS.

This is often due to one of the following reasons:

  • Scope is defined by the user.
  • It requires configuring other products or API permissions that are out of scope.
  • Known issues for audit procedure described by the CIS control.

The following table outlines the CIS GKE 1.4.0 Benchmark policies that fall within this category:

Click to expand
CIS GKE 1.4.0 Control IDTitleLacework Policy ID
5.1.1Ensure Image Vulnerability Scanning using Google Container Registry (GCR) Container Analysis or a third party providerlacework-global-758

Adjusted Controls

4.1.3 Minimize wildcard use in Roles and ClusterRoles

This control has been split into two policies to check Roles and ClusterRoles separately.

The table below outlines each policy and their new title:

Click to expand
Control IDLacework Policy IDTitle
4.1.3lacework-global-746Minimize wildcard use in Roles
4.1.3lacework-global-823Minimize wildcard use in ClusterRoles

4.1.4 Minimize access to create pods

This control has been split into two policies to check Roles and ClusterRoles separately.

The table below outlines each policy and their new title:

Click to expand
Control IDLacework Policy IDTitle
4.1.4lacework-global-747Minimize access to create pods in Roles
4.1.4lacework-global-824Minimize access to create pods in ClusterRoles

4.1.5 Ensure that default service accounts are not actively used

This control has been split into two policies to check Roles and ClusterRoles separately.

The table below outlines each policy and their new title:

Click to expand
Control IDLacework Policy IDTitle
4.1.5lacework-global-748Ensure that default service accounts are not actively used in Roles
4.1.5lacework-global-825Ensure that default service accounts are not actively used in ClusterRoles

4.1.6 Ensure that Service Account Tokens are only mounted where necessary

This control has been split into two policies to check Service Account Tokens and Kubernetes API access tokens separately.

The table below outlines each policy and their new title:

Click to expand
Control IDLacework Policy IDTitle
4.1.6lacework-global-749Ensure that Service Account Tokens are only mounted where necessary
4.1.6lacework-global-826Ensure that default service accounts are not automatically mounting their Kubernetes API access token