项目简介
本项目旨在提升AWS账号的安全性。在使用AWS服务且不可避免使用AccessKey的情况下,定期更换密钥能降低被盗用风险。项目利用Python和AWS相关服务,提供手动检查和Lambda自动检查通知两种方式,帮助用户及时发现并处理使用时长过长的访问密钥,自动检查通知以企业微信为例展示。
项目的主要特性和功能
主要特性
- 提供手动和自动两种检查方式,可灵活适应不同场景需求。
- 借助AWS Lambda和EventBridge实现自动定期检查,减少人工操作。
- 支持将检查结果通知到企业微信等后端软件。
主要功能
- 手动检查:能通过AWS控制台或aws cli命令行查看访问密钥的创建时间,还可选择停用有风险的密钥。
- 自动检查通知:每30天自动执行Lambda函数,检查该账户下所有超过30天的AccessKey,并将相关信息通知到企业微信。
安装使用步骤
假设用户已经下载了本项目的源码文件。
手动检查
控制台方式
- 登录AWS控制台,进入IAM(Identity and Access Management)身份管理服务。
- 在用户(User)的安全证书(security certificate)栏位下,访问密钥处查看当前User所创建的访问密钥列表,检查每个访问密钥的创建时间,可选择停用有风险的密钥。
aws cli方式
- 在终端键入
aws iam list-access-keys
,查看当前User所创建的访问密钥列表,根据CreateDate
检查每个访问密钥的创建时间。 - 若要停用对应访问密钥,在终端键入
aws iam delete-access-key --access-key-id AKIxxxxxx72
(将access-key-id替换为您的access key id)。
Lambda自动检查并通知
Lambda函数部署
- 创建Lambda函数:在AWS Lambda服务下创建Lambda函数,运行环境选择Python3.8,使用合适的IAM角色(为演示方便,可使用admin权限)。
- 打包并上传Lambda函数代码
- 创建虚拟环境:
python3 -m venv v-env
- 激活环境:
source v-env/bin/activate
- 安装依赖库:
pip install requests
- 停用虚拟环境:
deactivate
- 创建ZIP存档:
cd v-env/lib/python3.9/site-packages
- 添加函数代码到存档:
shell zip -r9 ${OLDPWD}/function.zip . cd $OLDPWD zip -g function.zip lambda_function.py
- 将二进制ZIP部署包上传到Lambda并更新函数代码。
- 通过更改代码或编辑函数环境变量,将
agentid
、corpid
、corpsecret
更改为企业微信对应值。
- 创建虚拟环境:
EventBridge Schedule定时事件创建
- 在Amazon EventBridge服务下,创建EventBridge计划。
- 指定计划,按照业务需求填写合适的执行频率,例如以30天为一个周期。
- 选择目标,选择Lambda作为事件的执行目标,Lambda函数选择先前部署的
auto_check_accesskey_notifier
函数,完成创建。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】