云网络与基础设施即代码(第一部分):云网络基础知识





5.00/5 (2投票s)
Azure 虚拟网络作为隔离和保护云资源的常用方法简介
您的 Web 应用程序或服务的前端通常是公开可用的。要访问它们,您的用户只需要知道公共 IP 或域名和端口。然而,在幕后,所有请求都由后端处理,后端可以包含许多子服务。
为了保护您的解决方案,请确保不要将您的后端暴露给公众。相反,将连接限制为仅来自前端的流量。同时,运行您的后端服务的基础设施(如虚拟机 (VM) 或容器)必须连接到互联网以接收软件更新或访问第三方服务。要在 Azure 中实现这种连接控制,您可以使用 Azure 虚拟网络 (VNet)。
Azure VNet 使您能够在 Azure 中创建虚拟专用网络。这种基于云的虚拟专用网络在逻辑上与同一云中的其他网络和客户隔离。这意味着您可以通过将 VM 和容器等资源启动到 VNet 中来隔离它们。VNet 还允许您指定 IP 范围和子网,以及关联安全组和路由表。
您可以将 VNet 视为类似于传统的家庭网络或本地网络。有多种方法可以配置它来控制访问。例如,您可以强制执行 MAC 地址过滤,以仅允许来自注册设备的连接。您还可以创建多个子网。加入一个子网的设备彼此可见,但与连接到不同子网的设备隔离。您可以通过定义谁可以访问敏感信息(例如,在网络附加存储 (NAS) 中)来确保额外的安全性。最后,您还可以使用防火墙和路由表过滤和路由流量。
类似的策略也可以应用于云。将 VNet 视为一个基于软件的路由器,您可以像配置本地路由器一样配置它。您可以创建 IP 范围、子网、网络流量过滤器、路由表和 NAT 网关。
使用 VNet 的关键场景包括
- Azure 服务与互联网之间的通信
- Azure 服务之间以及与本地资源的通信
- 过滤和路由网络流量
- 保护网络流量
更具体地说,您可以创建包含两个子网的 VNet。运行应用程序前端(VM 或容器)的工作负载可以部署到公开暴露给互联网的子网。然后,运行后端的工作负载可以部署到只能由前端服务访问的另一个子网中。所有其他传入网络流量都可以被阻止以保护您的后端。
您还可以使用 VNet 来实现 Azure 资源和本地资源之间的安全通信。重要的是,使用 VNet 不会产生任何额外成本。
创建和使用 VNet
要开始使用 Azure 门户创建 VNet,您首先需要提供资源组、名称和区域
然后,您使用无类别域间路由 (CIDR) 表示法配置 IP 地址范围并创建子网
最后,您可以启用 BastionHost、DDoS 防护和防火墙。我们将在本教程的最后一部分了解如何配置这些组件。
创建 VNet 后(此处 VNet 名称设置为 db-vnet-sample
),您可以将其用于您的 Azure 资源。例如,您可以将 VM 部署到 VNet 中
您还可以将其他 Azure 资源部署到此 VNet 中,例如在创建 Azure Kubernetes 服务 (AKS) 实例时。创建 Kubernetes 集群时,导航到网络选项卡,然后选择 Azure CNI 作为网络配置。如果 AKS 部署到与您的 VNet 相同的区域,则下拉列表中将包含您的 VNet
控制连接
现在,与本地网络一样,您需要添加特定的规则和配置,这将更改默认连接。
为此,您可以使用网络访问控制 (NAC)。通过 NAC,您可以将对服务的访问权限指定给 VNet 中经批准的用户或设备。Azure 提供了多种服务,使您能够配置网络访问控制。
最受欢迎的工具之一是网络安全组 (NSG)。
网络安全组
NSG 基于 IP 地址和网络协议,使您能够筛选 VNet 中 Azure 资源的入站和出站流量。配置 NSG 时,您提供一组安全规则,这些规则可以根据源和目标(例如 IP 范围)、服务、协议和端口范围允许或拒绝流量。这是一个示例
所有规则都根据优先级按顺序处理。数字越小,优先级越高,这意味着数字较小的规则将在数字较大的规则之前处理。
指定所有规则后,将 NSG 附加到 VNet 中的子网,如下所示
路由
默认情况下,Azure 路由 VNet 中所有子网之间的流量。要覆盖此默认配置,您可以指定自己的路由。通过控制路由,您可以确保来自设备或服务的所有流量通过特定位置进入或离开 VNet。例如,您可以确保所有流量都通过虚拟网络安全设备。
要定义自定义路由,您可以使用用户定义的规则 (UDR)。为此,您首先创建路由表
配置路由表后,您将创建路由。如下截图所示,每条路由都必须包含名称、地址前缀目标(例如 IP 地址范围)、下一跳类型和下一跳地址
设置路由表后,将其与 VNet 中的子网关联
应用程序安全组
应用程序安全组 (ASG) 类似于网络安全组,但它在应用程序上下文中运行。通过 ASG,您可以将一组资源(如 VM)归类到通用应用程序标签下。然后,您定义流量规则,这些规则会自动应用于标记资源中的所有资源。
如何保护 VNet
保护 VNet 的两种常见方法包括 Azure 防火墙和 DDOS 防护。
Azure 防火墙
Azure 防火墙是一种基于云的托管防火墙服务。它分析受信任网络 (VNet) 和不受信任网络之间的流量。Azure 防火墙的目的是检测和阻止任何恶意网络流量。它提供两个层级:标准版和高级版。标准版在第 3-7 层工作以检测恶意流量,而高级版提供用于快速攻击检测的高级功能。
预配 Azure 防火墙时,您需要提供名称、Azure 区域,然后是可用区(见下文)。之后,您需要选择您的 VNet。
请注意,VNet 应包含名为 AzureFirewallSubnet
的子网。
预配防火墙后,您应该使用 VNet 设置将其添加到 VNet 中。
DDOS 防护
分布式拒绝服务 (DDOS) 旨在耗尽您的应用程序,使其无法供用户使用。您可以在设置 VNet 时启用 DDOS 防护。
启用 DDOS 防护后,部署在 VNet 中的所有资源都会自动受到 DDOS 保护。
私有链接和服务终结点
创建基于云的解决方案时,最大的挑战和担忧之一是访问本地网络。对于某些架构——尤其是在用户数据保护至关重要的情况下——您希望创建混合解决方案。因此,VNet 提供了私有链接资源。此服务使您能够从 VNet 或本地网络私密访问 Azure 资源。
当您需要安全访问部署到 VNet 的资源时,您还可以使用服务终结点。服务终结点提供与资源的安全直接连接。通过服务终结点,您可以从 VNet 中的私有 IP 地址访问 Azure 服务的终结点。否则,如果没有服务终结点,您将需要将公共 IP 添加到 VNet 中。
VNet 对等互连
您还可以使用 VNet 对等互连连接一个或多个 VNet。因此,连接的 VNet 将有效地作为一个虚拟网络工作。部署到各个 VNet 的 VM 和其他资源之间的流量将在它们之间路由。因此,所有资源都将能够连接。
摘要
在本文中,我们介绍了 Azure 虚拟网络作为隔离和保护您的云资源的方法。我们讨论了云网络基础知识,并解释了几个网络安全概念,包括网络安全组、路由控制、防火墙和 DDOS 防护。我们还了解了私有链接和服务终结点。
在下一篇文章中,我们将学习如何使用 Terraform 通过基础设施即代码自动化 VNet 部署和预配。
要详细了解 IaC 如何将测试和版本控制等软件工程实践应用于您的 DevOps 实践,请参阅资源 基础设施即代码。