Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Azure允许在共享物理基础结构上运行应用程序和virtual machines(VM)。 在云环境中运行应用程序的主要经济效益之一是能够在多个客户之间分配共享资源的成本。 这种多租户的做法通过以低成本在不同客户之间共享资源来提高效率。 遗憾的是,它还引入了共享物理服务器和其他基础结构资源的风险,以运行可能属于任意和潜在恶意用户的敏感应用程序和 VM。
本文概述了Azure如何针对恶意和非恶意用户提供隔离。 它通过为架构师提供各种隔离选择,作为构建云解决方案的指南。
租户级别隔离
云计算的主要优势之一是同时在众多客户之间共享、通用基础结构的概念,从而导致规模经济。 此概念称为多租户。 Microsoft持续工作,以确保 Microsoft Cloud Azure的多租户体系结构支持安全性、机密性、隐私、完整性和可用性标准。
在启用云的工作区中,租户是拥有和管理该云服务的特定实例的客户端或组织。 通过使用Microsoft Azure提供的标识平台,租户是组织注册Azure云服务时接收和拥有的Microsoft Entra ID专用实例。
每个 Microsoft Entra 目录都是不同的,并与其他 Microsoft Entra 目录分开。 就像公司办公大楼是特定于组织的安全资产一样,Microsoft Entra 目录是一种安全资产,仅供组织使用。 Microsoft Entra 体系结构隔离了客户数据和身份信息,避免混合存放。 此设计意味着一个 Microsoft Entra 目录的用户和管理员不能意外或恶意地access另一目录中的数据。
Azure租赁
Azure租赁(Azure订阅)是指客户和计费关系以及Microsoft Entra ID中唯一的租户。 Microsoft Entra ID和其Azure基于角色的访问控制在Microsoft Azure中提供租户级别隔离。 每个Azure订阅都与一个Microsoft Entra 目录相关联。
目录中的用户、组和应用程序可以管理Azure订阅中的资源。 可以使用Azure portal、Azure命令行工具和Azure管理 API 来分配这些access权限。 安全边界在逻辑上将这Microsoft Entra租户隔离,以便客户无法访问或破坏共同租户,无论是恶意的还是意外的。 Microsoft Entra ID 运行在隔离的网络段内的裸金属服务器上,使用主机级数据包筛选和 Windows 防火墙来阻止不需要的连接和流量。
要访问Microsoft Entra ID中的数据,必须通过安全令牌服务(STS)进行用户身份验证。 授权系统利用有关用户的存在情况、启用状态和角色的信息,以确定在此会话中,此用户对目标租户的访问请求是否获得授权。
租户是独立的容器,这些容器之间没有关系。
除非租户管理员通过联合身份验证或通过从其他租户配置用户帐户来授予访问权限,否则租户之间不存在访问权限。
对包含 Microsoft Entra 服务的服务器的物理访问以及对 Microsoft Entra ID 后端系统的直接访问受到限制。
Microsoft Entra 用户对物理资产或位置没有访问权限,因此他们无法绕过上述逻辑 Azure RBAC 策略检查。
对于诊断和维护需求,请使用采用即时特权提升系统的运作模型。 Microsoft Entra 特权身份管理(PIM)引入了合格管理员的概念。合格管理员是需要偶尔特权访问但不是每天都需要的用户。 角色在用户需要访问时处于非活动状态,然后用户完成激活过程,并在预先设定的时间段内成为活跃管理员。
Microsoft Entra ID在其专属的受保护容器中托管每个租户,容器的访问和内部的策略及权限仅由租户拥有和管理。
租户容器的概念深深植根于各个层级的目录服务中,从门户一直延续到持久性存储。
即使来自多个Microsoft Entra租户的元数据存储在同一物理磁盘上,除目录服务定义的租户容器外,它们之间没有任何关系,而这些定义又是由租户管理员决定的。
Azure基于角色的访问控制(Azure RBAC)
Azure 基于角色的访问控制(Azure RBAC)通过为 Azure 提供精细的访问管理,帮助共享 Azure 订阅中可用的各种组件。 Azure RBAC 使你能够在组织内划分职责,并根据用户完成工作所需授予访问权限。 相较于在 Azure 订阅或资源中给每个人提供无限制的权限,你可以只允许某些操作。
Azure RBAC 具有适用于所有资源类型的三个基本角色:
Owner对所有资源具有完全访问权限,包括将访问权限委派给其他人的权利。
Contributor可以创建和管理所有类型的Azure资源,但不能向其他人授予access。
Reader可以查看现有Azure资源。
Azure中其余Azure角色允许管理特定的Azure资源。 例如,虚拟机参与者角色允许用户创建和管理虚拟机。 它不会让他们访问虚拟机连接到的 Azure 虚拟网络或子网。
Azure内置角色列出Azure中可用的角色。 它们指定了每个内置角色向用户授予的操作和范围。 如果要定义自己的角色以获得更多控制,请参阅如何在 Azure RBAC 中生成 Custom 角色。
Microsoft Entra ID的一些其他功能包括:
Microsoft Entra ID 无论 SaaS 应用程序托管在哪里,都支持单点登录(SSO)。 某些应用程序与Microsoft Entra ID联合,而另一些应用程序则使用密码 SSO。 联合应用程序还可以支持用户预配和密码存储。
Microsoft Entra ID通过联合身份验证提供标识即服务,方法是使用 Active Directory Federation Services、同步和复制与本地目录。
Microsoft Entra 多重身份验证要求用户使用移动应用、电话呼叫或短信验证登录。 它可与 Microsoft Entra ID 配合使用,通过多重身份验证服务器以及使用 SDK 的自定义应用程序和目录来帮助保护本地资源。
Microsoft Entra 域服务允许在不部署域控制器的情况下将Azure virtual machines加入Active Directory domain。 可以使用公司 Active Directory 凭据登录到这些虚拟机,并使用组策略对所有 Azure 虚拟机强制实施安全基线来管理已加入域的虚拟机。
Microsoft Entra External ID为面向consumer的应用程序提供高度可用的全局标识管理服务,可扩展到数亿个标识。 它可以跨移动平台和 Web 平台进行集成。 使用者只需使用现有社交帐户或创建凭据,即可通过可自定义的体验登录到所有应用程序。
从Microsoft管理员隔离和数据删除
Microsoft采取有力措施保护数据免受未经授权的人员不当access或使用。 Online Services条款提供合同承诺,这些承诺管理您对数据的访问,并支持这些操作流程和控制措施。
- Microsoft工程师默认情况下不能访问您的云数据。 相反,只有在必要时并在管理监督下,才被授予访问权限。 该访问经过仔细控制和记录,一旦不再需要就会被吊销。
- Microsoft 可能雇佣其他公司代表其提供有限的服务。 分包商只能access客户数据,以提供Microsoft雇用他们的服务,并且禁止将其用于任何其他目的。 此外,它们以合同方式绑定到保持客户的信息的机密性。
Microsoft和认可的审核公司定期验证经审核的认证(如 ISO/IEC 27001)的业务服务。 这些审核员进行抽样审计,以证明访问仅用于合法的业务目的。 您可以随时出于任何原因访问自己的客户数据。
如果删除任何数据,Microsoft Azure删除数据,包括任何缓存副本或备份副本。 对于范围内服务,删除发生在保留期结束后的 90 天内。 (Online Services条款中的数据处理条款章节定义适用的服务。)
如果用于存储的磁盘驱动器出现硬件故障,Microsoft会安全地擦除或销毁驱动器上的数据,然后将驱动器返回给制造商进行更换或修理。 驱动器上的数据会被覆盖,以确保无法通过任何方式恢复数据。
计算隔离
Microsoft Azure提供了各种基于云的计算服务,其中包括各种可自动纵向扩展和缩减的计算实例和服务,以满足应用程序或企业的需求。 这些计算实例和服务在多个级别提供隔离,以保护数据,而不会牺牲客户所需的配置灵活性。
独立虚拟机大小
Azure 计算提供虚拟机大小,这些大小独立于特定硬件类型,并专门为单个客户服务。 独立规格在特定的硬件代上有效并运行,当硬件代停用或新硬件代可用时,它们将被停用。
独立虚拟机大小最适合需要与其他客户工作负荷高度隔离的工作负荷。 有时需要满足合规性和法规要求。 使用独立大小可保证你的虚拟机是在特定服务器实例上唯一运行的虚拟机。
此外,由于独立大小的虚拟机较大,客户可以选择使用 Azure 对嵌套虚拟机的支持来细分这些虚拟机的资源。
当前的独立虚拟机产品/服务包括:
- Standard_E80ids_v4
- Standard_E80is_v4
- Standard_E104i_v5
- Standard_E104is_v5
- Standard_E104id_v5
- Standard_E104ids_v5
- Standard_M192is_v2
- Standard_M192ims_v2
- Standard_M192ids_v2
- Standard_M192idms_v2
- Standard_F72s_v2
- Standard_M832ids_16_v3
- Standard_M832is_16_v3
- Standard_M896ixds_24_v3
- Standard_M896ixds_32_v3
- Standard_M1792ixds_32_v3
注意事项
由于硬件淘汰,独立 VM 大小的生命周期有限。
弃用独立的 VM 大小
独立 VM 大小的寿命受硬件限制。 Azure会提前12个月提醒您有关规格的正式弃用日期,并为您提供更新的独立产品选择以供考虑。 以下尺寸已宣布停用。
| 大小 | 隔离停用日期 |
|---|---|
| Standard_DS15_v2 | 2021 年 5 月 15 日 |
| Standard_D15_v2 | 2021 年 5 月 15 日 |
| Standard_E64i_v3 | 2022 年 2 月 15 日 |
| Standard_E64is_v3 | 2022 年 2 月 15 日 |
| Standard_M192is_v2 | 2027 年 3 月 31 日 |
| Standard_M192ims_v2 | 2027 年 3 月 31 日 |
| Standard_M192ids_v2 | 2027 年 3 月 31 日 |
| Standard_M192idms_v2 | 2027 年 3 月 31 日 |
客户还可以选择使用 Azure 对嵌套虚拟机的支持进一步细分这些隔离虚拟机的资源。
专用主机
除了前面部分所述的独立主机之外,Azure还提供专用主机。 Azure中的专用主机是一项服务,提供可以托管一个或多个virtual machines的物理服务器,专用于单个Azure订阅。 专用主机在物理服务器级别提供硬件隔离。 您的主机上没有其他虚拟机。 在同一数据中心进行部署的专用主机,并且与其他非隔离主机共享相同的网络和存储基础设施。 有关详细信息,请参阅Azure专用主机的详细概述。
根虚拟机与客体虚拟机之间的 Hyper-V 和根操作系统隔离
Azure的计算平台基于计算机虚拟化。 所有客户代码都在 Hyper-V 虚拟机中运行。 在每个Azure节点(或网络终结点)上,虚拟机管理程序直接在硬件上运行,并将节点划分为可变数量的来宾虚拟机(VM)。
每个节点还有一个运行宿主操作系统的特殊根 VM。 虚拟机监控程序和根操作系统管理根虚拟机与来宾虚拟机的隔离,以及来宾虚拟机之间的隔离。 此虚拟机监控程序和根操作系统的配合利用了微软几十年的操作系统安全经验,以及最近从微软Hyper-V获得的学习成果,提供了对来宾VM的强隔离。
Azure平台使用虚拟化环境。 用户实例作为独立的虚拟机运行,并且这些虚拟机无法访问物理主机服务器。
Azure虚拟机监控程序的行为就像微内核一样。 它通过使用名为 VM 总线的共享内存接口,将客户虚拟机的所有硬件访问请求传递到主机进行处理。 该架构可防止用户获取对系统的原始读取、写入或执行访问权限,并降低共享系统资源的风险。
高级 VM 放置算法及侧通道攻击防护
任何跨 VM 攻击都包括两个步骤:在同一主机上放置一个攻击者控制的 VM 作为牺牲品 VM 之一,并破坏隔离边界以窃取敏感的牺牲品信息,或者故意或因贪婪影响其性能。 Microsoft Azure通过使用高级 VM 放置算法,并在防范包括噪声邻居 VM 在内的所有已知侧信道攻击方面,提供双重保护。
Azure织物控制器
Azure Fabric 控制器将基础结构资源分配给租户工作负荷,并管理从主机到virtual machines的单向通信。 VM 放置算法非常复杂,几乎不可能在物理主机级别预测。
在 Azure 中,根 VM 运行一个叫做根 OS 的加固操作系统,它承载了一个构造代理(FA)。 FAs在客户虚拟机的操作系统中管理来宾代理(GA),并管理存储节点。
Azure 虚拟机管理程序、根 OS/FA 和客户 VM/GA 的集合构成一个计算节点。 结构控制器(FC)管理 FA。 FC 存在于计算节点和存储节点之外。 单独的 FC 管理计算和存储群集。 如果客户在运行应用程序时更新其配置文件,FC 将与 FA 通信。 FA 联系 GA,GA 会通知应用程序配置更改。 发生硬件故障时,FC 会自动找到可用的硬件,并在该处重启 VM。
结构控制器到代理的通信是单向的。 代理实施受 SSL 保护的服务,仅响应来自控制器的请求。 它无法启动与控制器或其他特权内部节点的连接。 FC 将所有响应视为不受信任。
隔离从根 VM 扩展到来宾 VM,从一个来宾 VM 扩展到另一个来宾 VM。 计算节点也与存储节点隔离开,以提高保护。
虚拟机监控程序和主机 OS 提供网络数据包筛选器。 这些筛选器有助于确保不受信任的虚拟机无法生成伪造流量或接收未定向到它们的流量。 它们将流量定向到受保护的基础结构终结点,并阻止发送或接收不适当的广播流量。
由织物控制器代理配置的用于隔离虚拟机的附加规则
默认情况下,创建虚拟机时会阻止所有流量。 然后,结构控制器代理将数据包筛选器配置为添加规则和例外,以允许授权的流量。
计划两类规则:
- 计算机配置或基础结构规则: 默认情况下,将阻止所有通信。 添加例外,以允许虚拟机发送和接收 DHCP 和 DNS 流量。 虚拟机还可以将流量发送到公共互联网,并将流量发送到同一 Azure 虚拟网络内的其他虚拟机和操作系统激活服务器。 虚拟机允许的传出目标列表中不包括 Azure 路由器子网、Azure 管理和其他微软的属性。
- Role 配置文件:此文件根据租户的服务模型定义入站访问控制列表(ACL)。
VLAN 隔离
每个群集包含三个 VLAN:
- 主 VLAN - 用于连接不受信任的客户节点
- FC VLAN - 包含受信任的 FC 及支持系统
- 设备 VLAN - 包含受信任的网络和其他基础结构设备
从 FC VLAN 到主 VLAN 的通信是允许的,但不能从主 VLAN 发起到 FC VLAN 的通信。 还会阻止从主 VLAN 到设备 VLAN 的通信。 此体系结构可确保即使运行客户代码的节点遭到入侵,它也无法攻击 FC 或设备 VLAN 上的节点。
存储隔离
计算与存储之间的逻辑隔离
作为其基本设计的一部分,Microsoft Azure将基于 VM 的计算与storage分开。 这种分离使计算和存储能够独立扩展,从而更轻松地实现多租户和隔离。
因此,Azure Storage在单独的硬件上运行,与Azure计算(逻辑连接除外)没有网络连接。 此设计意味着在创建虚拟磁盘时,系统不会为其整个容量分配磁盘空间。 相反,系统会创建一个表,该表将虚拟磁盘上的地址映射到物理磁盘上的区域。 此表最初为空。 首次在虚拟磁盘上写入数据时,系统会在物理磁盘上分配空间,并在表中放置指向它的指针。
使用存储访问控制进行隔离
在 Azure Storage 中,访问控制使用简单的访问控制模型。 每个Azure订阅都可以创建一个或多个storage帐户。 每个存储帐户都有一个密钥,用于控制访问该存储帐户中的所有数据。
使用存储访问控制进行隔离
可以通过 SAS(共享访问签名) 令牌来控制 对 Azure Storage 数据(包括表格)的访问,SAS 令牌授予了限定范围的访问权限。 通过查询模板(URL)创建 SAS,并使用 SAK (存储帐户密钥)对其进行签名。 可以将签名的 URL提供给另一个进程(即委托)。 然后,委托的进程可以填写查询的详细信息,并向存储服务发出请求。 通过使用 SAS,可以向客户端授予基于时间的访问权限,而无需透露存储帐户的密钥。
通过使用 SAS,可以向客户端授予对storage帐户中指定时间段内具有指定权限集的对象的限制权限。 无需共享帐户访问密钥即可授予这些受限权限。
IP级存储隔离
可以为受信任客户端建立防火墙,定义 IP 地址范围。 通过使用 IP 地址范围,只有具有定义范围内的 IP 地址的客户端才能连接到 Azure Storage。
可以使用网络机制将专用的流量隧道分配给 IP 存储,从而保护 IP 存储数据免受未经授权用户的访问。
加密
Azure提供以下类型的加密来保护数据:
- 传输中加密
- 静态加密
传输中加密
传输中的加密可在跨网络传输时保护数据。 通过使用 Azure Storage,可以使用以下方法保护数据:
- 传输层加密,如在将数据传入或传出 Azure Storage 时使用的 HTTPS。
- 线缆加密,例如用于 Azure 文件共享的 SMB 3.0 加密。
- Client 端加密,在将数据传输到storage之前对其进行加密,并在将数据从storage传出后解密数据。
静态加密
对许多组织而言, 静态数据加密 是实现数据隐私性、合规性和数据所有权的必要措施。 提供静态数据加密的Azure功能包括:
- Storage服务加密将数据写入Azure Storage时自动加密数据。
- 客户端加密在将数据传输到存储之前对其进行加密。
- 主机加密 为 VM 数据提供端到端加密。
主机加密
重要
Azure Disk Encryption定于 2028 年 15 月 15 日停用。 在该日期之前,可以继续使用Azure Disk Encryption而不中断。 2028 年 9 月 15 日,已启用 ADE 的工作负荷将继续运行,但 VM 重启后加密磁盘将无法解锁,从而导致服务中断。
使用 主机端加密 用于新 VM。 所有已启用 ADE 的 VM(包括备份)必须在停用日期之前迁移到主机上的加密,以避免服务中断。 有关详细信息,请参阅 从 Azure 磁盘加密迁移到宿主加密。
主机加密 通过加密 VM 主机级别的数据,为 VM 数据提供端到端加密。 默认情况下,它使用平台管理的密钥,但如果需要更大的控制,可以选择使用存储在 Azure Key Vault 或 Azure Key Vault 托管 HSM中的客户管理的密钥。
主机加密使用符合 FIPS 140-2 标准的 AES 256 加密在 VM 主机级别提供服务器端加密。 此加密在不使用 VM CPU 资源的情况下发生,并为以下项提供端到端加密:
- 临时磁盘
- OS 和数据磁盘缓存
- 数据流到Azure Storage
主机加密的主要优势:
- 无性能影响:加密发生在主机级别,而不使用 VM CPU 资源
- 广泛的 VM 支持:大多数 VM 系列和大小都受支持
- 客户托管密钥:可选择与用于密钥控制的 Azure Key Vault 或托管 HSM 集成
- 平台管理的密钥默认为:加密不需要其他配置
有关详细信息,请参阅 主机加密 和 托管磁盘加密选项概述。
SQL 数据库隔离
Microsoft SQL 数据库是基于 Microsoft SQL Server 引擎构建的基于云的关系数据库服务。 它提供高度可用、可扩展的多租户数据库服务,在帐户级别、基于地理位置/区域和网络的可预测数据隔离,这一切都实现了几乎零管理。
SQL 数据库应用程序模型
从应用程序的角度,SQL 数据库提供如下层次结构,每个级别都包含一个或多个下级。
帐户和订阅是 Microsoft Azure 平台中的概念,用于关联计费和管理。
逻辑 SQL 服务器和数据库是属于 SQL 数据库的特定概念,可以使用 SQL 数据库提供的 OData 和 TSQL 接口或通过 Azure portal 进行管理。
SQL 数据库中的服务器不是物理实例或 VM 实例,而是数据库、共享管理和安全策略的集合,它们存储在所谓的“逻辑主”数据库中。
逻辑主数据库包括:
- 用于连接到服务器的 SQL 登录名
- 防火墙规则
同一服务器中数据库的计费和使用情况相关信息不保证位于群集中的同一物理实例中,应用程序在连接时必须提供目标数据库名称。
从客户的角度看,服务器是在某个地理区域中创建的,但实际上,服务器是在该区域内的一个群集中创建的。
通过网络拓扑进行隔离
创建服务器并注册其 DNS 名称时,DNS 名称指向放置服务器的特定数据中心中所谓的 网关 VIP 地址。
VIP(虚拟 IP 地址)后面有一组无状态网关服务。 通常,当多个数据源(主数据库、用户数据库等)之间需要协调时,网关会参与其中。 网关服务实现以下功能:
- TDS 连接代理。 此函数包括定位后端集群中的用户数据库,执行身份验证过程,然后将 TDS 数据包转发到后端并返回。
- 数据库管理。 此函数包括实现工作流集合来处理 CREATE、ALTER 和 DROP 数据库作。 可通过探查 TDS 数据包或显式 OData API 调用数据库操作。
- CREATE、ALTER 和 DROP 身份验证和用户操作
- 通过 OData API 执行服务器管理操作
网关后面的层称为 后端。 此层以高可用性方式存储所有数据。 每个数据片段都属于 分区 或 故障转移单元,每个分区至少有三个副本。 SQL Server引擎存储和复制副本,故障转移系统通常称为 fabric 管理它们。
通常,作为安全预防措施,后端系统不会与其他系统进行出站通信。 此通信保留给前端(网关)层中的系统。 网关层计算机在后端计算机上具有有限的特权,以减少攻击面为深层防御机制的组成部分。
按机器功能和访问进行隔离
SQL 数据库由针对不同计算机功能运行的服务组成。 SQL 数据库分为 后端 云数据库和 前端 (网关/管理)环境,流量的一般原则只进入后端,而不是流出。前端环境可以与其他服务的外部世界通信,通常后端只有有限的权限(足以调用它需要调用的入口点)。
网络隔离
Azure部署具有多层网络隔离。 下图显示了Azure为客户提供的各种网络隔离层。 这些层包括Azure平台本身的原生功能和客户定义的功能。 从互联网入站的大规模攻击,Azure DDoS 防护提供隔离以保护 Azure。 下一层隔离是客户定义的公共 IP 地址(终结点),用于确定哪些流量可以通过云服务传递到virtual network。 本地 Azure 虚拟网络隔离可确保与所有其他网络完全隔离,并且流量仅通过用户配置的路径和方法流动。 这些路径和方法就是下一个安全层,在该层中,可以使用 NSG、UDR 和网络虚拟设备来创建隔离边界,以保护受保护网络中的应用程序部署。
流量隔离(Traffic isolation):虚拟网络 是 Azure 平台上的流量隔离边界。 一个virtual network中的Virtual machines(VM)无法直接与不同virtual network中的 VM 通信,即使这两个虚拟网络都是由同一客户创建的。 隔离是一个关键属性,可确保客户 VM 和通信在virtual network中保持私密。
Subnet根据 IP 范围在virtual network内提供额外的隔离层。 可以将virtual network划分为多个子网,实现组织和安全性。 部署到virtual network中的子网(相同或不同)的 VM 和 PaaS 角色实例可以相互通信,而无需进行任何额外的配置。 还可以根据安全规则配置 网络安全组(NSG), 以允许或拒绝发到 VM 实例的网络流量。 可以将 NSG 与子网或附加到 VM 的单个网络接口相关联。 将 NSG 与子网相关联时,安全规则将应用于该子网中的所有 VM 实例。
后续步骤
了解 网络安全组。 网络安全组筛选virtual network中Azure资源之间的网络流量。 可以使用安全规则根据源、目标、端口和协议,限制到子网或虚拟机的流量。
了解 Azure 中的虚拟机隔离。 Azure计算提供独立于特定硬件类型和专用于单个客户的虚拟机大小。