SuperAPI AI 工具集

policy-as-code

安全与审计

查看项目

更新于 10-15 11:51

技能介绍

用途

Policy as Code 用于通过代码实现策略的自动化执行,防止合规违规在进入生产环境前发生。它适用于对基础设施即代码变更执行安全与合规策略、阻止配置错误的 Kubernetes 工作负载部署、为 Terraform、CloudFormation 或 Helm 在 CI/CD 流水线中自动添加护栏、实施必须一致应用的组织标准,以及用自动化策略检查替代人工审批闸门。

主要能力

Open Policy Agent (OPA) Rego 策略

资料提供了多个 Rego 策略示例,package 命名采用 terraform.aws.<领域> 形式,并使用 rego.v1:

  • 禁止公共 S3 桶(no-public-s3):检查 aws_s3_bucket 的 acl 是否为 public-read 或 public-read-write。
  • 强制数据存储加密(require-rds-encryption、require-ebs-encryption、require-s3-encryption):检查 RDS 的 storage_encrypted、EBS 的 encrypted、S3 的 server_side_encryption_configuration。
  • 强制标签(required-tags):要求 Environment、Owner、CostCenter、DataClassification 四个标签。
  • 限制部署区域(approved-regions):仅允许 us-east-1、us-west-2、eu-west-1。

评估方式为先生成 Terraform plan JSON,再用 opa eval 或 conftest test 执行。

Kyverno Kubernetes 策略

资料提供多个 ClusterPolicy YAML 示例,均基于 kyverno.io/v1:

  • require-labels(Enforce):要求 Pod 具备 app.kubernetes.io/name、app.kubernetes.io/version、team 标签。
  • disallow-privileged-containers(Enforce):禁止特权容器,同时检查 containers 与 initContainers。
  • require-resource-limits(Enforce):要求所有容器定义 CPU 与内存限制。
  • disallow-latest-tag(Enforce):禁止使用 latest 镜像标签。
  • restrict-image-registries(Enforce):镜像仅允许来自指定 ECR 或 ghcr.io 仓库。
  • require-networkpolicy(Audit):要求命名空间存在 NetworkPolicy,并排除 kube-system、kube-public。

Checkov 自定义检查

资料提供了两个 Checkov 自定义检查 Python 示例:

  • S3Versioning(CUSTOM_S3_001):确保 S3 桶启用版本控制。
  • RDSBackupRetention(CUSTOM_RDS_001):确保 RDS 备份保留至少 7 天。

运行方式包括 --external-checks-dir、指定 --check ID、生成 SARIF 输出以及 --skip-check 跳过检查。

使用方式

  1. OPA:terraform plan -out=tfplan 后 terraform show -json tfplan > tfplan.json,再执行 opa eval --data policies/ --input tfplan.json,或使用 conftest test。
  2. Kyverno:使用 kyverno apply 对清单执行策略并输出表格结果。
  3. Checkov:通过 checkov -d ./terraform --framework terraform 等命令运行,可指定自定义检查目录、输出格式与跳过项。
  4. CI/CD:资料给出 GitHub Actions 示例,包含 Terraform 策略作业(setup-terraform、setup-opa、checkov-action、SARIF 上传)与 Kubernetes 策略作业(安装 Kyverno CLI、执行 kyverno apply、conftest-action)。

适用场景

  • 基础设施即代码(Terraform 等)变更的安全与合规检查。
  • Kubernetes 工作负载部署前的配置校验与拦截。
  • CI/CD 流水线中的自动化护栏。
  • 组织标准的统一强制执行。
  • 用策略检查替代人工审批。

限制

  • 资料中未提供各工具的收费、价格、平台支持范围、性能效果等事实。
  • 资料未说明这些策略在具体环境中的部署前提与依赖版本要求。
  • 资料未提供策略例外管理的完整工具实现细节,仅给出工作流与示例片段。