讨论云服务时,安全性是一个关键领域。实际上,Windows Azure 基础结构实施大量的技术和流程来保护环境。此页介绍 Microsoft 的全球基础服务如何运行基础结构以及它们实施的安全措施。
从根本上来说,Windows Azure 必须确保客户数据的机密性、完整性和可用性,就像任何其他应用程序托管平台一样。它还必须提供透明的责任,以允许客户及其代理亲自或由 Microsoft 跟踪对应用程序和基础结构的管理。此部分将根据到目前为止介绍的基本组件和关系,说明 Windows Azure 如何提供信息安全性的这些传统属性。
1. 用于内部控制流量的 SSL 相互身份验证
Windows Azure 内部组件之间的所有通信都通过 SSL 保护。
2. 证书和私钥管理
为了降低向开发人员和管理员公开证书和私钥所带来的风险,证书和私钥都是通过代码使用证书和私钥的机制之外的单独机制进行安装的。证书和私钥通过 SMAPI 或 Windows Azure 门户上传为 PKCS12 (PFX) 文件,上传过程中由 SSL 保护。这些 PKCS12 文件可能受密码保护,如果是这样的话,那么相同消息中还必须包括密码。SMAPI 删除密码保护(如果需要),使用 SMAPI 的公钥对整个 PKCS12 Blob 进行加密,并将其以及一个简短的证书名称(公钥作为元数据)存储到 FC 上的机密存储中。
3. 最低权限客户软件
运行拥有最低权限的应用程序普遍被认为是一种信息安全最佳实践。为了遵循最低权限原则,未为客户授予他们虚拟机的管理访问权限,并且默认情况下,Windows Azure 中的客户软件只能使用低权限的帐户运行(在未来版本中,客户可以自行选择不同的权限模型)。这减少了任何攻击的潜在影响并增加了成功进行攻击的必要难度,即攻击者要想成功,除了利用漏洞外,还需要提升权限。它还防止客户的服务受到其最终用户的攻击。
4. Windows Azure 存储中的访问控制
Windows Azure 存储具有简单的访问控制模型。每个 Windows Azure 订阅可以创建一个或多个存储帐户。每个存储帐户都拥有单个密钥,该密钥用于控制对该存储帐户中所有数据的访问。这支持以下典型情形:存储与应用程序关联,并且这些应用程序对其关联数据具有完全控制权。
5. 虚拟机管理程序、根操作系统和来宾虚拟机的隔离
一个重要边界就是将根虚拟机与来宾虚拟机隔离并将虚拟机管理程序和根操作系统管理的各来宾虚拟机分别隔离的边界。虚拟机管理程序/根操作系统配对机制利用了 Microsoft 数十年的操作系统安全经验以及 Microsoft 近年来在 Hyper-V 方面的技术来提供来宾虚拟机的强大隔离。
6. Fabric Controller 的隔离
有一些重要的控件发挥着中央控制台的作用,很大程度上是 Windows Azure Fabric 的中央控制台,这可以减轻对 Fabric Controller 的威胁,尤其是来自客户应用程序中可能已经受到危害的 FA 的攻击。从 FC 到 FA 的通信是单向的:FA 实施 SSL 保护的服务(从 FC 进行访问),并且仅回复请求。它无法启动至 FC 或其他特许内部节点的连接。FC 具有强大的功能来分析所有响应,就好像这些响应是不受信任的通信一样。
此外,FC 和无法实施 SSL 的设备位于不同的 VLAN 上,这就限制了它们的身份验证接口向托管虚拟机的受危害节点公开。
7. 数据包筛选
虚拟机管理程序和根操作系统提供网络数据包筛选器,这些筛选器可以确保不受信任的虚拟机无法执行以下操作:生成欺骗通信、接收目标并不是它们的通信、将通信指向受保护的基础结构端点、发送或接收不适当的广播通信。
8. VLAN 隔离
VLAN 用于隔离 FC 和其他设备。VLAN 对网络进行分区,以使在不经过路由器传递的情况下,VLAN 之间无法进行通信,这样可以防止受危害节点伪造从其 VLAN 外部到其 VLAN 上的其他节点的通信,并且它还无法窃听并非指向或来自其 VLAN 的通信。
9. 客户访问隔离
管理对客户环境(Windows Azure 门户、SMAPI 等)的访问的系统在 Microsoft 运行的 Windows Azure 应用程序中被隔离。这从逻辑上将客户访问基础结构与客户应用程序和存储隔离开来。
10. 删除数据
在适用情况下,在数据的有用生命周期过后应当继续对数据保密。一旦调用删除操作,Windows Azure 的存储子系统即会使客户数据变为不可用。所有存储操作(包括删除)都能够即刻保持一致。成功执行删除操作会删除对关联数据项的所有引用,并且通过存储 API 也无法访问该关联数据项。已删除数据项的所有副本随后被作为垃圾回收。当重复使用关联存储块存储其他数据时,就会覆盖物理位,这是标准计算机硬盘存在的典型情况。