跳转到主要内容

Cloud Custodian - Git提交作为逻辑策略变更

项目描述

c7n-policystream: 从Git获取策略变更

% [comment]: # ( !!! 重要 !!! ) % [comment]: # (此文件在文档生成期间已移动。) % [comment]: # (只编辑原文档 ./tools/c7n_policystream/README.md)

按照基础设施即代码的原则使用custodian,我们将策略资产存储在版本控制仓库中。这提供了审计日志并促进了代码审查。然而,此功能主要适用于对变更进行语义解释的人类。

此脚本还提供了git仓库的逻辑保管员策略变更,并允许流式传输这些变更以供机器可读和应用消费。它通常用作CI集成或策略索引的基础。

两个示例用例

  • 仅在拉取请求中的变更策略上执行dryrun
  • 构建策略变更的数据库。

Policystream可以在单个GitHub仓库或组织内一组仓库的GitHub集成上运行。

安装

如果可用的必需预置库(libgit2 > 0.26)可用,则可以通过pypi安装policystream。

pip install c7n-policystream

很快会有Docker镜像,请参阅构建以构建自己的镜像。

构建

或者可以按以下方式构建Docker镜像

# Note must be top level directory of checkout
cd cloud-custodian

docker build -t policystream:latest -f tools/c7n_policystream/Dockerfile .

docker run --mount src="$(pwd)",target=/repos,type=bind policystream:latest

用法

流式传输用例(默认流是到stdout,也支持kinesis、rdbms和sqs)

  $ c7n-policystream stream -r foo
  2018-08-12 12:37:00,567: c7n.policystream:INFO Cloning repository: foo
  <policy-add policy:foi provider:aws resource:ec2 date:2018-08-02T15:13:28-07:00 author:Kapil commit:09cb85>
  <policy-moved policy:foi provider:aws resource:ec2 date:2018-08-02T15:14:24-07:00 author:Kapil commit:76fce7>
  <policy-remove policy:foi provider:aws resource:ec2 date:2018-08-02T15:14:46-07:00 author:Kapil commit:570ca4>
  <policy-add policy:ec2-guard-duty provider:aws resource:ec2 date:2018-08-02T15:14:46-07:00 author:Kapil commit:570ca4>
  <policy-add policy:ec2-run provider:aws resource:ec2 date:2018-08-02T15:16:00-07:00 author:Kapil commit:d3d8d4>
  <policy-remove policy:ec2-run provider:aws resource:ec2 date:2018-08-02T15:18:31-07:00 author:Kapil commit:922c1a>
  <policy-modified policy:ec2-guard-duty provider:aws resource:ec2 date:2018-08-12T09:39:43-04:00 author:Kapil commit:189ea1>
  2018-08-12 12:37:01,275: c7n.policystream:INFO Streamed 7 policy changes

在两个源和目标修订规范之间进行策略差异。如果未指定源和目标,则默认修订选择取决于当前工作树分支。目的是用于两种用例,如果在非master分支上,则显示到master的diff。如果在master上,则显示到master上上一个提交的diff。对于不使用master约定的仓库,请指定显式的源和目标。

  $ c7n-policystream diff -r foo -v

拉取请求使用,输出当前分支和master之间的策略变更。

  $ c7n-policystream diff -r foo
  policies:
  - filters:
    - {type: cross-account}
    name: lambda-access-check
    resource: aws.lambda

选项

$ c7n-policystream --help
Usage: c7n-policystream [OPTIONS] COMMAND [ARGS]...

  Policy changes from git history

Options:
  --help  Show this message and exit.

Commands:
  diff          Policy diff between two arbitrary revisions.
  org-checkout  Checkout repositories from a GitHub organization.
  org-stream    Stream changes for repos in a GitHub organization.
  stream        Stream git history policy changes to destination.

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

此版本没有可用的源分发文件。请参阅生成分发存档的教程

构建分发

c7n_policystream-0.4.40-py3-none-any.whl (12.5 kB 查看哈希)

Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面