tirith:开源政策框架,简化基础设施配置管理

tirith:开源政策框架,简化基础设施配置管理

tirith StackGuardian Policy Framework tirith 项目地址: https://gitcode.com/gh_mirrors/ti/tirith

项目介绍

Tirith 是由 StackGuardian 开发的一个政策框架,旨在为基础设施配置如 Terraform、CloudFormation、Kubernetes 等实施政策。它通过用户友好的方法简化了政策创建和执行,确保基础设施政策符合规范。

Tirith 适用于以下人群:

  • DevSecOps 工程师
  • 基础设施架构师
  • 云管理员
  • 任何参与管理和执行基础设施护栏的人

项目技术分析

Tirith 采用声明式的基础设施即代码(IaC)配置,例如 Terraform,通过使用 JSON 定义的政策来扫描这些配置。这种设计允许用户以声明式的方式定义政策,无需深入了解政策引擎的实现复杂性。

项目的技术亮点包括:

  • 抽象化政策引擎的底层复杂性。
  • 简化声明式政策的创建,使其易于阅读和理解。
  • 提供标准化框架,用于扫描具有细粒度的各种配置。
  • 提供模块化设计,便于扩展。

项目技术应用场景

Tirith 的应用场景广泛,适用于需要对基础设施配置进行政策管理的各种情况,包括但不限于:

  • 确保 Terraform 配置遵守组织的安全和合规政策。
  • 管理和优化云资源的成本。
  • 在持续集成/持续部署(CI/CD)流程中实施政策检查。

项目特点

1. 简化政策管理

在 IaC 中管理政策可能既复杂又成本高昂,通常需要多个代码库。Tirith 通过集中管理政策,简化了这一过程,允许用户在一个地方定义和执行政策。

2. 超越资源配置

Tirith 的政策不仅涵盖资源配置,还扩展到成本管理和 CI/CD 定义,提供了一个全面的合规解决方案。

3. 成本效益

在 IaC 逻辑中维护政策通常成本很高。Tirith 通过集中政策管理,消除了在不同 IaC 代码库中复制政策的需要,从而降低了成本。

4. 简化政策创建

编写政策即代码是一项挑战。Tirith 通过提供一种直观、声明式的方法来简化这一过程,使得确保合规性和安全性变得更加容易。

安装与使用

安装

用户可以通过以下命令安装 Tirith:

pip install git+https://github.com/StackGuardian/tirith.git

开发者可以通过以下步骤在本地开发环境中安装:

  1. 克隆 Tirith 仓库到本地系统。
  2. 切换到克隆的仓库目录。
  3. 设置 Python 虚拟环境。
  4. 激活虚拟环境。
  5. 在虚拟环境中安装 Tirith。

使用

使用 Tirith 非常简单,以下是一个基本的使用示例:

usage: tirith [-h] [-policy-path PATH] [-input-path PATH] [--json] [--verbose] [--version]

用户可以指定政策文件路径、输入文件路径,以及其他选项,如输出为 JSON 格式或显示详细日志。

示例政策

Tirith 支持多种类型的政策,以下是一些使用不同提供者的示例政策:

Terraform 计划提供者

确保 AWS VPC 实例租户为默认值,且 EC2 实例不会被销毁:

{
  "meta": {
    "required_provider": "stackguardian/terraform_plan",
    "version": "v1"
  },
  "evaluators": [
    {
      "id": "check_ec2_tenancy",
      "provider_args": {
        "operation_type": "attribute",
        "terraform_resource_type": "aws_vpc",
        "terraform_resource_attribute": "instance_tenancy"
      },
      "condition": {
        "type": "Equals",
        "value": "default"
      }
    },
    {
      "id": "destroy_ec2",
      "provider_args": {
        "operation_type": "action",
        "terraform_resource_type": "aws_instance"
      },
      "condition": {
        "type": "ContainedIn",
        "value": ["destroy"]
      }
    }
  ],
  "eval_expression": "check_ec2_tenancy && !destroy_ec2"
}

确保所有 aws_s3_bucket 都被 aws_s3_bucket_intelligent_tiering_configuration 引用:

{
  "meta": {
    "required_provider": "stackguardian/terraform_plan",
    "version": "v1"
  },
  "evaluators": [
    {
      "id": "s3HasLifeCycleIntelligentTiering",
      "description": "确保所有 aws_s3_bucket 都被 aws_s3_bucket_intelligent_tiering_configuration 引用",
      "provider_args": {
        "operation_type": "direct_references",
        "terraform_resource_type": "aws_s3_bucket",
        "referenced_by": "aws_s3_bucket_intelligent_tiering_configuration"
      },
      "condition": {
        "type": "Equals",
        "value": true,
        "error_tolerance": 0
      }
    }
  ],
  "eval_expression": "s3HasLifeCycleIntelligentTiering"
}

确保所有 AWS ELBs 都附加到安全组:

{
  "meta": {
    "version": "v1",
    "required_provider": "stackguardian/terraform_plan"
  },
  "evaluators": [
    {
      "id": "aws_elbs_have_direct_references_to_security_group",
      "provider_args": {
        "operation_type": "direct_references",
        "terraform_resource_type": "aws_elb",
        "references_to": "aws_security_group"
      },
      "condition": {
        "type": "Equals",
        "value": true,
        "error_tolerance": 0
      }
    }
  ],
  "eval_expression": "aws_elbs_have_direct_references_to_security_group"
}

Tirith 是一个功能强大的开源政策框架,它通过简化基础设施配置的管理,为 DevSecOps 工程师和基础设施管理员提供了一个宝贵的工具。通过集中管理和直观的政策定义,Tirith 有助于确保基础设施的安全性、合规性和成本效益。如果你正在寻找一种更有效的方式来管理你的基础设施政策,Tirith 可能正是你所需要的。

tirith StackGuardian Policy Framework tirith 项目地址: https://gitcode.com/gh_mirrors/ti/tirith

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

姬忆慈Loveable

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值