freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

Aardvark:一个针对多账户AWS IAM访问与身份管理的API框架
2024-07-31 21:33:37

关于Aardvark

Aardvark是一个针对多账户AWS IAM访问与身份管理的API框架和缓存层,该工具可以帮助广大研究人员在一个平台下轻松管理多个AWS账号的IAM安全。

工具要求

aniso8601==8.0.0

astroid==2.4.2

attrs==19.3.0

better-exceptions==0.1.7

blinker

boto3==1.20.43

botocore==1.23.43

bunch==1.0.1

certifi==2023.7.22

chardet==3.0.4

Click==7.0

click-log==0.3.2

cloudaux==1.8.0

decorator==4.4.0

deepdiff==3.3.0

defusedxml==0.6.0

docutils==0.15.2

dogpile.cache==0.8.0

flagpole==1.1.1

flasgger==0.6.3

Flask==1.0.2

Flask-RESTful==0.3.5

Flask-Script==2.0.5

Flask-SQLAlchemy>=2.5

gunicorn==19.7.1

idna==2.8

importlib-metadata

inflection==0.3.1

isort==4.3.21

itsdangerous==1.1.0

Jinja2

jmespath==0.9.4

joblib==0.14.0

jsonpickle==1.2

jsonschema==3.1.1

lazy-object-proxy==1.4.2

MarkupSafe==1.1.1

marshmallow==2.20.5

mccabe==0.6.1

mistune==0.8.4

more-itertools==7.2.0

pexpect==4.7.0

psycopg2-binary==2.9.3

ptyprocess==0.6.0

pylint==2.6.0

pyrsistent==0.15.4

python-dateutil==2.8.0

pytz==2017.2

PyYAML

requests==2.31.0

retrying==1.3.3

simplejson==3.16.0

six==1.12.0

SQLAlchemy==1.3.10

swag-client==0.4.6

tabulate==0.8.5

tqdm==4.40.0

Werkzeug==0.16.0

wrapt==1.11.2

zipp==0.6.0

工具安装

由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好最新版本的Python 3.6+环境。

接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:

git clone https://github.com/Netflix-Skunkworks/aardvark.git

然后切换到项目目录中,并运行下列命令激活虚拟环境,然后执行工具安装脚本:

cd aardvark

python3 -m venv env

. env/bin/activate

python setup.py develop

工具配置

使用Aardvark配置向导将指导我们完成设置:

% aardvark config

 

Aardvark can use SWAG to look up accounts. https://github.com/Netflix-Skunkworks/swag-client

Do you use SWAG to track accounts? [yN]: no

ROLENAME: Aardvark

DATABASE [sqlite:////home/github/aardvark/aardvark.db]:

# Threads [5]:

 

>> Writing to config.py

创建数据表

aardvark create_db

工具使用

收集数据

未使用SWAG:

aardvark update -a 123456789012,210987654321

使用SWAG:

aardvark update

或通过账户名称/标签收集:

aardvark update -a dev,test,prod

API使用

启动API:

aardvark start_api -b 0.0.0.0:5000

使用API,并通过传递count和/或page参数来控制分页:

curl localhost:5000/api/1/advisors

curl localhost:5000/api/1/advisors?phrase=SecurityMonkey

curl localhost:5000/api/1/advisors?arn=arn:aws:iam::000000000000:role/SecurityMonkey&arn=arn:aws:iam::111111111111:role/SecurityMonkey

curl localhost:5000/api/1/advisors?regex=^.*Monkey$

Docker使用

Aardvark 还可以使用Docker和Docker Compose进行部署,Aardvark服务建立在共享容器上,我们需要安装Docker和Docker Compose才能运行此功能。

如需为一组账户配置容器,请在在此目录的根目录中创建一个.env文件,并在此文件中定义环境变量:

AARDVARK_ROLE=Aardvark

AARDVARK_ACCOUNTS=<account id>

AWS_DEFAULT_REGION=<aws region>

AWS_ACCESS_KEY_ID=<your access key>

AWS_SECRET_ACCESS_KEY=<you secret key>

名称

服务

描述

AARDVARK_ROLE

collector

Aardvark 将承担的角色的名称,以便它可以收集数据。

AARDVARK_ACCOUNTS

collector

如果使用 SWAG,则为可选,否则为必需。将其设置为 SWAG 帐户名称标签列表或 AWS 帐号列表,以便从中收集访问顾问记录。

AWS_ARN_PARTITION

collector

如果未使用 AWS 商业区域,则为必填项。例如,aws-us-gov。默认情况下,这是aws。

AWS_DEFAULT_REGION

collector

sts:AssumeRole如果未在具有适当实例配置文件的 EC2 实例上运行,则必需。将这些设置为具有 Aardvark 审计角色权限的 AWS IAM 用户的凭证。

AWS_ACCESS_KEY_ID

collector

sts:AssumeRole如果未在具有适当实例配置文件的 EC2 实例上运行,则必需。将这些设置为具有 Aardvark 审计角色权限的 AWS IAM 用户的凭证。

AWS_SECRET_ACCESS_KEY

collector

sts:AssumeRole如果未在具有适当实例配置文件的 EC2 实例上运行,则必需。将这些设置为具有 Aardvark 审计角色权限的 AWS IAM 用户的凭证。

AARDVARK_DATABASE_URI

collector和apiserver

指定 SQL Alchemy 支持的自定义数据库 URI。默认情况下,这将使用该AARDVARK_DATA_DIR值创建 SQLLite 数据库。示例:sqlite:///$AARDVARK_DATA_DIR/aardvark.db

构建容器:

docker-compose build

开启容器:

docker-compose up

清理环境:

docker-compose down

移除容器:

docker-compoes rm

许可证协议

本项目的开发与发布遵循Apache-2.0开源许可协议。

项目地址

Aardvark:【GitHub传送门

参考资料

https://github.com/Netflix-Skunkworks/swag-client

https://pythonhosted.org/blinker/

# 安全管理 # AWS # AWS帐户 # AWS安全 # AWS IAM
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录