微软 Azure 云的用户发现在周二的大规模故障中丢失了数据库记录。报告称,DNS故障和自动脚本两者正是事故的罪魁祸首。微软在 Azure 中删除了几个透明数据加密(TDE,Transparent Data Encryption)的 Azure SQL数据库,其中包含客户的实时信息。TDE 数据库会动态加密它们存储的信息,并在客户访问时对其进行解密。
虽然加密这些表有不同的方法,但许多 Azure 用户将自己的加密密钥存储在微软的 Key Vault 加密密钥管理系统中,这个过程称为自带密钥(BYOK, Bring Your Own Key)。
据微软在一封发给客户的信函中解释说,这些删除操作是自动执行的,由一个脚本触发,原因在于该脚本在密钥保险库中无法再访问相应的密钥时会删除TDE数据库表。
意外删库后,微软不得不利用5分钟前的快照备份恢复了客户数据,但这意味着5分钟内客户的交易事务、产品订单以及对数据存储系统的其他更新统统丢失,需要手动进行处理。在这种情况下,客户提出必须要微软提供支持的工单,并要求将数据库副本重命名为原始数据库。
微软则一直在竭力解释:“如果 TDE 加密的 SQL数据库因无法绕过防火墙而访问不了密钥保险柜,数据库将在24小时内被删除。”
作为补偿,微软表示会免费提供数月的数据库服务:
我们对于给您服务带来的影响深表歉意。所有恢复的数据库将免除2个月的 Azure 使用费,所有原始数据库将免除3个月的使用费。我们不断采取措施以改进微软 Azure 平台和我们的流程,帮助确保将来不会发生此类事件。
那为什么会出现「删库」事故呢?答案源于本周微软及其 Azure 客户面临的更大问题。周二,全球的云服务遭到破坏,引发了一系列问题。其中包括间歇性访问Office365 失败,Azure 云资源的调度使用也下降了。
根据微软当时的 Azure 状态页面,这个问题反过来又归结为 DNS 中断故障:
初步根本原因:工程师发现了与外部 DNS 供应商的 DNS 故障。
缓解方案:DNS 服务被转移到另一个 DNS 提供商,暂时缓解了这个问题。
报告显示,此次 DNS 故障来自 CenturyLink,后者为微软提供 DNS 服务。该公司在一份声明中说,当天遭遇了软件缺陷。这表明当基于云的系统互连并且足够自动化以允许级联故障时可能会出现问题。由于缺乏人工干预,DNS 供应商的软件缺陷间接导致了客户实时信息的删除。
CenturyLink 最近似乎遇到了串行 DNS 问题。该公司在2017年底完成了以 340 亿美元收购大型网络运营商 Level 3的 计划,该公司还在12月遭遇了 DNS 中断事故,据报道,该中断影响了紧急服务,引发了联邦通信委员会的调查。
相关文章
网友评论(共有 0 条评论)