当前位置:黑鲸出海 > 热点资讯 > 干货分享 >  Azure 中高度敏感的 IaaS 应用的安全注意事项

Azure 中高度敏感的 IaaS 应用的安全注意事项

发表时间:2021-08-13  来源:Microsoft  作者:Microsoft  浏览:次  
将 基础结构即服务 (IaaS) 应用部署到 Azure 时,有许多安全注意事项。 本文基于基于虚拟机的工作负荷和混合网络基础结构的参考体系结构,重点介绍 azure 中基于 azure 安全基础的高度敏感 IaaS 工作负荷的安全性。

将 基础结构即服务 (IaaS) 应用部署到 Azure 时,有许多安全注意事项。 本文基于基于虚拟机的工作负荷和混合网络基础结构的参考体系结构,重点介绍 azure 中基于 azure 安全基础的高度敏感 IaaS 工作负荷的安全性。

另请参阅 azure 虚拟机安全概述 和 azure 中 IaaS 工作负荷的安全最佳方案。

Azure VM

Azure 计算平台基于计算机虚拟化。 虚拟机监控程序 在每个 Azure 节点或网络终结点的物理硬件上运行,并在节点中 (vm) 创建可变数量的来宾 hyper-v 虚拟机。 所有用户代码都在 Vm 上执行。 有关基本 azure VM 部署说明,请参阅在 azure 上运行 Linux VM或在 azure 上运行 Windows VM。 对于两个操作系统 (OSs) ,大多数部署过程都是相同的,但特定于操作系统的工具(如磁盘加密)可能不同。

可以使用 Azure 安全中心 进行 VM 修补管理并部署和监视 反恶意软件工具。 或者,你可以管理自己的或第三方修补和反恶意软件工具,这在将现有基础结构扩展或迁移到 Azure 时很常见。

Microsoft 在 Azure 平台中提供基本的 分布式拒绝服务 (DDoS) 保护。 具有公共终结点的应用可以使用标准的 Azure DDoS 保护 来提供额外的保护。 但是,高度敏感的工作负荷通常不具有公共终结点,只能通过 虚拟专用网络 (VPN) 或租用线路来访问特定位置。

N 层体系结构

许多 IaaS 应用程序由多个层组成,如跨多个 Vm 托管的 web 层、业务层和数据层。 在 Azure Vm 上部署 n 层 应用程序体系结构的关键方面包括:

  • 高可用性 (HA) 。 HA 应用在超过99.9% 的时间内必须可用。 在不同的 Azure 可用性 (区域 中放置 AZs) 可确保 HA,因为 AZs 跨一个或多个数据中心,通过抵抗数据中心故障提供复原能力。 不支持 AZs 的区域可以使用 (类) 的 可用性集 ,该将 vm 分布到多个独立的硬件节点。

  • 负载均衡。 负载均衡 器在 vm 之间分配流量,平衡负载并在 VM 发生故障时进行复原。 如果应用程序管理负载均衡,并为调用方识别单个 Vm,则不需要负载均衡器。

  • 虚拟网络。 虚拟网络 和子网将网络分段,从而实现更轻松的安全管理和高级路由。

  • 域名系统 (DNS)。 Azure DNS 提供高度可用且安全的 DNS 服务。 使用 Azure DNS 中的 专用区域 可以在虚拟网络中使用自定义域。

备份和还原

若要防止人为错误、恶意数据删除和勒索软件,你应该至少备份数据层 Vm。 Azure 备份 可以 备份和还原加密的 vm (如果它可以访问 Azure Key Vault 中的加密密钥)。

对于 web 和企业层,你可以使用 虚拟机规模集 自动缩放规则来自动 销毁已泄露的 vm ,并从基本映像部署新的 VM 实例。

计算隔离

在每个 Azure 节点或网络终结点上,虚拟机监控程序和特殊的根 OS 确保来宾 Vm 无法访问物理主机服务器,用户代码仅在来宾 Vm 上执行。 这种隔离可防止用户获取对系统的原始读取、写入或执行访问权限,并减轻共享资源的风险。 Azure 通过虚拟机监控程序和高级 VM 布局算法防止所有已知的 两侧通道攻击 和 干扰邻居 。 有关详细信息,请参阅 计算隔离。

