当我的角色Azure VM被回收时,其他一些Azure角色是否可以读取我的角色留下的未擦除磁盘数据?

时间:2012-06-05 11:42:22

标签: windows security azure cloud

假设我的Azure角色将一些数据存储在VM本地磁盘上,然后终止。本地磁盘映射到某个物理存储,因此存储在本地磁盘上的数据被写入该存储。当我的角色终止时,回收VM并回收物理存储。

现在启动了一些其他角色,其本地磁盘恰好映射到与我的角色相同的物理存储上。我很清楚that the logical structure of the new local disk is completely rebuilt and all files possibly left by my role will just disappear。但是,新创建的逻辑磁盘下面的物理存储恰好相同。

特别假设新角色创建一个空文件,然后调用SetEndOfFile()来“扩展”该文件,然后将其打开以进行读取并读取当前存储在逻辑磁盘上的数据。除非在Azure基础结构中采取特殊措施,否则我不确定这不会导致文件扩展到我的角色存储的数据并读取该数据。

新角色在技术上是否可以读取我的角色所写的数据?

2 个答案:

答案 0 :(得分:1)

简短的回答是不,

来自guest虚拟机操作系统的所有I / O请求都由虚拟机管理程序处理,虚拟机管理程序确保insance只能访问分配的存储。

从旧角色访问数据的唯一方法是在容器中获取物理访问权并从那里获取(如果您成功通过数据中心物理安全措施并进入密封容器。)即使这样这并不容易,因为我的理解是逻辑磁盘不会将一对一映射到单个物理驱动器,而是映射到驱动器集群,因此物理上您的数据也将分散在多个磁盘上。

此外,还有适当的正式处理程序,可确保从正在处理的磁盘中删除所有数据。

亲切的问候, 伊夫

答案 1 :(得分:0)

+1给@Yves,是的,答案是否定的。

我想添加有关如何在任何Windows Azure VM中创建和使用虚拟驱动器的更多信息。您可能已经知道,每个角色(Web或Worker)中至少有3个虚拟驱动器:

  • 驱动器E:是1GB固定大小的应用程序驱动器,由FC使用用户更新的包动态创建。此驱动器未设计为具有任何用户数据。此驱动器是按用户部署创建的,因此对于每个角色都是新的。此驱动器由FC提供给Azure虚拟机,并在配置期间附加到VM。

  • 驱动器D:是OS / SYSTEM驱动器(大约25GB大小),它附加到角色并且与每个角色相同,具体取决于操作系统版本。这只是驱动器到web角色,但启动任务和工作者角色可以写入它。该驱动器是专用的OS驱动器,并认为用户不应将任何内容放在其上。

  • 驱动器C:是用户数据所在的用户驱动器。当您的应用程序中有本地存储时,将在此处创建存储。虚拟创建此驱动器取决于角色VM大小。
    • 在Windows Azure主机上,您可以创建一个小型VM或超大型VM,因此根据您的角色大小,您的VM将获得~250GB C驱动器或2TB C驱动器,并且此存储从主机获取。
    • 在主机上,连接了大量磁盘,以提供大的逻辑空间,以满足从小到大的VM大小的本地存储要求。配置角色VM时,根据在主机上创建VM的角色类型,将从总逻辑空间创建虚拟HDD,并将其作为用户驱动器连接到VM。

如果有任何来宾操作系统更新或Azure应用程序更新:

  • 更新发生在云端硬盘D:通过差异图片
  • 更新发生在云端硬盘驱动器中:通过差异图像
  • 由于驱动器C是用户驱动器,并且“本地存储”不受访客更新或角色更新的直接影响,但是如果设置了“本地存储 - 清除角色回收”属性,则角色将在何时清理本地存储回收。

当您从Azure中删除应用程序时会发生什么:

  • OS Drive D:/ Diff驱动器被丢弃
  • 应用程序驱动器E:/ Diff驱动器也被丢弃
  • 用户驱动器C:被移除,主机要求回收空间。
    • 现在,当在主机上创建新VM时,会创建一个新的用户驱动器C:,并从可用的物理空间分配空间,它可以是~250GB到~2TB之间的任何大小,具体取决于角色VM大小。
    • 即使下次在主机上配置了超大型来宾VM(需要最大大小为2TB的虚拟磁盘),VHD也会从头开始重建。所以XLarge VM的背靠背2TB虚拟磁盘仍然不一样。
    • 因此,即使您使用上述问题中提到的文件系统API,也无法从以前的磁盘恢复旧文件。

(对不起写大帖子)