对云安全的检测中,最重要的一个组成部分就是对配置的验证,今天来介绍一个开源的规则检测引擎项目,Cloud Custodian。

一、Cloud Custodian 是什么

  • Cloud Custodian 是用于管理公有云帐户和资源的规则引擎。规则策略用简单的 YAML 格式,使用户能够指定资源类型(EC2、ASG、Redshift、CosmosDB、PubSub 主题)的策略,并由过滤器和操作的词汇表构建。
  • 官方的 Cloud Custodian 可用于管理 AWS、Azure 和 GCP 环境,我们在此基础上新增了阿里云、华为云、腾讯云、火山云、金山云、百度云、青云、七牛云、UCloud、OpenStack、VMware vSphere等。

二、Cloud Custodian 项目结构

Custodian 特征

  • 对公共云服务和资源的全面支持,具有丰富的操作和过滤器库,可用于构建策略。
  • 支持对具有嵌套布尔条件的资源进行任意过滤。
  • 试运行任何政策,看看它会做什么。
  • 自动配置无服务器函数和事件源(AWS CloudWatchEvents、AWS Config Rules、Azure EventGrid、GCP AuditLog 和 Pub/Sub 等)
  • 与策略匹配的资源上的云提供商本机指标输出
  • 将结构化输出到云原生对象存储中,其资源与策略相匹配。
  • 智能缓存使用以最小化 api 调用。
  • 支持多账户/订阅/项目使用。
  • 经过实战测试 - 在一些非常大的云环境中进行生产。

三、Cloud Custodian 快速安装

$ python3 -m venv custodian
$ source custodian/bin/activate
(custodian) $ pip install c7n
(custodian) $ pip install -e tools/c7n_aliyun
(custodian) $ pip install -e tools/c7n_huawei
(custodian) $ pip install -e tools/c7n_tencent
(custodian) $ pip install -e tools/c7n_baidu

四、Cloud Custodian 用法

使用 Cloud Custodian 的第一步是编写包含您要运行的策略的 YAML 文件。每个策略指定策略将运行的资源类型,一组控制资源将受此策略影响的过滤器,策略对匹配资源采取的操作,以及控制策略执行方式的模式。

最好的入门指南是云提供商特定的教程。

作为快速浏览,下面是 AWS 资源的一些示例策略

  1. 将强制所有 S3 存储桶都没有启用跨账户访问。
  2. 将终止任何新启动的没有加密 EBS 卷的 EC2 实例。
  3. 将在四天内停止任何没有跟随标签“Environment”、“AppId”和“OwnerContact”或“DeptID”的 EC2 实例。
policies:- name: s3-cross-accountdescription: |Checks S3 for buckets with cross-account access andremoves the cross-account access.resource: aws.s3region: us-east-1filters:- type: cross-accountactions:- type: remove-statementsstatement_ids: matched- name: ec2-require-non-public-and-encrypted-volumesresource: aws.ec2description: |Provision a lambda and cloud watch event targetthat looks at all new instances and terminates those withunencrypted volumes.mode:type: cloudtrailrole: CloudCustodian-QuickStartevents:- RunInstancesfilters:- type: ebskey: Encryptedvalue: falseactions:- terminate- name: tag-complianceresource: aws.ec2description: |Schedule a resource that does not meet tag compliance policies to be stopped in four days. Note a separate policy using the`marked-for-op` filter is required to actually stop the instances after four days.filters:- State.Name: running- "tag:Environment": absent- "tag:AppId": absent- or:- "tag:OwnerContact": absent- "tag:DeptID": absentactions:- type: mark-for-opop: stopdays: 4

您可以使用以下命令使用示例策略验证、测试和运行 Cloud Custodian

# Validate the configuration (note this happens by default on run)
$ custodian validate policy.yml# Dryrun on the policies (no actions executed) to see what resources
# match each policy.
$ custodian run --dryrun -s out policy.yml# Run the policy
$ custodian run -s out policy.yml

您也可以通过 Docker 运行 Cloud Custodian

# Download the image
$ docker pull cloudcustodian/c7n
$ mkdir output# Run the policy
#
# This will run the policy using only the environment variables for authentication
$ docker run -it \
-v $(pwd)/output:/home/custodian/output \
-v $(pwd)/policy.yml:/home/custodian/policy.yml \
--env-file <(env | grep "^AWS\|^AZURE\|^GOOGLE") \
cloudcustodian/c7n run -v -s /home/custodian/output /home/custodian/policy.yml# Run the policy (using AWS's generated credentials from STS)
#
# NOTE: We mount the ``.aws/credentials`` and ``.aws/config`` directories to
# the docker container to support authentication to AWS using the same credentials
# credentials that are available to the local user if authenticating with STS.$ docker run -it \
-v $(pwd)/output:/home/custodian/output \
-v $(pwd)/policy.yml:/home/custodian/policy.yml \
-v $(cd ~ && pwd)/.aws/credentials:/home/custodian/.aws/credentials \
-v $(cd ~ && pwd)/.aws/config:/home/custodian/.aws/config \
--env-file <(env | grep "^AWS") \
cloudcustodian/c7n run -v -s /home/custodian/output /home/custodian/policy.yml

五、项目地址

  • Github 项目地址:https://github.com/hummerrisk/cloud-custodian/tree/hummerrisk
  • Cloud Custodian 官方文档:https://cloudcustodian.io/docs/index.html