对于高度敏感的工作负载,你可以针对 隔离的 vm 或 专用主机,添加对侧通道攻击的额外保护。

独立 Vm

独立 Vm 是与特定硬件类型隔离并专用于单个客户的大型 VM 大小。 使用隔离的 VM 大小可保证你的 VM 是在特定服务器实例上运行的唯一 VM。 可以使用 Azure 支持嵌套虚拟机进一步细分隔离 vm 的资源。

独立 VM 的最小大小为64虚拟 CPU 核心和 256 GiB 的内存。 这些 Vm 远远大于大多数 n 层应用程序所需的数量,并可能产生较大的成本开销。 为了降低开销,可以在具有嵌套虚拟化的单个 VM 上运行多个应用层,或者在不同的进程或容器中运行。 你仍需要在 AZs 中部署不同的 Vm 以进行复原,并在不同的 Vm 上 (DMZ) 设备上运行隔离区 。 出于经济原因将多个应用组合到一个基础结构上可能还会与组织应用隔离策略发生冲突。

随着 Azure 区域功能的扩展,Azure 还可以从特定的 VM 大小中删除隔离保障,只需要一年的通知即可。

Azure 专用主机

Azure 专用主机 是适用于高敏感度工作负载的首选计算隔离解决方案。 专用主机是专用于一个客户的物理服务器,用于托管多个虚拟机。 除隔离 Vm 外,专用主机还允许控制 维护 和 VM 位置,以避免邻居干扰。

专用主机

专用主机的最小大小和多个大小因素与隔离的 Vm 相同。 不过,专用主机可以托管位于不同虚拟网络中的 Vm,以满足应用程序隔离策略的需要。 你仍应在另一台主机上运行 DMZ vm,以防止任何侧通道攻击发生在 DMZ 中的受入侵 VM。

Encryption

数据加密是保护工作负荷的重要组成部分。 加密对信息进行编码,因此只有授权的接收方可以使用密钥或证书对其进行解码。 加密包括 磁盘加密,适用于静态静态数据和 传输级安全 (TLS),用于通过网络进行的加密传输。

Azure Key Vault

你可以通过将加密密钥和证书存储在 Azure Key Vault中,将其存储在 (HSM) 解决方案验证为联邦信息处理标准 (FIPS) 140-2 级别2的云 硬件安全模块 中。 有关仅允许已授权的应用程序和用户访问 Key Vault 的最佳实践,请参阅 保护对密钥保管库的访问。

若要保护 Key Vault 中的密钥,可以启用 软删除,这可确保删除的密钥是可恢复的。 为了进一步保护,你可以将 单个密钥备份 到可用于 还原密钥的加密文件,这可能是同一地理位置的另一 Azure 区域。

当在 VM 上托管 SQL Server 时,可以使用 用于 Microsoft Azure Key Vault 的 SQL Server 连接器获取 透明数据加密的密钥 (TDE)列级加密 (CLE) 和备份加密。 有关详细信息,请参阅为Azure 虚拟机上的 SQL Server 配置 Azure Key Vault 集成。

Azure 磁盘加密

Azure 磁盘加密使用 BitLocker 外部密钥保护程序为 Azure Vm 的 OS 和数据磁盘提供卷加密,并可与 Azure Key Vault 集成,以帮助你控制和管理磁盘加密密钥和机密。 每个 VM 都会生成自己的加密密钥,并将其存储在 Azure Key Vault 中。 若要配置 Azure Key Vault 以启用 Azure 磁盘加密,请参阅 创建和配置 Azure 磁盘加密的密钥保管库。

对于高度敏感的工作负载,还应使用 (KEK) 的密钥加密密钥 ,以实现额外的安全性。 指定 KEK 时,Azure 磁盘加密将使用该密钥在写入到 Key Vault 之前包装加密机密。 可以 Azure Key Vault 生成 KEK,但更安全的方法是在本地 HSM 中生成密钥并将其导入到 Azure Key Vault 中。 这种情况通常被称为自带密钥,简称 BYOK。 由于导入的密钥不能离开 HSM 边界,因此在 HSM 中生成密钥可确保你完全控制加密密钥。

HSM 保护的加密

有关受 HSM 保护的密钥的详细信息,请参阅 如何为 Azure Key Vault 生成和传输受 hsm 保护的密钥。

