taibeihacker
Moderator
Clean up of over permissioned IAM accounts on GCP infra in an automated way
Cureiam是一种易于使用,可靠且性能的引擎,用于在GCP Cloud Infra上执行最低特权。它使DevOps和安全团队能够快速清理GCP中央基金会的帐户,这些帐户授予了超过要求的权限。 Cureiam从GCP IAM推荐的建议和见解中获取了这些建议和见解,并在每日基本上自动执行这些建议。它需要调度和所有其他方面的规模运行这些执法工作。它建立在GCP IAM推荐API和Cloudmarker框架之上。Key features
发现是什么使Cureiam可扩展和生产等级。Config driven: CUREIAM的整个工作流程均驱动。跳过以进行配置部分以了解有关它的更多信息。Scalable:它的设计旨在扩展其插件驱动器,多进程和多线程方法。Handles Scheduling:调度零件嵌入了Cureiam代码本身中,配置时间,Cureiam将在此时间每天运行。Plugin driven: Cureiam Codebase完全以插件为导向,这意味着可以插入和播放现有插件或创建新的插件以添加更多功能。Track actionable insights: CUREIAM采取的每个动作都是为了审计目的,它可以在文件存储和Elasticsearch商店中执行此操作。如果您愿意,可以构建其他商店插件将其推向其他商店以进行跟踪。Scoring and Enforcement: CUREIAM提取的每个建议都在各种参数上进行评分,此后,诸如Safe_to_to_apply_score,firk_score,over_privilege_score之后的两个分数之后。每个分数都有不同的目的。对于Safe_to_apply_score,基于Cureiam.yaml配置文件中设置的阈值来确定自动化建议的功能。
Usage
由于Cureiam是使用Python构建的,因此您可以使用这些命令在本地运行它。在运行之前,请确保在/etc/cureiam.yaml,〜/.cureiam.yaml,〜/cureiam.yaml或cureiam.yaml中准备好一个配置文件,并且在当前目录中存在带有名称的服务帐户json文件,请命名cureiamsa.json。可以将此私钥命名为任何东西,但是对于Docker Image Build,首选使用此名称。让您在GCP云的配置中引用此文件。#安装必要的依赖项
$ pip install -r要求.txt
#现在运行Cureiam
$ Python -M Cureiam -n
#运行Cureiam进程作为调度程序
$ Python -M Cureiam
#检查Cureiam帮助
$ python -m cureiam -Help Cureiam也可以在Docker环境中运行,这是完全可选的,可用于带有K8S群集部署的CI/CD。
#从Dockerfile构建Docker图像
$ docker build -t cureiam。
#运行图像,作为调度程序
$ docker run -d cureiam
#立即运行图像
$ docker run -f cureiam -m cureiam -n
Config
cureiam.yaml配置文件是Cureiam Engine的核心。引擎做的所有操作都会根据此配置文件中配置的管道来完成。让我们将其分为不同的部分,以使此配置看起来更简单。让我们配置第一部分,即记录配置和调度程序配置。 logger:
版本: 1
disable_existing_loggers: false
Formatters:
非常简单:
格式:-
[%(过程)S]
%(名称)S:%(Lineno)D-%(消息)s
datefmt:'%y-%m-%d%H:%M:%S'
处理器:
RICH_CONSOLE:
class: rich.logging.richhandler
formatter:非常简单
File:
class: logging.handlers.timedRotatingFileHandler
formatter:简单
filename: /tmp/cureiam.log
:午夜
编码: UTF8
BackupCount: 5
Loggers:
Adal-Python:
Level:信息
root:
Level:信息
处理器:
- rich_console
- 文件
SCAUDE:'16:00'这种配置用途的订阅,丰富的日志记录模块和附表Cureiam每天以16:00运行。
下一节是配置不同的模块,我们可以在管道中使用。这属于Cureiam.yaml的插件部分。您可以将此部分视为不同插件的声明。插件:
GCPCloud:
plugin: CureIAM.plugins.gcp.gcpcloud.GCPCloudIAMRecommendations
params:
key_file_path: cureiamsa.json
FILESTORE:
plugin: cureiam.plugins.files.filestore.filestore
GCPiamProcessor:
plugin: cureiam.plugins.gcp.gccloudiam.gcpiamrecommendationprocessor
params:
mode_scan: true
mode_enforce: true
Enforcer:
key_file_path: cureiamsa.json
allowlist_projects:
-Alpha
blocklist_projects:
- beta
BlockList_Accounts:
- [电子邮件保护]
allowlist_account_types:
- 用户
- 团体
- ServiceAccount
blocklist_account_types:
- 没有任何
min_safe_to_apply_score_user: 0
min_safe_to_apply_scor e_group: 0
min_safe_to_apply_score_sa: 50
ESSTORE:
plugin: cureiam.plugins.elastic.esstore.esstore
params:
#如果您的弹性使用https,则将http更改为https
SCOPE: HTTP
HOST: ES-HOST.COM
端口: 9200
index: cureiam-stg
用户名:安全性
密码: SecurePassword这些插件声明中的每一个都必须来自此Form:
插件:
插件-NAME:
Plugin: class-name-as-as-python-path
params:
param1: val1
param2: val2例如,用于插件cureiam.stores.esstore.esstore,它是此文件和类esstore。 YAML中定义的所有参数都必须匹配同一插件类的__init __()函数中的声明。
定义插件后,下一步就是定义如何定义审核管道。它像this: Aucits:一样
iAmaudit:
云:
-GCPCloud
处理器:
-GCPIAMPROCESSOR
Stores:
- 文件
- 可以从中创建多个审核。此处创建的一个名为iAmaudit,其中包含三个正在使用的插件,GCPCLOUD,GCPIAMPROCESSOR,FILESSTORES和ESSTORE。请注意,这些是步骤2中定义的插件名称。同样,这就像定义管道,而不是实际运行它。它将在下一步中考虑使用定义。
告诉Cureiam运行上一步中定义的审核。 RUN:
- iAmaudits,这使得Cureiam的整个配置都可以在此处找到完整的示例,此Config Drive Pipeline概念是从Cloudmarker Framework继承的。
Dashboard
使用Elasticsearch商店插件在Elasticsearch中进行索引,可用于在Kibana中生成仪表板。Contribute
[请做!]我们正在寻找任何类型的贡献,以改善Cureiam的核心功能和文档。如有疑问,请做一个公关!Credits
Gojek产品安全团队Demo
=================NEW UPDATES May 2023 0.2.0
Refactoring
将大型代码分解为多个小功能,将所有插件移动到plugins Folder: Esstore,Files,Files,Cloud和GCP中。将修复程序添加到零分隔中的问题迁移到Cureiam中的新的主要版本的弹性更改配置。在Python版本3.9.xLibrary Updates
中测试的YAML文件中,在库中添加了版本,以避免任何背部兼容性问题。弹性==8.7.0#之前7.17.9 Elasticsearch==8.7.0 google-api-python-client==2.86.0 pyyaml==6.0时间表==1.2.0 rich==1.2.0 rich==13.3.5
Docker Files
添加local弹性和kibana insustance和kibana insposity和kibana insucation和kibana ins intrastic和kibana ins for promastic和kibana。 Docker Compose: Docker-Compose -f Docker_compose_es.yaml UPFeatures
,添加了不使用建议的不使用建议的功能。默认情况下,如果mode_scan为false,则mode_enforce将不会运行。 mode_scan: trueMode_enforce: false暂时关闭电子邮件功能。