运维人必看:除了查百度账号,你的手机号还在哪些关键系统里?一个脚本帮你批量检测
运维自动化手机号在关键系统中的批量检测方案每次接手新服务器、处理员工离职或进行安全审计时最头疼的就是搞不清楚一个手机号到底绑定了多少系统。手动一个个平台检查不仅效率低下还容易遗漏关键系统。作为运维工程师我们需要更智能的解决方案。1. 为什么需要手机号批量检测在典型的IT环境中一个手机号可能关联着数十个关键系统云服务平台AWS、阿里云、腾讯云的控制台账号监控告警系统Prometheus、Zabbix、Grafana的告警配置代码仓库GitLab、GitHub、Bitbucket的账户绑定CI/CD工具Jenkins、GitLab CI、ArgoCD的通知设置内部系统OA、VPN、堡垒机等认证系统去年我们团队处理过一次安全事件发现一个已离职员工的手机号仍然绑定了7个重要系统的告警通知。这种安全隐患完全可以通过自动化检测提前发现。2. 检测脚本的核心设计思路一个完善的手机号检测脚本应该具备以下能力class PhoneNumberScanner: def __init__(self, phone_number): self.phone phone_number self.results {} def check_cloud_platforms(self): # 检查主流云服务商 pass def check_monitoring_systems(self): # 检查监控系统配置 pass def check_ci_cd_tools(self): # 检查CI/CD系统 pass def generate_report(self): # 生成易读的报告 pass提示脚本应该采用模块化设计方便后续添加新的检测模块3. 具体实现方案3.1 云平台检测实现主流云服务商都提供了API接口来查询账号信息云平台API端点认证方式AWSiam.ListUsersAccess Key阿里云DescribeUsersRAM AccessKey腾讯云DescribeUserSecretId/Keydef check_aws(self): client boto3.client(iam) response client.list_users() for user in response[Users]: if self.phone in user.get(Phone, ): self.results[AWS] user[UserName]3.2 监控系统检测方案对于Prometheus等监控系统通常需要检查Alertmanager配置# 在Prometheus服务器上执行 grep -r your_phone_number /etc/prometheus/alertmanager.yml对于Zabbix可以使用其APIdef check_zabbix(self): api ZabbixAPI(http://zabbix.example.com) api.login(api_user, password) triggers api.trigger.get(filter{status: 0}) for trigger in triggers: if self.phone in trigger[description]: self.results[Zabbix] trigger[description]3.3 代码仓库与CI系统检测GitLab提供了完善的REST API来查询用户信息def check_gitlab(self): headers {Private-Token: your_access_token} response requests.get(https://gitlab.example.com/api/v4/users, headersheaders) for user in response.json(): if user[mobile] self.phone: self.results[GitLab] user[username]对于Jenkins可以通过其脚本控制台查询Jenkins.instance.getAllItems(com.cloudbees.plugins.credentials.Credentials.class).each { cred - if(cred.phoneNumber your_phone_number) { println(Found in ${cred.id}) } }4. 实战案例与优化建议在一次客户环境中我们使用增强版脚本发现了以下绑定关系AWS根账户用于紧急联系人3个GitLab账号分别对应不同时期的开发项目Zabbix监控5个关键业务告警配置内部堡垒机SSH登录二次验证注意执行批量检测前确保获得了合法的授权优化后的脚本加入了以下功能多线程检测将检测任务并行化结果缓存避免重复查询相同系统敏感信息处理自动脱敏输出报告定时任务定期自动执行检测from concurrent.futures import ThreadPoolExecutor def run_checks(self): with ThreadPoolExecutor(max_workers5) as executor: futures [ executor.submit(self.check_cloud_platforms), executor.submit(self.check_monitoring_systems), executor.submit(self.check_ci_cd_tools) ] for future in futures: future.result()5. 安全与合规考量实施手机号批量检测时必须注意权限最小化脚本使用的账号只需只读权限日志记录详细记录脚本执行情况数据加密敏感信息必须加密存储法律合规确保符合当地隐私法规我们团队在使用这类工具时通常会先与法务部门确认检测范围并在员工入职合同中明确相关条款。