网络流量加密

类似于 HTTPS 的网络协议会加密传输中的数据和证书。 客户端到应用程序通信通常使用受信任的 证书颁发机构颁发的证书 (CA)。 内部应用可以使用内部 CA 或公共 CA (如 DigiCert 或 GlobalSign)中的证书。 层到层通信通常使用由内部 CA 颁发的证书或自签名证书。 Azure Key Vault 可以容纳其中的任何证书类型。 有关创建不同证书类型的详细信息,请参阅 证书创建方法。

Azure Key Vault 可以用作层到层流量的自签名证书 CA。 KEY VAULT vm 扩展 可在 vm 上使用或不使用私钥来监视和自动刷新指定的证书,具体取决于用例。 若要使用 Key Vault VM 扩展,请参阅适用于Linux 的 Key Vault 虚拟机扩展或适用于 Windows 的 Key Vault 虚拟机扩展。

Key Vault 还可以存储不使用证书的网络协议密钥。 自定义工作负荷可能需要编写 自定义脚本扩展 的脚本,从 Key Vault 检索密钥,并将其存储起来供应用程序使用。 应用还可以使用 VM 的 托管标识 直接从 Key Vault 检索机密。

网络安全性

(Nsg 的网络安全组) 在 Azure 虚拟网络中的资源之间筛选流量。 NSG 安全规则根据 IP 地址和端口允许或拒绝进出 Azure 资源的网络流量。 默认情况下,Nsg 阻止来自 internet 的入站流量,但允许来自 Vm 的出站连接到 internet。 若要防止意外的出站流量,请添加最低优先级为4096的自定义规则以阻止所有入站和出站流量。 然后,你可以添加优先级更高的规则来允许特定的流量。

Nsg 为现有连接创建流记录,并根据流记录的连接状态允许或拒绝通信。 流记录允许 NSG 是有状态的。 例如,如果为端口443上的任何地址指定出站安全规则,则无需同时为响应指定入站安全规则。 仅当在外部启动通信时,才需要指定入站安全规则。

大多数 Azure 服务都允许使用 虚拟网络服务标记 ,而不是 NSG。 服务标记代表 Azure 服务中的一组 IP 地址前缀,有助于最大程度地减少网络安全规则更新的复杂性。 Azure Key Vault 服务标记可以允许 VM 从 Azure Key Vault 检索证书、密钥和机密。

控制网络安全的另一种方法是通过 虚拟网络流量路由 和 强制隧道。 Azure 自动创建系统路由,并将路由分配到虚拟网络中的每个子网。 无法创建或删除系统路由,但可以使用自定义路由替代某些系统路由。 使用自定义路由,你可以通过 网络虚拟设备路由流量 (NVA) 如防火墙或代理,或删除不需要的流量,这与使用 NSG 阻止流量类似。

可以使用 Nva 等 Azure 防火墙 来允许、阻止和检查网络流量。 Azure 防火墙是一种托管的、高度可用的平台防火墙服务。 你还可以从 Azure Marketplace部署第三方 nva。 若要使这些 Nva 高度可用,请参阅 部署高度可用的网络虚拟设备。

应用程序安全组

若要在虚拟网络内筛选应用程序层之间的流量,请使用 (Asg) 的 应用程序安全组 。 Asg 使你可以将网络安全配置为应用程序结构的扩展,使你能够对 Vm 进行分组,并根据组定义网络安全策略。 你可以大规模重复使用安全策略,而无需手动维护显式 IP 地址。

应用程序安全组

因为 Asg 应用于网络接口而不是子网,所以它们会启用微细分。 你可以严格控制哪些 Vm 可以相互通信,甚至会阻止同一层中 Vm 之间的流量,并通过从该 VM 删除 Asg 来轻松隔离 VM。

混合网络

