当前位置: 首页 > news >正文

DNS 故障导致微软 Azure 云服务的数据库被删除

开发四年只会写业务代码,分布式高并发都不会还做程序员?  hot3.png

微软 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 客户面临的更大问题。周二,全球的云服务遭到破坏,引发了一系列问题。其中包括间歇性访问 Office 365 失败,Azure 云资源的调度使用也下降了。

根据微软当时的 Azure 状态页面,这个问题反过来又归结为 DNS 中断故障:

初步根本原因:工程师发现了与外部 DNS 供应商的 DNS 故障。

缓解方案:DNS 服务被转移到另一个 DNS 提供商,暂时缓解了这个问题。

报告显示,此次 DNS 故障来自 CenturyLink,后者为微软提供 DNS 服务。该公司在一份声明中说,当天遭遇了软件缺陷。这表明当基于云的系统互连并且足够自动化以允许级联故障时可能会出现问题。由于缺乏人工干预,DNS 供应商的软件缺陷间接导致了客户实时信息的删除。

CenturyLink 最近似乎遇到了串行 DNS 问题。该公司在2017年底完成了以 340 亿美元收购大型网络运营商 Level 3的 计划,该公司还在12月遭遇了 DNS 中断事故,据报道,该中断影响了紧急服务,引发了联邦通信委员会的调查。

参考:https://nakedsecurity.sophos.com/

相关文章:

  • 05-内联函数
  • CF每日一练(2.8)
  • 研究人员发现 macOS 可获取用户密码的 0day 漏洞
  • vue3.0 记录01
  • Fedora logo 改版最新进展:已有三个候选方案
  • 前端设计模式
  • 区块链将重新定义世界
  • 时间复杂度与空间复杂度分析
  • 面试必备指南:你的系统如何支撑高并发?
  • [学习笔记]虚树
  • Iterator 和 for...of 循环
  • SharePoint:如何使用PowerShell批量删除名称以XXX开始的List?
  • Kafka之与Spring集成
  • python 模块一览
  • 《流浪地球》:一个程序员用代码拯救了世界,真硬核!
  • @jsonView过滤属性
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 0x05 Python数据分析,Anaconda八斩刀
  • Android组件 - 收藏集 - 掘金
  • Invalidate和postInvalidate的区别
  • Java深入 - 深入理解Java集合
  • maven工程打包jar以及java jar命令的classpath使用
  • Meteor的表单提交:Form
  • miaov-React 最佳入门
  • rc-form之最单纯情况
  • Redis 懒删除(lazy free)简史
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 安卓应用性能调试和优化经验分享
  • 动态魔术使用DBMS_SQL
  • 浮动相关
  • 近期前端发展计划
  • 警报:线上事故之CountDownLatch的威力
  • 判断客户端类型,Android,iOS,PC
  • 让你的分享飞起来——极光推出社会化分享组件
  • 如何学习JavaEE,项目又该如何做?
  • 设计模式 开闭原则
  • 使用Gradle第一次构建Java程序
  • 说说动画卡顿的解决方案
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 异常机制详解
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • #《AI中文版》V3 第 1 章 概述
  • #AngularJS#$sce.trustAsResourceUrl
  • #Linux(权限管理)
  • #每天一道面试题# 什么是MySQL的回表查询
  • (C语言)逆序输出字符串
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (LeetCode C++)盛最多水的容器
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (python)数据结构---字典
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别