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