混合体系结构将本地网络与 Azure 等公有云连接起来。 可以通过多种方式将本地网络连接到在 Azure 中运行的应用程序:

  • Internet 上的公共终结点。 可以依赖标识、传输级别安全 (HTTPS) 和应用程序网关来保护应用程序(可能与防火墙结合)。 但对于高度敏感的工作负载,不建议通过 internet 公开公共终结点。

  • Azure 或第三方 VPN 网关。 可以使用 AZURE VPN 网关将本地网络连接到 Azure。 流量仍通过 internet 传播,但通过使用 TLS 的加密隧道。 如果 Azure VPN 网关不支持特定要求,还可以在 VM 中运行第三方网关。

  • ExpressRoute。 ExpressRoute 连接通过第三方连接提供商使用专用连接。 专用连接将本地网络扩展到 Azure,并 (SLA) 提供可伸缩性和可靠服务级别协议。

    • 具有 VPN 故障转移的 ExpressRoute。 此选项在正常情况下使用 ExpressRoute,但如果在 ExpressRoute 线路中出现连接中断,则会故障转移到 VPN 连接,从而提供更高的可用性。

    • 基于 ExpressRoute 的 VPN。 此选项最适合高敏感度工作负荷。 ExpressRoute 提供具有可伸缩性和可靠性的专用线路,VPN 提供额外的保护层,可在特定的 Azure 虚拟网络中终止加密的连接。

有关在不同类型的混合连接之间进行选择的更多指导,请参阅 选择用于将本地网络连接到 Azure 的解决方案。

部署外围网络

连接本地和 Azure 环境可让本地用户访问 Azure 应用程序。 外围网络或外围网络 区域 (DMZ) 为高度敏感的工作负荷提供额外的保护。

Azure 与本地数据中心之间网络外围网络之间的体系结构在同一虚拟网络中部署所有的 DMZ 和应用程序服务,并使用 NSG 规则和用户定义的路由来隔离 DMZ 和应用程序子网。 此体系结构可以通过公共 internet 提供管理子网,以便在本地网关不可用的情况下管理应用。 但对于高度敏感的工作负载,只应允许绕过 中断玻璃方案中的网关。 更好的解决方案是使用 Azure 堡垒,这使得直接可以从 Azure 门户进行访问,同时限制公共 IP 地址的公开。

你还可以使用实时 (JIT) VM 访问 进行远程管理,同时限制公共 IP 地址的公开。 使用 JIT VM 访问时,默认情况下,NSG 会阻止远程管理端口,如 远程桌面协议 (RDP) 和 安全 SHELL () SSH 。 发出请求后,JIT VM 访问仅在指定的时间范围内启用该端口,可能会为特定的 IP 地址或范围启用此端口。 JIT 访问还适用于仅具有专用 IP 地址的 Vm。 在启用 JIT VM 访问之前,可以使用 Azure 堡垒阻止到 VM 的流量。

若要部署更多应用程序,可以在 Azure 中使用 中心辐射型网络拓扑 ,并在中心虚拟网络中使用外围网络,并在辐射虚拟网络中使用应用程序。 中心虚拟网络可以包含 VPN 和/或 ExpressRoute 网关、防火墙 NVA、管理主机、标识基础结构和其他共享服务。 辐射虚拟网络通过 虚拟网络对等互连连接到中心。 Azure 虚拟网络不允许跨中心从一个分支传递到另一个分支的传递路由。 仅可通过集线器中的防火墙设备进行辐射到辐射的通信。 这种体系结构有效地将应用程序隔离开来。

多区域部署

业务连续性和灾难恢复可能需要跨多个 Azure 区域部署应用程序,这可能会影响数据驻留和安全性。 有关多区域部署的参考体系结构,请参阅 在多个 Azure 区域中运行 N 层应用程序以实现高可用性。

区域对

Azure 地理位置是世界上定义的一种区域,其中包含至少一个 Azure 区域,每个区域有一个或多个数据中心。 每个 Azure 区域与同一地理位置 中的另 一个区域配对。 区域对不会同时更新,并且如果发生灾难,这两个区域的优先级均为第一项。 对于业务连续性,如果在多个区域部署,则应将高度敏感的应用至少部署到区域对。

有关更多详细信息,请参阅 业务连续性和灾难恢复 (BCDR) : Azure 配对区域。 白皮书 实现符合性的数据派驻和安全性-Azure 讨论了 数据驻留,还讨论了如何满足数据驻留要求。

区域之间的复制

在 IaaS 体系结构中,在区域之间复制数据是应用程序的责任。 最常见的复制方案使用数据库服务器产品中内置的数据库复制技术,如SQL Server Always On 可用性组、 Oracle 数据防护或MySQL 复制。

