Overview

Data Theorem provides several integrations that collect information about your GKE deployments to help you manage your Kubernetes security posture. Additionally, like the data collected from all Data Theorem integrations, we send your GKE information to our analyzer to build a deep, full-stack understanding of your applications and resources they rely on.

The following integrations collect KSPM information:

We recommend enabling the GCP Account Integration and the GCP Load Balancer Log Analysis Integration, and optionally, one of the Kubernetes integrations.

KSPM Integrations

GCP Account Integration

The close integration of GKE and Google Cloud means that just by onboarding your GCP account we good visibility into your GKE clusters and the GCP resources they use.

How to enable this integration: https://datatheorem.atlassian.net/wiki/x/AoBQAg

GCP Load Balancer Log Analysis Integration

The Data Theorem GCP Load Balancer integration forwarding HTTP request logs from your GCP load balancers to a log sink that publishes HTTP request metadata to a Data Theorem Pub/Sub queue.

Cloud Logging Sinks can be created at multiple levels within GCP. Where the sink is created determines which logs it is able to forward: if the sink is created within a project, it will only be able to forward logs from that project. If the sink is created at the organization level or in a folder containing gcp projects, then it will be able to forward logs from any project within that organization or that folder.

Data Theorem strongly recommends creating the sink at the organization level to maximize discovery, and to then use the sink’s log filter to limit which logs are sent to Data Theorem.

Pre-requisites

Create a Cloud Logging Sink

Create Sink 1Create Sink 2

Create a Service Account

Create Service AccountCreate Service Account

Create a Pub/Sub subscription

Kubernetes In-Cluster Helm Chart Integration

Overview

This integration uses a Helm chart to creates a discovery deployment in the datatheorem namespace in your Kubernetes cluster.

It uses a datatheorem-cluster-role with the following permissions:

rules:
  - apiGroups:
      - "*"
    resources:
      - deployments
      - pods/log
      - pods
      - services
      - endpoints
      - persistentvolumeclaims
      - ingresses
      - gateways

    verbs:
      - list
      - get
      - watch 

and a cluster role binding the datatheorem-cluster-role to the datatheorem-service-account.

Installation

Step 1 : Extract all the items which you should receive during the onboarding process.
unzip DataTheorem-APIProtect-K8S_PROTECT.zip

Step 2 : Verify you are configured for the correct kubernetes cluster
kubectl config current-context

Step 3 : Install API Protect

Add mirroring to the chosen endpoint. This step must be repeated for each endpoint.

helm install k8s-protect    \
    ./k8s-protect           \
    --create-namespace      \
    --namespace datatheorem \
    --wait

Step 5 : Verify the deployment

It should look something like this

helm list -n datatheorem

NAME        NAMESPACE   REVISION UPDATED                                 STATUS   CHART             APP VERSION
k8s-protect datatheorem 1        2023-06-20 11:56:08.223009524 +0100 CET deployed k8s_protect-1.0.0 1.0.5

Test the deployment

helm test -n datatheorem k8s-protect

Finished.

Un-Installation should it be required

helm uninstall -n datatheorem k8s-protect

Kubernetes Control-Plane Integration

Seehttps://datatheorem.atlassian.net/wiki/x/JoEkYw