cloudcustodian/c7n是一款用于管理公共云账户和资源的规则引擎。它允许用户定义策略,以实现安全、成本优化的云基础设施管理,将组织中的临时脚本整合为轻量灵活的工具,并提供统一的指标和报告。
Custodian可用于管理AWS、Azure和GCP环境,确保实时符合安全策略(如加密和访问要求)、标签策略,以及通过清理未使用资源和非工作时间资源管理实现成本控制。同时支持对基础设施即代码(IaC)资产运行策略,直接在开发者工作站或CI流水线中提供反馈。
策略通过简单的YAML配置文件定义,针对特定资源类型(如EC2、ASG、Redshift、CosmosDB、PubSub Topic),由过滤器和操作构成。它可集成云服务商的无服务器能力实现实时策略执行,或作为定时任务在服务器上运行以处理大规模现有资源。Cloud Custodian是CNCF孵化项目,由数百名贡献者组成的社区主导。
适用于需要管理公共云资源的组织和团队,包括:
以下是AWS资源的示例策略(YAML格式):
yamlpolicies: - name: s3-cross-account description: | 检查S3存储桶的跨账户访问权限并移除。 resource: aws.s3 region: us-east-1 filters: - type: cross-account actions: - type: remove-statements statement_ids: matched - name: ec2-require-non-public-and-encrypted-volumes resource: aws.ec2 description: | 部署Lambda和CloudWatch事件目标,监控新实例并终止带未加密卷的实例。 mode: type: cloudtrail role: CloudCustodian-QuickStart events: - RunInstances filters: - type: ebs key: Encrypted value: false actions: - terminate - name: tag-compliance resource: aws.ec2 description: | 对不符合标签规范的资源计划4天后停止(需配合`marked-for-op`过滤器的单独策略实际执行停止操作)。 filters: - State.Name: running - "tag:Environment": absent - "tag:AppId": absent - or: - "tag:OwnerContact": absent - "tag:DeptID": absent actions: - type: mark-for-op op: stop days: 4
shellcustodian validate policy.yml
shellcustodian run --dryrun -s out policy.yml
shellcustodian run -s out policy.yml
shelldocker pull cloudcustodian/c7n
shellmkdir output 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
shelldocker 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
各云平台入门指南:
Custodian项目还开发和维护了一系列附加工具(查看更多):
详见贡献指南
如发现安全相关问题或漏洞,请联系Custodian安全团队,团队将确认并反馈处理结果。
本项目遵循CNCF行为准则,参与者应遵守该准则。===SHORT_DESC=== Cloud Custodian(c7n)是管理公共云账户和资源的规则引擎,允许用户定义策略以实现安全且成本优化的云基础设施管理,支持AWS、Azure、GCP等平台,通过YAML配置文件实现合规检查、标签管理和资源清理。
===FULL_DESC===
是一款用于管理公共云账户和资源的规则引擎,允许用户定义策略以实现安全且成本优化的云基础设施管理,将组织中的临时脚本整合为轻量灵活的工具,并提供统一的指标和报告。
支持AWS、Azure和GCP环境,确保实时符合安全策略(如加密和访问要求)、标签策略,以及通过清理未使用资源和非工作时间资源管理实现成本控制。同时支持对基础设施即代码(IaC)资产运行策略,直接在开发者工作站或CI流水线中提供反馈。
策略通过简单的YAML配置文件定义,针对特定资源类型(如EC2、ASG、Redshift等),由过滤器和操作构成。可集成云服务商的无服务器能力实现实时策略执行,或作为定时任务处理大规模现有资源。Cloud Custodian是CNCF孵化项目,由数百名贡献者组成的社区主导。
适用于需要管理公共云资源的组织和团队,包括:
yamlpolicies: - name: s3-cross-account description: 检查S3存储桶的跨账户访问权限并移除 resource: aws.s3 region: us-east-1 filters: - type: cross-account actions: - type: remove-statements statement_ids: matched - name: ec2-require-encrypted-volumes resource: aws.ec2 description: 终止带未加密EBS卷的新EC2实例 mode: type: cloudtrail role: CloudCustodian-QuickStart events: [RunInstances] filters: - type: ebs key: Encrypted value: false actions: [terminate] - name: tag-compliance resource: aws.ec2 description: 对不符合标签规范的实例计划4天后停止 filters: - State.Name: running - "tag:Environment": absent - "tag:AppId": absent - or: - "tag:OwnerContact": absent - "tag:DeptID": absent actions: - type: mark-for-op op: stop days: 4
shellcustodian validate policy.yml
shellcustodian run --dryrun -s out policy.yml
shellcustodian run -s out policy.yml
shelldocker pull cloudcustodian/c7n
shellmkdir output 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
shelldocker run -it \ -v $(pwd)/output:/home/custodian/output \ -v $(pwd)/policy.yml:/home/custodian/policy.yml \ -v ~/.aws/credentials:/home/custodian/.aws/credentials \ -v ~/.aws/config:/home/custodian/.aws/config \ --env-file <(env | grep "^AWS") \ cloudcustodian/c7n run -v -s /home/custodian/output /home/custodian/policy.yml
项目提供多种附加工具(查看更多):

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务