HummerRisk 对 Cloud Custodian的操作进行可视化的处理,更加的便捷和简单,并且增强了多个方面的能力,如果想体验相关的能力,我们建议直接入手HummerRisk 。

关于HummerRisk

HummerRisk 是开源的云原生安全平台,以非侵入的方式解决云原生的安全和治理问题,核心能力包括混合云的安全治理和K8S容器云安全检测。

开源工具系列1:Cloud Custodian相关推荐

  1. 60款与DevOps相关的开源工具

    原文地址:https://elasticbox.com/blog/de ... ools/ 你喜欢免费的东西吗?获得开发者社区支持的自动化,开源的工具是大家梦寐以求的.这里列举了 60+ 款最棒的开源 ...

  2. 最棒的60个DevOps开源工具

    最棒的60个DevOps开源工具 你喜欢免费的东西吗?获得开发者社区支持的自动化,开源的工具是大家梦寐以求的.这里列举了 60+ 款最棒的开源工具,可以帮助你很好的实行 DevOps. 开发工具 版本 ...

  3. 大数据人推荐:60款顶级大数据开源工具

    摘要:说到处理大数据的工具,普通的开源解决方案(尤其是Apache Hadoop)堪称中流砥柱. 弗雷斯特调研公司的分析师Mike Gualtieri最近预测,在接下来几年,"100%的大公 ...

  4. 商业公司主导下的非营利开源软件基金会之 ———— Cloud Foundry 基金会简史

    点击上方蓝字 关注开源之道吧 为什么 OpenShift 没有成立基金会? 平台即服务(PaaS),在容器之前的时代,竞争格局还是非常激烈的,尤其是中间件的市场,那么为什么 Spring 选择了成立基 ...

  5. 科技公司最常用的50款开源工具,提升你的逼格~

    点击关注上方"视学算法",设为"置顶或星标",第一时间送达技术干货. 本文介绍了多款知名的开源应用软件,科技公司可以用它们来管理自己的 IT 基础设施.开发产品 ...

  6. 这10个机器学习开源工具,你用过吗?

    作为机器学习开发人员,你可能已经接触到很多机器学习资源,今天给大家介绍10个机器学习开源工具,有很多都是可以在项目中使用的工具,如果有帮到你的话,欢迎转发收藏. 1.AutoML  AutoML是一款 ...

  7. N个免费DevOps开源工具,没用过,至少应该了解!

    在介绍Devops工具之前,先跟随码花来了解下: Devops是个啥? Devops=[Development]+[Operations]. 简言之,Devops主要用于开发.测试.运维之间的沟通.协 ...

  8. 荐六十款针对Hadoop和大数据顶级开源工具

    为什么80%的码农都做不了架构师?>>>    荐六十款针对Hadoop和大数据顶级开源工具 2015-08-10 10:37 布加迪编译 51CTO 字号: T |  T 说到处理 ...

  9. Hadoop和大数据:60款顶级开源工具

    说 到处理大数据的工具,普通的开源解决方案(尤其是Apache Hadoop)堪称中流砥柱.弗雷斯特调研公司的分析师Mike Gualtieri最近预测,在接下来几年,"100%的大公司&q ...

最新文章

  1. fastdfs安装_用asp.net core结合fastdfs打造分布式文件存储系统
  2. java 基础 --静态
  3. oracle随机取数据
  4. 近期北京动点软件发现XXX公司盗用我公司WPF项目案例
  5. java 8 string_java8、jdk8日期转化成字符串
  6. Eigen入门之密集矩阵 8 - resharp slicing切片
  7. java实现遍历树形菜单方法——struts.xml实现
  8. php百度鹰眼,Android 百度鹰眼里程计算简单实列
  9. 后台上传数据php代码,jQuery传递数据同时上传文件到php后台的问题
  10. 【BZOJ 1026】 [SCOI2009]windy数
  11. (day 16 - 双指针)剑指 Offer 35. 复杂链表的复制
  12. 索引和数据完整性约束的总结
  13. [推荐]一个 1kb 的image placeholder的js库
  14. 2021年数学建模国赛C题问题四及模型检验
  15. 如何下载谷歌地球高程为TIF格式的文件
  16. 【转】用java将pdf转换成jpg图片的代码
  17. 苏黎世大学SVO2安装教程
  18. We Will Rock You
  19. 音量计算机的网红音乐,网红音乐10首抖音网红歌,抖音网红歌曲100首BGM精选
  20. 已解决:GET http://localhost:8080/statics/js/jquery-3.4.1.js net::ERR_ABORTED 404

热门文章

  1. PLC电源和PLC卡电源区别
  2. 帮铁粉脱单|【上海女】No.24|93年,硕士,喜欢刷英剧撸狗,互联网公司工作
  3. 最全的机器学习amp;深度学习入门视频课程集
  4. 【Python语言】全国计算机等级二级考试模拟试卷一
  5. 一些python学习中的练习与讲解
  6. android 读取 caf格式,CAF 文件扩展名: 它是什么以及如何打开它?
  7. Python selenium+AutoIt 实现自动获取网页内Flash窗口中的信息,以图片的方式保存
  8. PyTorch + Ray Tune 调参
  9. 论文中存在抄袭的后果
  10. 数据库连接池原理及应用