云时代,如何保护你的企业数据安全?
大家对云服务产品的数据安全的担忧主要有两个方面:
产品内部人员会不会有意或无意泄露用户数据?
如何应对来自外部的破坏,如服务器故障、黑客攻击等?
作为产品的开发者和维护者,码云的技术人员无法避免需要有访问服务器的权限,如何确保权限不被滥用、保证平台数据的安全呢?在这一篇,我们将针对第 1 点,介绍码云的内部安全治理措施。
码云目前包括几个大系统:应用系统、仓库存储系统、运维系统、备份系统以及基础服务,它们各自独立运行在一组服务器上。
应用系统:包括 Web 访问入口、API 接口
仓库存储系统:用来存储 Git 仓库,此系统只包含仓库存放以及一个 RPC 服务,RPC 服务用来给应用系统提供访问仓库的能力,仓库存储系统不提供对外的网络连接。
运维系统:负责监控应用系统和仓库存储系统,以及负责应用的更新和日志的收集
备份系统:包括仓库的备份以及企业仓库的快照服务
基础服务:包括数据库、缓存、队列、邮件发送服务等等,除邮件发送服务外,其他服务均不提供对外的网络连接
基于这样的架构,我们的安全治理措施主要有:
1. 严格限制访问服务器的权限范围
目前,码云内部只有 4 个人有访问服务器的权限——总负责人、运维负责人、两名资深开发工程师。
其中,仓库存储系统和备份系统仅总负责人和运维负责人有访问权限,运维系统只允许运维负责人访问。权限界定清晰,且不同系统账号密码不同。
2. 所有操作留痕,一切有据可查
每个登录到服务器上的工作人员使用独立的账号,任何操作记录(包括登录记录)都会被记录,并传输到运维系统中存放,无法更改或抹除。一旦发现问题,即可迅速定位。
同时,我们会定期对服务器操作日志进行审计,确保不出现违规操作。
3. 全自动化更新,将人工操作降到最低
码云产品迭代快速,几乎每天都会需要更新程序,这个操作是由 Ansible自动化完成,不需登录服务器即可完成。也就是说,权限人也极少需要登录服务器,极大降低了风险。
码云至今已运行经超过 5 年,我们深知代码对用户的意义,始终将数据安全视为整个产品的生命线,把安全作为第一优先级的任务,不容许半点闪失。
我们会不遗余力确保所有用户数据的安全,依托平台资源优势,让码云成为比自建代码管理系统更安全、可靠的平台。