本文主要是介绍如何使用CureIAM自动清理GCP基础设施中的IAM账号权限,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
关于CureIAM
CureIAM是一款针对GCP基础设施的账号权限安全检查与管理工具,该工具易于使用,是一个功能强大且易于使用的可靠高性能引擎。在该工具的帮助下,广大研究人员能够以自动化的形式在GCP云基础设施上实践最低权限原则。
CureIAM可以允许DevOps和安全团队快速清理GCP基础设施中授予超过所需权限的帐户,并且整个过程都能够以自动化的形式实现。
功能介绍
1、配置驱动:CureIAM的整个工作流都是配置驱动的;
2、可扩展:CureIAM被设计为功能可扩展的,得益于其插件系统、多进程和多线程设计模式;
3、插件驱动:CureIAM代码库完全面向插件,这意味着我们可以直接安装现有插件,也可以创建新插件来添加更多功能;
4、操作跟踪:CureIAM采取的每一个操作都会被记录下来,并用于后续的安全审计活动;
5、评分和执行:CureIAM会对每一条操作建议使用各种参数进行评分;
工具下载
由于该工具基于Python开发,因此我们首先需要在本地设备上安装并配置好Python环境。在运行该工具之前,请确保下列路径之一有配置文件存在:/etc/CureIAM.yaml、~/.CureIAM.yaml、~/CureIAM.yaml或CureIAM.yaml,以及项目目录中是否包含一个服务账号JSON文件(cureiamSA.json)。
接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:
$ git clone https://github.com/gojek/CureIAM.git
然后切换到项目目录中,使用pip工具和requirements.txt文件安装该工具所需的其他依赖组件:
$ pip install -r requirements.txt
工具使用
下列命令即可直接运行CureIAM:
$ python -m CureIAM -n
设置CureIAM进程为计划任务:
$ python -m 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
工具配置
CureIAM.yaml配置文件是CureIAM引擎的核心,引擎所做的所有操作都基于该配置文件管道过来的配置信息实现。
首先,我们需要配置第一部分,即日志配置和计划任务配置:
logger:version: 1disable_existing_loggers: falseformatters:verysimple:format: >-[%(process)s]%(name)s:%(lineno)d - %(message)sdatefmt: "%Y-%m-%d %H:%M:%S"handlers:rich_console:class: rich.logging.RichHandlerformatter: verysimplefile:class: logging.handlers.TimedRotatingFileHandlerformatter: simplefilename: /tmp/CureIAM.logwhen: midnightencoding: utf8backupCount: 5loggers:adal-python:level: INFOroot:level: INFOhandlers:- rich_console- fileschedule: "16:00"
下一部分需要配置不同模块,即插件部分,这里我们可以声明需要使用的不同插件:
plugins:gcpCloud:plugin: CureIAM.plugins.gcp.gcpcloud.GCPCloudIAMRecommendationsparams:key_file_path: cureiamSA.jsonfilestore:plugin: CureIAM.plugins.files.filestore.FileStoregcpIamProcessor:plugin: CureIAM.plugins.gcp.gcpcloudiam.GCPIAMRecommendationProcessorparams:mode_scan: truemode_enforce: trueenforcer:key_file_path: cureiamSA.jsonallowlist_projects:- alphablocklist_projects:- betablocklist_accounts:- foo@bar.comallowlist_account_types:- user- group- serviceAccountblocklist_account_types:- Nonemin_safe_to_apply_score_user: 0min_safe_to_apply_score_group: 0min_safe_to_apply_score_SA: 50esstore:plugin: CureIAM.plugins.elastic.esstore.EsStoreparams:# Change http to https later if your elastic are using httpsscheme: httphost: es-host.comport: 9200index: cureiam-stgusername: securitypassword: securepassword
每一个插件的声明格式如下:
plugins:<plugin-name>:plugin: <class-name-as-python-path>params:param1: val1param2: val2
插件定义完成之后,就是要定义用于安全审计的管道了:
audits:IAMAudit:clouds:- gcpCloudprocessors:- gcpIamProcessorstores:- filestore- esstore
最后,让CureIAM运行之前定义的安全审计任务即可:
run:- IAMAudits
工具运行截图
许可证协议
本项目的开发与发布遵循Apache-2.0开源许可证协议。
项目地址
CureIAM:【GitHub传送门】
参考资料
https://github.com/cloudmarker/cloudmarker
这篇关于如何使用CureIAM自动清理GCP基础设施中的IAM账号权限的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!