在 IaaS 数据库服务器之间设置复制并不简单,您需要考虑业务连续性要求。 Azure 数据库服务(例如Azure SQL 数据库、Azure Database for MySQL 和Cosmos DB在区域之间进行复制更简单,但可能不满足高度敏感的工作负载的安全要求。

有关多区域 SQL Server 和 Oracle 部署的详细信息和指南,请参阅:

  • 在位于不同区域的 Azure SQL Server 虚拟机上配置可用性组

  • 在 Azure 环境下的 Oracle Database 12c 数据库灾难恢复

跨区域对等互连

可以通过使用全局 虚拟网络对等互连在不同区域的虚拟网络之间启用安全通信。 全局对等互连与在区域内对等互连的工作方式相同。 区域之间的流量通过 Microsoft 主干运行,不遍历 internet,并与其他流量隔离。 为了获得更高的安全性,可以在这两个区域中部署 VPN Nva,并使用 用户定义的路由 来强制 nva 上各区域之间的流量,类似于 部署外围网络。

故障转移流量路由

使用公用终结点,可以使用 流量管理员或 Azure 前门将流量定向到 主动-主动 故障转移配置中的活动区域或最近的区域。 但是,流量管理员和 Azure 前端都需要公共终结点来监视可用性,并且它们对应的 DNS 条目是公共的。 对于高度敏感的工作负载,替代解决方案是在本地部署 DNS,并将条目更改为活动区域以进行故障转移。

管理和治理

保护高度敏感的 IaaS 应用不仅仅需要部署正确的体系结构和实现网络安全规则。 由于云环境很容易改变,因此,确保只能在某些权限和安全策略的边界内进行更改,这一点特别重要。 例如,你必须防止恶意执行组件无法更改网络安全规则以允许来自 internet 的流量。

若要在 Azure 中部署工作负荷,需要一个或多个 管理帐户。 保护管理帐户对于保护工作负荷至关重要。 有关详细信息,请参阅 在 Azure AD 中保护混合和云部署的特权访问。

使用管理子网中的资源仅向需要管理该层的用户授予应用层访问权限。 例如,可以将Microsoft Identity Manager与 Azure Active Directory (Azure AD) 一起使用。 但对于云本机方案,Azure AD Privileged Identity Management (PIM) 是首选的。

还可以通过多种方法控制 Azure 角色和策略:

  • Azure 资源的 azure RBAC) (azure 基于角色的访问控制可将内置或自定义角色分配给用户,因此他们只拥有所需的特权。 可以结合使用 Azure RBAC 与 PIM 来实现在有限时间段内提升权限的审核的审批工作流。

  • 策略强制实施公司规则、标准和 Sla。 Azure 策略 是一种 azure 服务,可用于创建、分配和管理策略,并评估资源的策略符合性。

  • Azure 蓝图 结合角色分配、策略分配和部署模板来定义一组可复制的 Azure 资源,这些资源可实现并遵循组织的标准、模式和要求。 蓝图是一种声明性方式,用于协调资源模板和其他项目的部署。 你可以自己创建蓝图,也可以利用现有蓝图。 例如 ,ISO 27001 共享 服务蓝图会部署一个共享服务中心,你可以修改并扩展该中心,并满足组织的要求。

监视

Azure 安全中心 提供监视和警报,帮助你维护环境的安全性。 免费服务会自动检查漏洞,例如缺少 OS 修补程序、安全配置错误和基本网络安全。 标准付费版本提供了其他功能,例如行为分析、自适应网络强化和JIT VM 访问。 有关功能的完整列表,请参阅 计算机的功能覆盖范围。 安全中心还为 其他资源( 如安全中心)Azure Key Vault。

可以使用 Azure Monitor进 一步监视和分析。 若要监视标识和访问,可以将Azure AD日志路由到 Azure Monitor。 还可以监视VM、网络和 Azure 防火墙,并分析具有强大日志查询功能导入的日志。 你可以将Azure Monitor安全信息和事件管理器 (SIEM) ( 可以是第三方 SIEM或 Azure Sentinel)。

注:文章源自于互联网,如有侵权,请联系客服删除。
19951839869
黑鲸出海客服