c7n策略生成脚本和相关实用程序
manheim-c7n-tools的Python项目详细描述
曼海姆-C7N-工具
manheim的云托管(c7n)包装包、策略生成器、运行器和支持工具。
该项目提供了通用工具,作为docker镜像分发,用于管理manheim的云托管(c7n)工具,包括c7n本身、c7n_mailer和我们的自定义组件。这个项目/存储库(通常通过生成的docker映像)与一个特定布局的配置存储库一起使用,其中包含一个或多个aws帐户的配置。
- 完整文档:https://manheim-c7n-tools.readthedocs.io/
- travisci构建:https://travis-ci.org/manheim/manheim-c7n-tools
- Docker图片:https://hub.docker.com/r/manheim/manheim-c7n-tools
有关上游云托管项目的文档,请参见https://cloudcustodian.io/docs/index.html和https://github.com/cloud-custodian/cloud-custodian上的源代码。
介绍和目标
Cloud Custodian(A.K.A.C7N)是一个灵活的规则引擎,用于报告和执行AWS中的策略。manheim已经从netflix的看门人monkey迁移到云托管,以满足我们的标签执行、资源清理、成本降低和其他策略需求。这个项目提供了通用工具,允许我们跨多个aws帐户部署和管理c7n。
我们目前正在通过aws lambda部署所有云托管策略。默认情况是每天运行一次策略,但其他执行触发器也可用,包括任意计时器触发器以及cloudtrail、aws config和cloudwatch事件。
在this blog post中可以找到转换为此项目的初始工具的描述。
。_ index.main_组件:
主要部件
Docker容器(或python安装)中提供了以下命令,这些命令作为python包入口点生成:
- manheim-c7n-runner-一个入口点,在运行(实际)或dryrun模式下,以正确的顺序包装运行以下一个或多个步骤(以及
custodian
本身、c7n-mailer
部署和sphinx文档生成)。 - policygen-从配置repo/目录生成实际托管yml配置文件的python脚本。必须从配置存储库目录运行。
- s3-archiver-通过将日志从任何已删除的策略移动到“archivelogs/”前缀来清理托管s3存储桶的脚本。
- dryrun-diff-script比较每个策略在dryrun和每个策略的最后一次实际运行之间每个区域匹配的资源数量,并将结果写入标记文件(作为pr的注释添加)。
errorscan
-使用boto3脚本检查云托管lambda函数的cloudwatch度量、日志和sqs死信队列,并对任何失败的执行、死信等发出警报。- c7n内置的lambda垃圾收集。这是在manheim-c7n-tools中提供的,因为c7n在其git repo中仅作为不可执行的python源文件提供。
- 为了方便起见,c7n的
c7n-mailer
作为依赖项安装。