CloudQuery:基于PostgreSQL的开源云端资产查询工具
2023-03-15 23:23:04 时间
关于CloudQuery
CloudQuery是一款功能强大的基于PostgreSQL的开源云端资产查询工具,CloudQuery可以帮助广大研究人员将云端资产提取、转移或加载进规范化的PostgreSQL表中。而CloudQuery将帮助我们评估、审核和监控云端资产的安全配置情况。
CloudQuery关键功能和使用场景
搜索:使用标准SQL语句基于任意配置或关联资产实现任意资产查询。
可视化:将CloudQuery标准PostgreSQL数据库于你指定的BI/虚拟化工具进行连接,比如说Grafana和QuickSight等。
Policy-as-Code(策略即代码):使用SQL作为查询引擎,配置你的安全&策略规则。
工具下载&安装
广大研究人员可以访问该项目的Releases页面下载CloudQuery的预编译代码。或者,也可以打开命令行终端,使用下列命令来下载安装CloudQuery
export OS=Darwin # 可选值: Linux,Windows,Darwin
curl -L https://github.com/cloudquery/cloudquery/releases/latest/download/cloudquery_${OS}_x86_64 -o cloudquery
chmod a+x cloudquery
./cloudquery --help
# 如果你想要下载指定版本而不使用最新版本,可以使用下列方法
export VERSION= # 指定目标CloudQuery版本号
curl -L https://github.com/cloudquery/cloudquery/releases/download/${VERSION}/cloudquery_${OS}_x86_64 -o cloudquery
Homebrew安装
brew install cloudquery/tap/cloudquery
# 初始安装后,你可以通过下列命令更新CloudQuery版本
brew upgrade cloudquery
工具使用
工具运行
首先,我们需要生成一个config.hcl文件,该文件负责描述你想要CloudQuery去拉取、转换和规范化的资源。我们可以使用下列命令让CloudQuery获取资源,并将转换的资源规范化处理,然后转换为指定的SQL数据库:
cloudquery init aws
获取到了生成的config.hcl文件之后,我们就可以使用下列命令获取云端资源了:
docker run -p 5432:5432 -e POSTGRES_PASSWORD=pass -d postgres
cloudquery fetch --dsn "postgres://postgres:pass@localhost:5432/postgres?sslmode=disable"
接下来,运行下列命令查看PostgreSQL数据库信息:
psql -h localhost -p 5432 -U postgres -d postgres
postgres=# dt
List of relations
Schema | Name | Type | Owner
--------+-------------------------------------------------------------+-------+----------
public | aws_autoscaling_launch_configuration_block_device_mapping | table | postgres
public | aws_autoscaling_launch_configurations | table | postgres
此时,我们就可以在psql shell中运行命令来执行下列参考示例了。
枚举ec2镜像
SELECT * FROM aws_ec2_images;
查找所有公开的AWS负载均衡器
SELECT * FROM aws_elbv2_load_balancers WHERE scheme = 'internet-facing';
运行CloudQuery策略
CloudQuery提供了现成的策略,你可以按原样使用这些策略,也可以根据你的用例进行修改。
比如说,如果你想要运行AWS CIS策略,请输入以下命令(确保通过fetch命令预先获取了所有资源):
./cloudquery policy run aws-cis-1.2.0
编译和运行
go build .
./cloudquery # --help to see all options
项目地址
https://github.com/cloudquery/cloudquery
相关文章
- 干货 -Gulp打包支持await/async语法
- 可视化学习 Go并发编程
- 盘点| NIPS(神经信息处理系统进展大会)机器学习相关内容
- 5个最重要的分布式系统设计模式
- nuclio:新的无服务器化超级英雄
- 一行可以让项目启动快 70% 以上的代码
- 多线程进程fork出来的进程是单线程还是多线程?
- 核心算法|谷歌如何从网络的大海里捞到针
- 实时股票预测的开源参考结构
- Docker系列—简介概述
- 简单的方式发送邮件,让程序出错自动发邮件
- 文件下载,竟难住了我们CTO...
- 建造者模式——不止提高代码档次
- Cors跨域(一):深入理解跨域请求概念及其根因
- 文言文编程还不够好玩?这里有个16岁高中生开发的粤语编程项目
- GitHub 机密扫描现在支持 PyPI 和 RubyGems
- 用Go语言编写一门工具的终极指南
- 性能优化:关于缓存的一些思考
- 一个著名的日志系统是怎么设计出来的?
- PHP代码简洁之道——SOLID原则