自动化GitHub扫描器:检测暴露的AWS IAM密钥

自动化GitHub扫描器:检测暴露的AWS IAM密钥

概述

这个n8n工作流能自动扫描GitHub上与你AWS账户关联的暴露IAM访问密钥,帮助安全团队快速识别并应对潜在安全漏洞。当发现泄露的密钥时,工作流会生成详细安全报告并通过Slack发送包含修复建议的告警通知。

🔑 核心功能

  • 自动化IAM密钥扫描:定期检查GitHub上暴露的AWS访问密钥
  • 实时安全告警:检测到泄露密钥时立即发送Slack通知
  • 完整安全报告:生成包含泄露信息和风险评估的详细报告
  • 可执行修复方案:提供明确的凭证保护操作指南
  • 持续监控:对AWS环境进行不间断监测

📋 工作流步骤

  1. 列出AWS用户:获取AWS账户所有用户
  2. 拆分用户处理:逐个处理用户数据
  3. 获取用户访问密钥:提取每个用户的访问密钥
  4. 筛选活跃密钥:仅处理当前有效的访问密钥
  5. GitHub密钥扫描:在代码仓库中搜索暴露的密钥
  6. 汇总扫描结果:合并去重发现项
  7. 验证密钥泄露:确认是否存在真实泄露
  8. 生成安全报告:创建密钥泄露详细报告
  9. 提取AWS用户名:从响应数据中提取通知所需的用户名
  10. 格式化Slack告警:准备完整的Slack通知内容
  11. 发送Slack通知:推送包含操作指南的告警
  12. 持续扫描:保持周期性监控循环

🛠️ 配置要求

先决条件

  • 运行中的n8n实例
  • 具备IAM权限的AWS账户
  • 拥有仓库搜索权限的GitHub账户/令牌
  • 接收通知的Slack工作区

必要凭证

  1. AWS凭证

    • 具有列出用户和访问密钥权限的IAM用户
    • 访问密钥ID和秘密访问密钥
  2. GitHub凭证

    • 具备搜索权限的个人访问令牌
  3. Slack凭证

    • 通知频道的Webhook URL

⚙️ 配置指南

  1. AWS配置

    • 在”列出AWS用户”节点配置AWS凭证
    • 确保IAM权限可列出用户和访问密钥
  2. GitHub配置

    • 在GitHub扫描节点设置访问令牌
    • 根据需要调整搜索参数
  3. Slack配置

    • 在Slack节点配置Webhook URL
    • 按需自定义通知格式

🚀 使用说明

运行工作流

  1. 手动执行:点击”执行工作流”立即扫描
  2. 定时执行:设置定期扫描计划(建议每日/每周)

仓库兼容性

本工作流兼容你有权访问的所有GitHub仓库(包括公开和私有库)。扫描范围取决于GitHub凭证的权限。

告警处理

检测到泄露密钥时:

  1. 查看Slack通知中的泄露详情
  2. 执行建议修复步骤:
    • 立即停用泄露密钥
    • 必要时创建新密钥
    • 调查泄露来源
    • 更新使用该密钥的所有服务

⚠️ 免责声明

本工作流模板仅作为自动化扫描AWS IAM密钥泄露的参考方案:

  • 扫描结果可能存在误报(仅匹配AWS密钥格式)
  • 采取行动前务必人工验证所有报告
  • 未经确认停用/删除密钥可能造成系统故障
  • 停用密钥前需明确其关联系统
  • 应根据实际环境安全策略定制模板

重要提示:请充分理解AWS环境后再使用本工作流。模板作者不对使用后果负责。

🔒 安全须知

  • 本工作流需接触敏感AWS凭证
  • 所有凭证应安全存储在n8n中
  • 定期审查并轮换访问密钥

📝 定制选项

  • 调整GitHub搜索参数实现精准扫描
  • 自定义Slack通知格式和内容
  • 按需修改安全报告生成逻辑
  • 集成其他通知渠道(邮件/MS Teams等)

可选:启用Slack交互按钮

Slack Block Kit通知格式支持交互按钮,可直接在Slack中执行操作:

  1. 停用密钥:配置为自动停用泄露的IAM密钥
  2. 查看详情:展示泄露事件的补充信息
  3. 确认:将告警标记为已处理

实现步骤:

  1. 创建Slack Socket应用

    • Slack API控制台创建应用
    • 启用Socket模式和交互组件
    • 订阅block_actions事件捕获按钮点击
  2. 配置n8n Webhook

    • 添加webhook节点接收Slack按钮事件
    • 为每个按钮动作创建独立工作流
  3. 实现密钥停用

    • 对”停用密钥”按钮,创建工作流调用AWS IAM的UpdateAccessKey API
    • n8n中的HTTP请求示例:
      方法: POST
      URL: https://iam.amazonaws.com/
      查询参数:
      Action: UpdateAccessKey
      AccessKeyId: AKIAIOSFODNN7EXAMPLE
      Status: Inactive
      UserName: {{$json.username}}
      Version: 2010-05-08
      
  4. 更新Slack消息格式

    • 修改格式化Slack告警节点添加webhook URL
    • 添加callback_id和action_id标识按钮点击

该实现允许直接从Slack界面响应安全事件,缩短响应时间并提升安全状态。

(0)
上一篇 1天前
下一篇 1天前

更多相关内容

从零掌握 AI + MCP/Responses API 的自动化设计,节省90%的时间和成本,成为AI自动化专家。学会 n8n、Coze、Dify 接入全球领先 AI应用生态,打造属于你的 AI智能工作流。