我正在编写一个 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 做了这个检查,但我不明白它是怎么做到的。
详细来说,我会做的是:
我想更好地理解的是我如何使用(甚至更通用的)checkov 来执行此检查(再次通过 python),然后自己实现它。
对于 checkov,我遵循 this documentation for policies