Detect data at rest encryption on DBMS for Kubernetes 项目

问题描述 投票:0回答:0

我正在编写一个 python 脚本,为 kubernetes 输入一组配置文件。首先过滤以仅获取“包含数据库信息”的文件。 作为一个通用模板,我考虑了这个部署文件(在这个页面):

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysql
spec:
  selector:
    matchLabels:
      app: mysql
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - image: mysql:5.6
        name: mysql
        env:
          # Use secret in real usage
        - name: MYSQL_ROOT_PASSWORD
          value: password
        ports:
        - containerPort: 3306
          name: mysql
        volumeMounts:
        - name: mysql-persistent-storage
          mountPath: /var/lib/mysql
      volumes:
      - name: mysql-persistent-storage
        persistentVolumeClaim:
          claimName: mysql-pv-claim

当我使用 sock-shop kubernetes 文件进行测试时(此处)。例如

03-carts-db-dep.yaml
是一个很好的文件。

我的目标是检查文件中命名的各种 DBMS 中是否存在静态数据加密。

我发现 checkov 做了这个检查,但我不明白它是怎么做到的。

详细来说,我会做的是:

  1. 过滤 kubernetes 配置文件并只获取数据库的那些(使用 Kind = Deployment)
  2. 回到文件中提到的DBMS配置文件所在的路径(我的应用程序应该只适用于mysql、postgre、mongo)。
  3. 检查 DBMS 是否执行静态数据加密(例如我正在使用 mysql this documentation

我想更好地理解的是我如何使用(甚至更通用的)checkov 来执行此检查(再次通过 python),然后自己实现它。

对于 checkov,我遵循 this documentation for policies

python kubernetes checkov
© www.soinside.com 2019 - 2024. All rights reserved.