Azure-管理备考指南-AZ103-全-
Azure 管理备考指南 AZ103(全)
原文:
annas-archive.org/md5/ba3f4bb724a40f5beb31fd596f62c2ae译者:飞龙
前言
Azure 是一个不断发展的平台。它提供了一个处于技术前沿的环境,适用于许多不同的行业需求。新的功能和特性快速推出,这使得保持更新变得困难。本书将从管理角度为你提供 Azure 当前所有功能和能力的完整概述,并且是准备 AZ-103 考试的完整指南。
本书将涵盖所有考试目标。它将从如何管理 Azure 订阅和资源开始,在这一部分中,你将学习如何管理 Azure 订阅和资源组,分析资源的利用和消耗,管理基于角色的访问控制(RBAC)。第二部分,你将学习如何通过创建和配置存储帐户来实现和管理存储,如何将数据导入和导出到 Azure,如何配置 Azure 文件并实施 Azure 备份。第三部分将涉及如何部署和管理虚拟机(VMs),在这里你将学习如何为 Windows 和 Linux 创建和配置虚拟机,如何管理 Azure 虚拟机和虚拟机备份。本书的第四部分将涵盖如何配置和管理虚拟网络,包括实施和管理虚拟网络,如何将本地网络与 Azure 虚拟网络集成,如何监控和排除虚拟网络的故障,如何创建和管理 Azure 安全组和 Azure DNS,以及如何实施 Azure 负载均衡器。本书的最后一部分将涵盖如何管理身份,在这一部分你将学习如何管理 Azure活动目录(AD),如何实施和管理混合身份,以及如何实施多重身份验证(MFA)。
每一章最后都会有一个进一步阅读部分,这是每一章中非常重要的一部分,因为它会提供额外的、有时是关键的信息,帮助你通过 AZ-103 考试。由于考试中的问题会随时间略有变化,而且这本书最终会过时,进一步阅读部分将是提供所有更新的地方。
本书适用对象
本书面向有经验的管理员,他们希望通过考试 AZ-103:Microsoft Azure 管理员并拓宽自己在 Azure 管理方面的知识。
本书内容
第一章,管理 Azure 订阅和资源组,涵盖如何配置 Azure 订阅和资源组,分配管理员权限,配置 Azure 订阅策略,实施并设置资源组标签,配置成本中心配额,配置资源锁,跨资源组移动资源,以及删除资源组。
第二章,分析资源利用率和消耗,涵盖了 Azure Monitor,包括如何创建和分析指标和警报,创建操作组,配置资源的诊断设置,使用 Azure Log Analytics,以及利用日志查询功能。
第三章,管理基于角色的访问控制,涵盖了 RBAC,通过分配角色配置对 Azure 资源的访问,配置 Azure 的管理访问,创建自定义角色,Azure 策略,以及实施和分配 Azure 策略。
第四章,创建和配置存储账户,涵盖了 Azure 存储账户,如何创建和配置存储账户,安装和使用 Azure Storage Explorer,配置存储账户的网络访问,生成和管理 SAS,以及实施 Azure 存储复制。
第五章,导入和导出数据到 Azure,涵盖了如何配置和使用 Azure Blob 存储,如何导入到 Azure 作业和从 Azure 导出,如何使用Azure 内容分发网络(CDN),如何配置 Azure CDN 端点,以及如何使用 Azure 数据箱。
第六章,配置 Azure 文件和实施 Azure 备份,涵盖了如何创建 Azure 文件共享和 Azure 文件共享同步服务,如何使用 Azure 备份,如何使用 Azure 站点恢复,如何执行备份和恢复操作,如何创建恢复服务保险库,以及创建和配置备份策略。
第七章,为 Windows 和 Linux 创建和配置虚拟机,涵盖了虚拟机,如何部署 Windows 和 Linux 虚拟机,配置高可用性,部署和配置规模集,以及修改和部署Azure 资源管理器(ARM)模板。
第八章,管理 Azure 虚拟机及其备份,涵盖了如何管理虚拟机大小,重新部署虚拟机,移动虚拟机,添加数据磁盘和网络接口,自动化配置管理,以及配置虚拟机备份和恢复。
第九章,实施和管理虚拟网络,涵盖了 Azure VNet、IP 地址,如何配置子网和虚拟网络,配置私有和公共 IP 地址,以及创建和配置 VNet 对等连接。
第十章,将本地网络与 Azure 虚拟网络集成,涵盖了 Azure 虚拟专用网络(VPN)网关,创建和配置 Azure VPN 网关,创建和配置站点到站点 VPN,验证本地连接性,以及 VNet 到 VNet 功能。
第十一章,监控和故障排除虚拟网络,涵盖了网络监视器、网络资源监控、管理虚拟网络连接、监控和故障排除本地连接,以及管理外部网络。
第十二章,Azure 安全组和 Azure DNS,涵盖了网络安全组(NSGs),如何创建和配置 NSG,将 NSG 关联到子网或网络接口,创建和评估安全规则,使用 Azure DNS,以及如何配置私有和公共 DNS 区域。
第十三章,实现 Azure 负载均衡器,涵盖了 Azure 负载均衡器,配置内部负载均衡器,创建健康探测,创建负载均衡规则,配置公共负载均衡器。
第十四章,管理 Azure Active Directory,涵盖了 Azure AD,如何创建和管理用户及组,添加和管理来宾帐户,执行批量用户更新,配置自助密码重置,Azure AD 加入,如何管理设备设置,以及添加自定义域。
第十五章,实现和管理混合身份,涵盖了 Azure AD Connect、如何安装 Azure AD Connect、管理 Azure AD Connect 以及管理密码同步和密码回写。
第十六章,实现多因素身份验证,涵盖了 Azure MFA,配置用户帐户进行 MFA,配置验证方法,配置欺诈警报,配置旁路选项和配置受信任的 IP。
为了最大化利用本书
本书假设你已经熟悉管理使用存储、安全、网络和云计算能力的云服务。你应该深入理解每个服务在整个 IT 生命周期中的作用。你还应该有使用 PowerShell、命令行界面、Azure 门户、ARM 模板、操作系统、虚拟化、云基础设施、存储结构和网络的经验。
下载示例代码文件
你可以从www.packt.com账户下载本书的示例代码文件。如果你从其他地方购买了本书,你可以访问www.packt.com/support,注册后将文件直接通过电子邮件发送给你。
你可以通过以下步骤下载代码文件:
-
登录或注册到www.packt.com。
-
选择“支持”选项卡。
-
点击“代码下载与勘误”。
-
在搜索框中输入书名,并按照屏幕上的指示操作。
下载文件后,请确保使用以下最新版本的工具解压或提取文件夹:
-
WinRAR/7-Zip for Windows
-
Zipeg/iZip/UnRarX for Mac
-
7-Zip/PeaZip for Linux
本书的代码包也托管在 GitHub 上,地址为github.com/PacktPublishing/Microsoft-Azure-Administrator-Exam-Guide-AZ-103。如果代码有更新,将在现有的 GitHub 仓库中更新。
我们还提供了其他代码包,来自我们丰富的书籍和视频目录,地址为github.com/PacktPublishing/。快去看看吧!
下载彩色图像
我们还提供了包含书中截图/图表彩色图像的 PDF 文件。你可以在此下载:www.packtpub.com/sites/default/files/downloads/9781838829025_ColorImages.pdf。
使用的规范
本书中使用了若干文本规范。
CodeInText:表示文本中的代码词汇、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 URL、用户输入和 Twitter 账号。例如:"打开PacktNetworkWatcher资源组并从列表中选择VM1"。
代码块如下所示:
{
"Name": "Packt Custom Role",
"Id": null,
"IsCustom": true,
"Description": "Allows for read access to Azure Storage, Network and Compute resources and access to support"
}
当我们希望引起你对代码块中特定部分的注意时,相关行或项会使用粗体显示:
{
"Name": "Packt Custom Role",
"Id": null,
"IsCustom": true,
"Description": "Allows for read access to Azure Storage, Network and Compute resources and access to support"
}
任何命令行输入或输出如下所示:
Connect-AzAccount
粗体:表示新术语、重要词汇或在屏幕上看到的词汇。例如,菜单或对话框中的词汇会像这样出现在文本中。示例:“点击顶部菜单中的 Assign。”
警告或重要提示以这种方式呈现。
提示和技巧以这种方式呈现。
联系我们
我们始终欢迎读者的反馈。
一般反馈:如果你对本书的任何部分有疑问,请在邮件主题中提及书名,并通过customercare@packtpub.com联系我们。
勘误表:尽管我们已尽最大努力确保内容的准确性,但错误仍然可能发生。如果你在本书中发现错误,我们将非常感激你向我们报告。请访问www.packt.com/submit-errata,选择你的书籍,点击勘误提交表单链接并填写相关详情。
盗版:如果你在互联网上发现任何我们作品的非法复制版本,我们将非常感激你提供其位置地址或网站名称。请通过copyright@packt.com与我们联系,并附上相关材料的链接。
如果你有兴趣成为作者:如果你在某个领域具有专业知识,并且有兴趣写作或为书籍做贡献,请访问authors.packtpub.com。
评价
请留下评价。在阅读并使用完本书后,为什么不在你购买本书的网站上留下评价呢?潜在读者可以看到并参考你的公正意见来做出购买决策,我们在 Packt 也能了解你对我们产品的看法,而我们的作者也能看到你对他们书籍的反馈。谢谢!
想了解更多关于 Packt 的信息,请访问packt.com。
第一部分:管理 Azure 订阅和资源
在本节中,你将学习如何管理 Azure 订阅和资源。
本节将涵盖以下章节:
-
第一章,管理 Azure 订阅和资源组
-
第二章,分析资源利用率和消耗
-
第三章,托管基于角色的访问控制
第一章:管理 Azure 订阅和资源组
本书将覆盖 AZ-103 考试的所有考试目标。在相关时,我们将为您提供关于本书中不同主题的额外信息和进一步阅读指导。
本书的第一章将介绍第一个目标,即如何管理 Azure 订阅和资源。在本章中,我们将专注于为管理员分配权限,以便他们可以管理您的 Azure 订阅和资源组。您将学习如何配置策略,以符合您的组织标准和 SLA。我们还将设置资源组的标记,您将学习如何配置成本中心配额和资源锁定。在完成本章时,我们将介绍如何在创建后将资源移动到不同的资源组中,以及如何完全从 Azure 订阅中删除资源组。
简而言之,本章将涵盖以下主题:
-
Azure 订阅和资源组
-
分配管理员权限
-
配置 Azure 订阅策略
-
在资源组上实施和设置标记
-
配置成本中心配额
-
配置资源锁定
-
移动资源到不同的资源组中
-
删除资源组
Azure 订阅和资源组
在我们开始涉及用于考试的目标之前,这些目标包括如何管理 Azure 订阅和资源组,我们将介绍一些关于 Azure 订阅和资源组的高级信息。
Azure 订阅
Azure 订阅基本上是 Azure 中的计费账户。除了计费之外,通过使用 Azure 订阅,可以访问 Azure 门户并在门户中创建不同的 Azure 服务。
如果您查看 Azure 账户层次结构,您将看到 Azure 订阅实际上适合哪里。下图显示了账户层次结构:

Azure 中的账户层次结构
它分为 企业、部门、账户 和 订阅 级别。在以下概述中,您将了解这些不同级别的用途:
-
企业:也称为 企业协议,仅由组织使用。可以从单独的门户 (
ea.azure.com) 访问,用于为整个组织创建不同的部门。 -
部门:在部门级别,为组织中的不同部门创建子账户。您还可以按功能方式分组部门,如 IT 和财务部门,或按地理方式分组,如北美和欧洲。您可以在此处添加部门所有者,负责管理部门预算等。
-
账户:这是不同部门可以在其部门内部创建多个账户的地方。他们还可以添加额外的所有者来管理这些账户。当你在 Azure 中创建个人账户时,这是创建订阅的起始点。你用来登录 Azure 门户的 Microsoft 账户将作为所有者添加到此账户中。
-
订阅:你可以在一个账户中创建多个订阅。这是实际计费发生的层级,也是创建不同 Azure 资源的地方。你可以添加额外的订阅所有者,管理这些订阅,创建不同的资源,并将其他用户分配到订阅中。订阅总是与 Azure Active Directory 实例建立信任关系。
在 Azure 订阅内部,你可以创建多个资源组。将在下一节中介绍。
Azure 资源组
你在 Azure 内创建的每个资源都必须属于一个资源组。资源组是一个逻辑容器,用于将多个资源组合在一起。例如,所有共享相似生命周期的资源,比如某个应用程序的所有资源,可能包括虚拟机、Azure 数据库、Azure 中的虚拟网络等,这些都可以被放入同一个资源组中。然后,你可以将这些资源作为一个整体进行管理和删除。
如果你还没有 Azure 账户,并且想要开始使用,你可以参考以下网站来创建 Azure 免费试用账户:azure.microsoft.com/en-us/free/.
在接下来的章节中,我们将为用户分配管理员权限。
分配管理员权限
有两种方法可以将管理员权限分配给用户。第一种方法是在 Azure Active Directory 内进行,主要用于分配全局管理员权限。第二种方法是使用基于角色的访问控制(RBAC),并且可以从订阅级别进行设置。
在接下来的章节中,我们将讨论这两种方法。
分配全局管理员权限
拥有全局管理员权限后,你可以管理所有的订阅和管理组。管理组提供了一种高于权限的作用域级别,可以用于一起管理多个订阅。
当一个用户被分配为全局管理员角色时,他将能够查看组织中的所有 Azure 订阅和管理组,允许自动化应用访问所有 Azure 订阅和管理组,在用户失去访问权限时重新获得对 Azure 订阅或管理组的访问权限,并授予其他用户(或自己)访问 Azure 订阅或管理组的权限。
要在订阅级别为用户分配管理员权限,请按照以下步骤操作:
-
通过打开
portal.azure.com来导航到 Azure 门户。 -
在左侧菜单中,选择 Azure Active Directory 以打开 Azure AD 刀片。
-
然后,在 管理 下,选择 属性。
-
在 目录 属性 刀片中,启用 Azure 资源访问管理:

选择属性
- 点击 保存。
在接下来的部分中,我们将为用户在订阅级别分配所有者权限。
分配所有者权限
订阅的所有者对订阅内的所有资源具有完全访问权限,并能够将访问权限委派给其他人。要在订阅级别使用 RBAC 分配所有者权限,请执行以下步骤:
-
通过打开
portal.azure.com导航到 Azure 门户。 -
在左侧菜单中,选择所有服务并选择 订阅 (您也可以将其添加到收藏夹中,这样它会显示在左侧菜单中):

选择订阅
- 选择您的订阅,在订阅概览刀片中,点击 访问控制 (IAM):

访问控制设置
-
要添加具有管理员权限的用户,请点击 添加 | 添加角色分配,以打开 添加角色分配 面板。
-
在 角色下拉列表中,选择 所有者 角色。
-
然后,在 选择 列表中,选择用户。如果列表中没有该用户,您可以通过名称和电子邮件地址在文本框中搜索该用户:

选择用户
- 点击 保存,将用户添加到所有者角色。
在本演示中,我们为用户添加了管理员权限。在接下来的部分中,我们将配置 Azure 订阅策略。
配置 Azure 订阅策略
使用 Azure 策略,您可以创建、分配和管理策略。这些策略可以确保您通过强制执行不同的规则和效果,以符合企业标准和服务级别协议(SLA)。分配的策略会评估您的资源是否符合规定。例如,您可以创建一个策略,仅允许在您的环境中使用某个特定 SKU 大小的虚拟机。分配该策略后,所有新资源和现有资源都会被评估是否符合该策略。
要配置订阅策略,请执行以下步骤:
-
通过打开
portal.azure.com导航到 Azure 门户。 -
在左侧菜单中,选择 订阅 (如果您已将其添加到收藏夹中;否则,请按照我们在上一个演示中描述的步骤操作)。
-
在订阅概览刀片中,在左侧菜单下的 设置 中选择 策略:

选择订阅策略
- 在策略概览刀片中,选择 分配策略 以创建新策略:

创建新策略
-
在下一个屏幕中,我们将为我们的策略创建一个定义。添加以下值以创建策略,以便此订阅的资源只能在选定的区域内创建:
-
范围:订阅名称。
-
排除项:请留空;我们将创建一个适用于整个订阅的策略。
-
策略定义:选择此项后,您可以从可用的多个策略中进行选择,并将其应用到您的订阅。微软为您创建了这些 JSON 模板,基于不同企业的最佳实践。您也可以在此处创建自己的模板。从列表中选择一个策略(例如,允许的地区),然后点击选择。
-
分配名称:选择策略后,这个字段会自动填写。
-
参数:在这里,您可以选择允许用户部署资源的地区。例如,选择中部美国、东部美国、东部美国 2、西部美国和西部美国 2。
-
-
选择不同的区域后,点击分配按钮:

分配新策略
应用此策略后,此订阅的资源只能在选定的区域内创建。如果您想要添加额外的区域或从该策略中删除某些区域,您可以稍后编辑此设置。
您也可以在资源组级别应用策略。其操作方式与在订阅级别添加策略完全相同。一旦创建了资源组,您可以进入概述面板并从左侧菜单中选择策略。在那里,您可以在资源组级别应用策略。
在接下来的部分,我们将实施一个资源组并为其添加标签。
实施并设置资源组的标签
您可以对所有 Azure 资源应用标签。通过这种方式,您为资源组添加了额外的元数据,可以将它们逻辑性地组织成一个分类法。每个标签由名称和值对组成。例如,您可以将名称设置为 Environment,值设置为 Demo,或者将名称设置为 Maintenance Window,值设置为 Saturday 9 AM。应用这些标签后,您可以轻松地检索所有具有相同标签名称和值的资源。这对于计费或管理目的来说是一个非常有用的功能。
基于标签的计费,您可以使用分配的标签对某些资源的计费进行分组;例如,如果您为不同的环境(测试、预生产和生产)运行虚拟机和数据库,您可以使用标签对成本进行分类。这些标签将在不同的成本报告视图中显示。例如,它们会在创建后立即出现在成本分析视图中,并在第一个计费周期后出现在详细使用的 .csv 文件中。
您可以使用 Azure 门户、PowerShell 和 CLI 创建资源组。在此演示中,我们将通过 Azure 门户在订阅中创建一个 Azure 资源组。您还可以在资源组级别设置标签,因此我们也会执行此操作。请按照以下步骤进行:
-
通过打开
portal.azure.com进入 Azure 门户。 -
在左侧菜单中,选择 资源组:

Azure 门户概览页面
- 在资源组界面中,点击顶部菜单中的 添加 按钮:

创建新资源组
-
填写以下值:
-
订阅: 选择您希望添加资源组的订阅。
-
名称:
PacktResourcegroup。 -
区域: 保持默认设置(在我的情况下是美国中部)。如果您更喜欢其他区域,也可以选择。
-
-
接下来,在顶部菜单中选择 标签:

向资源组添加标签
-
添加以下值以创建此资源组的标签:
-
名称:
环境 -
值:
Demo
-
-
点击 查看 + 创建,然后点击 创建。
-
对订阅中的一些资源重复这些步骤。在我的情况下,我已将相同的标签添加到虚拟机(VM)。
现在我们已经创建了一个新的资源组并为其应用了标签。您还可以通过资源组的标签界面管理您的标签。在下一部分中,我们将探讨如何配置成本中心配额。
配置成本中心配额
Azure 中的配额基本上是创建资源数量的限制。例如,一个 Azure 订阅中可以创建最多 2,000 个可用性集。然而,如果您希望增加此配额,可以联系 Microsoft 支持。我们需要执行以下步骤:
-
通过打开
portal.azure.com进入 Azure 门户。 -
在左侧菜单中,选择 订阅。
-
选择正确的订阅。在订阅概览界面中,选择 设置 下的 使用情况 + 配额。在那里,您可以选择一个提供商:

使用情况和配额概览
-
选择 Microsoft.Compute。
-
您将看到此订阅中可用的可用性集的数量。如果您想增加此数量,请选择屏幕右侧的 请求增加 按钮:

增加配额
- 将打开一个新的界面,在其中您可以创建一个新的支持请求,以增加 Azure 资源的配额。
在下一部分中,我们将配置资源锁定和资源策略。
配置资源锁定
管理员可以为您的 Azure 资源设置锁定,以防止其他用户删除资源或对其进行任何更改。您可以在订阅、资源组或资源上设置两种不同的锁定级别:
-
无法删除:此级别防止授权用户删除资源。他们仍然可以读取和修改资源。
-
只读:在此级别下,授权用户可以读取资源,但无法删除或更新它。此级别类似于使用 RBAC 将所有授权用户分配为阅读者角色。
要在资源组上应用锁定,您需要执行以下步骤:
-
打开
portal.azure.com导航到 Azure 门户。 -
在左侧菜单中,选择资源组。选择我们在前面的演示中创建的资源组。
-
在资源组概览面板中,点击设置下的锁定:

资源组概览
-
在下一屏幕中,点击顶部菜单中的添加以为此资源创建新锁定。
-
添加以下值:
-
名称:
No-Deletion -
锁定类型:删除:
-

创建锁定
- 点击确定以创建锁定。
我们已经为此资源组创建了锁定,以防止授权用户删除它。在下一部分中,我们将看看如何在不同的资源组之间移动资源。
在资源组之间移动资源
您可以通过使用 Azure 门户、PowerShell、CLI 和 REST API 轻松地将资源移动到不同的资源组和订阅中。在移动操作期间,源组和目标组都会被锁定。这会阻止所有写入和删除操作,直到移动完成。这意味着您不能更新、添加或删除资源,但资源不会被冻结。这些资源不会出现停机时间。然而,即使新的资源组在不同的区域创建,资源的位置仍然保持不变。
将资源移动到不同的资源组和订阅之间有一定的限制。例如,部署在可用区内的具有托管磁盘的虚拟机无法移动。有关这些限制的更多信息,您可以参考以下文章:docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-move-resources。
在接下来的演示中,我们将使用 Azure 门户将资源从一个资源组移动到另一个资源组。对于本次演示,我已将一台虚拟机添加到该资源组,并创建了一个名为PacktResourceGroup1的新资源组。要移动此虚拟机,请执行以下步骤:
-
打开
portal.azure.com导航到 Azure 门户。 -
在左侧菜单中,选择资源组。选择我们在上一个演示中创建的
PacktResourceGroup。从列表中选择所有虚拟机资源,在顶部菜单中选择移动:

移动资源
- 你有两种选择:移动到另一个资源组 和 移动到另一个订阅。点击“移动到另一个资源组”,在下一屏幕中,选择
PacktResourceGroup1作为资源组,并勾选下面的复选框:

移动资源
- 点击确定将资源移动到另一个资源组。
移动资源后,你可以打开PacktResourceGroup1的概览面板。你会看到所有资源都已被移动。
在本章的下一部分(也是最后一部分),我们将删除资源组。
删除资源组
资源组可以通过 Azure 门户、PowerShell、CLI 和 REST API 删除。你可以一次性删除资源组及其所有资源。
在接下来的演示中,我们将删除我们在前一个演示中使用的PacktResourceGroup1:
-
通过打开
portal.azure.com导航到 Azure 门户。 -
在左侧菜单中,选择资源组。选择
PacktResourceGroup1。在顶部菜单中,选择删除资源组:

删除资源组
- 要确认删除资源组,你必须输入资源组的名称。输入资源组的名称并选择删除:

确认删除
资源组现在将被删除。
总结
在本章中,我们介绍了 Azure 订阅和资源组的各个方面。我们分配了管理员权限并描述了如何创建策略以保持合规。我们还介绍了成本中心配额和资源锁定。在本章结束时,我们完全移动并删除了资源组。
在下一章,我们将通过描述如何分析资源的利用率和消耗来涵盖本考试目标的第二部分。
问题
请回答以下问题,测试你对本章内容的理解。你可以在本书末尾的评估部分找到答案:
-
假设你有一个使用托管磁盘的虚拟机,它部署在一个可用性集中,并且你想将资源移动到另一个资源组。这可能吗?
-
是
-
否
-
-
假设你想使用 PowerShell 创建一个资源组。这可能吗?
-
是
-
否
-
-
假设你想使用 CLI 删除一个资源组。这可能吗?
-
是
-
否
-
进一步阅读
你可以查看以下链接,了解本章中涉及的主题的更多信息:
-
将 Azure 订阅关联或添加到您的 Azure Active Directory 租户:
docs.microsoft.com/en-us/azure/active-directory/fundamentals/active-directory-how-subscriptions-associated-directory -
Azure 中的资源访问管理:
docs.microsoft.com/en-us/azure/architecture/cloud-adoption/getting-started/azure-resource-access -
提升访问权限以管理所有 Azure 订阅和管理组:
docs.microsoft.com/en-us/azure/role-based-access-control/elevate-access-global-admin -
了解 Azure 策略效果:
docs.microsoft.com/en-us/azure/governance/policy/concepts/effects -
使用 Azure 计费和成本管理防止意外费用:
docs.microsoft.com/en-us/azure/billing/billing-getting-started -
使用标签来组织您的 Azure 资源:
docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-using-tags -
锁定资源以防止意外更改:
docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-lock-resources -
将资源移动到新的资源组或订阅:
docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-move-resources
第二章:分析资源利用率和消耗情况
在上一章中,我们介绍了如何创建和管理 Azure 订阅和资源的各个方面。
本章将涵盖管理 Azure 订阅和资源目标的第二部分。在本章中,我们将展示如何使用 Azure Monitor 监控不同的 Azure 资源。你将了解 Azure Monitor 的不同功能,如何创建和分析不同的度量标准和警报,从而使用 Azure Monitor 提供关于你所有 Azure 资源的性能和行为的有价值见解。为了完成本章,我们将介绍 Azure Log Analytics 以及它如何集成在 Azure Monitor 中。你还将学习如何创建日志搜索查询功能。
本章将涵盖以下主题:
-
Azure 监控
-
创建和分析度量标准与警报
-
创建操作组
-
配置资源的诊断设置
-
Azure 日志分析
-
使用日志搜索查询功能
Azure 监控
Azure Monitor 是 Azure 门户中的一种监控解决方案,它提供了一个全面的解决方案,用于收集、分析和对云环境和本地环境的遥测数据进行处理。它可用于监控各个方面(例如应用程序的性能),并识别影响这些应用程序以及依赖它们的其他资源的问题。
Azure Monitor 收集的数据分为两种基本类型:度量标准和日志。度量标准描述系统在某个特定时间点的一个方面,并以数值形式显示。它们能够支持接近实时的场景。日志与度量标准不同。它们包含按记录组织的数据,每种类型的记录有不同的属性集。像事件、追踪和性能数据等信息通常以日志的形式存储,然后可以将其组合进行分析。
Azure Monitor 支持从各种 Azure 资源收集数据,所有数据都会显示在 Azure 门户的概览页面中。Azure Monitor 提供以下度量标准和日志:
-
应用程序监控数据:这将包括关于应用程序功能和性能的数据,以及所编写代码的数据,无论其平台是什么。
-
客户操作系统监控数据:这将包括关于你的应用程序运行的操作系统的数据。这些操作系统可能运行在任何云环境或本地环境中。
-
Azure 资源监控数据:这将包括关于 Azure 资源运行的数据。
-
Azure 订阅监控数据:这将包括关于 Azure 订阅的运行和管理的数据,以及关于 Azure 本身的健康状况和运行数据。
-
Azure 租户监控数据:这将包括关于租户级别 Azure 服务的运行数据,例如 Azure Active Directory。
现在,Azure Monitor 集成了日志分析和应用程序洞察的功能。你也可以继续单独使用日志分析和应用程序洞察。
现在我们对 Azure Monitor 有了基本了解,接下来我们将看看如何分析跨订阅的警报和度量。
创建和分析度量及警报
要分析 Azure Monitor 中的警报和度量,我们需要进入 Azure 门户中的监控资源。在接下来的部分中,我们将设置度量和警报,并展示如何分析它们。
度量
度量描述了系统在特定时刻的某个方面,并以数值形式显示。它们能够支持接近实时的场景。
创建度量
若要显示 Azure Monitor 中各个 Azure 资源的度量,请执行以下步骤:
-
通过打开
portal.azure.com访问 Azure 门户。 -
在左侧菜单中,选择“监控”以打开 Azure Monitor 概览面板:

Azure Monitor 概览
-
首先,我们将查看度量。因此,在左侧菜单中,选择度量,或从概览面板中选择探索度量按钮。
-
在度量概览面板中,点击+ 选择资源按钮。会弹出一个新面板,你可以在其中选择订阅、资源组和资源类型。选择前一章节演示中使用的订阅,选择
PacktResourceGroup,然后选择虚拟机(在我的案例中是 Linux)。你还可以按其他资源类型进行筛选:

选择资源
-
点击应用。
-
然后,你可以选择度量类型。例如,选择CPU 信用消耗:

度量类型
花点时间浏览你可以选择的不同度量,这可能是考试题目的部分内容。
- 你还可以在筛选框中选择其他类型的聚合,如计数、平均值等。在面板的右上角,你还可以为你的度量选择不同的时间范围:

时间范围
- 你还可以将该度量固定到 Azure 门户的概览仪表板中。因此,点击固定到仪表板按钮,然后选择将其固定到当前仪表板或为其创建一个新仪表板。此时,选择固定到当前仪表板:

将度量固定到仪表板
- 如果现在从左侧菜单选择仪表板,你会看到该度量已被添加到仪表板中。这样,你就可以轻松地分析该度量,而无需打开 Azure Monitor。
指标也可以直接从 Azure 资源页面获取。例如,如果你有一个虚拟机,可以通过选择它进入虚拟机资源页面。然后,在左侧菜单中的 监控 下,你可以选择 指标。
在下一部分,我们将讨论如何在 Azure Monitor 中设置和分析警报。
警报
通过警报,Azure 可以在 Azure 或本地环境发生关键条件时主动通知你。警报还可以尝试自动采取纠正措施。基于指标的警报规则将提供近实时的警报,基于该指标。基于日志创建的警报可以将不同资源的数据合并在一起。
Azure Monitor 中的警报使用操作组,操作组是一个独特的接收者和操作集合,可以跨多个规则共享。这些操作组可以使用 Webhooks 启动外部操作,基于为此警报设置的要求。然后,这些外部操作可以被不同的 Azure 资源拾取,如运行簿、函数或逻辑应用。Webhooks 也可以用于将这些警报添加到外部 IT 服务管理 (ITSM) 工具中。
你还可以为所有不同的 Azure 资源设置警报。在接下来的部分中,我们将创建一个警报。
创建警报
创建警报,按照以下步骤操作:
-
在 Azure Monitor 概览页面的左侧菜单中,选择 警报。你也可以通过点击 创建警报 来直接创建一个警报**。
-
在警报页面中,点击顶部菜单中的 + 新建警报规则:

创建新警报
- 创建规则 页面被显示。在这里,你可以创建规则和操作组。要创建一个新规则,首先需要选择资源。点击 选择 按钮,在资源部分下:

创建新规则
- 在下一个页面中,你可以按订阅和资源类型进行过滤。选择虚拟机:

按订阅和资源类型过滤
-
从列表中选择我们在上一章中创建的虚拟机并点击 完成。
-
现在我们已经选择了资源,接下来我们将设置条件。点击 添加条件。
-
条件页面已打开,我们可以按特定信号进行过滤。选择 CPU 百分比 并点击 完成:

按信号过滤
-
接下来,你可以为此警报设置逻辑。你可以选择多个运算符,设置聚合类型,并为此警报设置阈值。设置如下:
-
运算符:大于
-
聚合类型:平均
-
阈值:90%
-
-
保留 基于评估 的默认设置。
-
当虚拟机的 CPU 使用率在五分钟内超过 90% 时,Azure Monitor 将每分钟检查一次并通知你:

设置条件值
-
点击完成以创建此条件。
-
现在,我们需要创建一个操作组来接收警报。这个操作组将负责处理警报并采取进一步行动。你在这里创建的操作组可以在其他警报中重复使用。所以,在我们的案例中,我们将创建一个电子邮件操作组,向某个电子邮件地址发送邮件。创建完成后,你可以将这个现有的操作组添加到其他警报中。在操作组下,选择创建新建按钮。
-
在“操作组”页面中,添加以下设置:
-
操作组名称:
发送电子邮件 -
简短名称:
email -
订阅:选择创建虚拟机的订阅
-
资源组:选择 Default-ActivitiyLogAlerts(待创建)
-
-
然后,我们需要提供实际的操作。添加以下值:
-
操作名称:
email -
操作类型:电子邮件/SMS/推送/语音
-
-
然后,选择“编辑详情”并勾选“电子邮件”复选框。提供一个电子邮件地址并点击“确定”按钮:

创建操作组
-
再次点击确定。
-
最后,你需要指定一个警报名称,设置警报的严重性级别,并点击创建警报规则:

警报设置
我们现在已经创建了一个警报和一个操作组,当 CPU 使用率超过 90% 时,该操作组会通过电子邮件通知用户。在接下来的部分中,我们将配置资源的诊断设置。
配置资源的诊断设置
你还可以为不同的 Azure 资源配置诊断设置。Azure Monitor 提供了两种类型的诊断日志:
-
租户日志:这些日志包括所有存在于 Azure 订阅之外的租户级别服务。例如,Azure Active Directory 日志。
-
资源日志:这些日志包含所有部署在 Azure 订阅中的资源数据;例如,虚拟机、存储账户和网络安全组。
这些日志的内容对每个 Azure 资源都不同。这些日志不同于来宾操作系统级别的诊断日志。要收集操作系统级别的日志,必须在虚拟机上安装代理。诊断日志则不需要安装代理,可以直接通过 Azure 门户访问。
可以访问的日志存储在存储账户中,可用于审计或手动检查目的。您可以通过使用资源诊断设置指定保留时间(以天为单位)。您还可以将日志流式传输到事件中心,以便在 PowerBI 中分析,或将其插入到第三方服务中。这些日志也可以通过 Azure Monitor 进行分析。这样,就无需先将其存储在存储账户中。
启用诊断设置
要启用资源的诊断设置,请执行以下步骤:
-
打开
portal.azure.com来导航到 Azure 门户。 -
再次转到我们在上一章创建的虚拟机。确保虚拟机正在运行,在左侧菜单中,选择监视下的诊断设置。
-
诊断设置面板将打开。您需要选择一个存储账户来存储这些指标。
-
单击启用客户级监视按钮以更新虚拟机的诊断设置:

启用虚拟机的诊断设置
-
当设置更新后,您可以转到顶部菜单中的“指标”以设置收集的指标。syslog 面板用于设置最低日志级别。
-
启用 Azure Monitor 中的诊断日志后,新的指标将可以从指标面板中查看。您可以像本章前面一样分析它们,在指标部分中进行分析。
在下一部分,我们将查看 Azure Log Analytics 服务,它现在也是 Azure Monitor 的一部分。
在 Log Analytics 中查看警报
Azure Log Analytics 是一个从各种 Azure 资源和本地资源收集遥测数据的服务。所有这些数据存储在 Log Analytics 工作区中,该工作区基于 Azure 数据资源管理器。它使用 Kusto 查询语言,该语言也用于 Azure 数据资源管理器来检索和分析数据。
分析这些数据可以通过 Azure Monitor 来完成。所有的分析功能都集成在其中。术语 Log Analytics 现在主要指的是 Azure 门户中用于分析指标数据的面板。
在我们能够显示、监视和查询来自 Azure Monitor 的日志之前,我们需要创建一个 Log Analytics 工作区。为此,我们需要执行以下步骤:
-
打开
portal.azure.com来导航到 Azure 门户。 -
单击创建新资源。
-
在搜索框中键入
Log Analytics并创建一个新的工作区。 -
添加以下值:
-
Log Analytics 工作区:
PacktWorkspace -
订阅:选择一个订阅
-
资源组:创建一个新的资源组并命名为
PacktWorkspace -
位置:美国西部
-
定价层:保持默认的按 GB 计费
-
-
单击确定按钮以创建工作区。
你也可以从 Azure Monitor 创建此工作区。进入 Azure Monitor 面板,在左侧菜单中的 Insights 下,选择 More。当没有创建工作区时,Azure 会要求创建一个。
现在我们已经创建了 Log Analytics 工作区,可以在 Azure Monitor 中使用它来创建查询以检索数据。我们将在下一部分中执行此操作。
利用日志搜索查询功能
现在,Azure Monitor 已与 Log Analytics 提供的功能和能力集成。这也包括使用 Kusto 查询语言在不同的日志和指标中创建搜索查询。
要从 Azure Monitor 检索任何类型的数据,必须使用查询。无论是配置警报规则、在 Azure 门户中分析数据、使用 Azure Monitor 日志 API 检索数据,还是接收特定条件的通知,都需要使用查询。
以下列表概述了 Azure Monitor 中查询的所有不同使用方式:
-
门户:在 Azure 门户中,可以对日志数据进行交互式分析。在这里,你可以创建和编辑查询,并以多种格式和可视化方式分析结果。
-
仪表板:查询的结果可以固定到仪表板上。这样,结果可以进行可视化,并与其他用户共享。
-
视图:通过使用 Azure Monitor 中的视图设计器,你可以创建数据的自定义视图。这些数据也是通过查询提供的。
-
警报规则:警报规则也是由查询组成的。
-
导出:导出到 Excel 或 PowerBI 的数据是通过查询创建的。查询定义了要导出的数据。
-
Azure Monitor 日志 API:Azure Monitor 日志 API 允许任何 REST API 客户端从工作区中检索日志数据。API 请求包含用于检索数据的查询。
-
PowerShell:你可以从命令行或 Azure 自动化运行簿运行 PowerShell 脚本,使用
Get-AzOperationalInsightsSearchResults从 Azure Monitor 检索日志数据。你需要为此 cmdlet 创建一个查询,以便检索数据。
在接下来的部分,我们将创建一些查询来从 Azure Monitor 的日志中检索数据。
在 Azure Monitor 中查询日志
要查询 Azure Monitor 中的日志,请执行以下步骤:
-
通过打开
portal.azure.com,导航到 Azure 门户。 -
在左侧菜单中,选择 Monitoring 打开 Azure Monitor 概览面板。在 Insights 下,选择 More。这将打开我们在上一步创建的 Log Analytics 工作区。
-
在概览页面中,点击顶部菜单中的 Logs。这将打开 Azure Monitor 查询编辑器:

Azure Monitor 查询编辑器
- 在这里,你可以选择一些默认查询。这些查询显示在屏幕的底部。包括查询不可用计算机、计算机的最后心跳信息等等。将以下查询添加到查询编辑器窗口,以获取数据:
-
- 这个查询将检索过去一天内错误事件最多的前 10 台计算机:
Event | where (EventLevelName == "Error") | where (TimeGenerated > ago(1days)) | summarize ErrorCount = count() by Computer | top 10 by ErrorCount desc
-
- 这个查询将创建一个折线图,显示上周每台计算机的处理器使用情况:
Perf | where ObjectName == "Processor" and CounterName == "% Processor Time" | where TimeGenerated between (startofweek(ago(7d)) .. endofweek(ago(7d)) ) | summarize avg(CounterValue) by Computer, bin(TimeGenerated, 5min) | render timechart
关于如何开始使用 Kusto 查询语言的详细概述和教程超出了本书的范围。如果你想了解更多关于此查询语言的信息,可以参考docs.microsoft.com/en-us/azure/azure-monitor/log-query/get-started-queries。
摘要
本章中,我们讲解了管理 Azure 订阅和资源目标的第二部分。我们涵盖了 Azure Monitor 的各个方面,以及如何使用指标来监控所有 Azure 资源和警报,以便在 Azure 资源发生某些事件时收到通知。我们还使用了 Azure Log Analytics 并创建了查询,以便从日志中提取有价值的数据。
在下一章,我们将讲解本考试目标的第三部分(也是最后一部分)。在那一章中,我们将介绍如何管理基于角色的访问控制(RBAC)。
问题
请回答以下问题,以测试你对本章内容的理解。你可以在本书末尾的评估部分找到答案:
-
Azure Log Analytics 现在是 Azure Monitor 的一部分吗?
-
是
-
否
-
-
假设你想创建一个查询以从虚拟机中检索特定的日志数据。你需要编写 SQL 语句来检索吗?
-
是
-
否
-
-
行动组是否用于启用 Azure Monitor 的指标?
-
是
-
否
-
进一步阅读
你可以查看以下链接,获取有关本章内容的更多信息:
-
Azure Monitor 概述:
docs.microsoft.com/en-us/azure/azure-monitor/overview -
从你的 Azure 资源收集和使用日志数据:
docs.microsoft.com/en-us/azure/azure-monitor/platform/diagnostic-logs-overview -
在 Azure Monitor 中分析日志数据:
docs.microsoft.com/en-us/azure/azure-monitor/log-query/log-query-overview -
使用 Azure Monitor 中的视图设计器创建自定义视图:
docs.microsoft.com/en-us/azure/azure-monitor/platform/view-designer -
Azure Monitor 命名和术语变更:
docs.microsoft.com/en-us/azure/azure-monitor/terminology
第三章:管理基于角色的访问控制
在上一章中,我们通过分析 Azure 中的资源利用和消耗,完成了本书目标的第二部分。我们介绍了如何使用 Azure Monitor 监控不同的 Azure 资源,以及如何使用 Azure Log Analytics 查询日志。
本章将涵盖《管理 Azure 订阅和资源》目标的最后部分,通过介绍基于角色的访问控制(RBAC)。你将学习如何通过 Azure 门户分配 RBAC 角色来配置 Azure 资源的访问权限。你还将学习如何通过将全局管理员分配给 Azure 订阅和其他资源来配置管理访问。你将学习如何创建自定义角色,当用户需要自定义权限时可以应用这些角色。本章最后将介绍 Azure 策略以及如何将其应用于 Azure 资源。
本章将涉及以下主题:
-
RBAC
-
通过分配角色配置对 Azure 资源的访问
-
配置 Azure 的管理访问
-
创建自定义角色
-
Azure 策略
-
实施和分配 Azure 策略
技术要求
本章将使用 Azure PowerShell(docs.microsoft.com/en-us/powershell/azure/install-az-ps?view=azps-1.8.0)作为示例。
示例应用程序的源代码可以从github.com/PacktPublishing/Microsoft-Azure-Administrator-Exam-Guide-AZ-103/tree/master/Chapter03下载。
RBAC
使用 RBAC,你可以管理谁有权访问你租户内的不同 Azure 资源。你还可以设置用户对不同 Azure 资源的操作权限。
分配权限的最佳实践是使用最小权限原则;这意味着只授予用户完成工作所需的确切权限。用户、组和应用程序被添加到 Azure 中的角色中,这些角色具有特定的权限。你可以使用 Azure 提供的内置角色,也可以在 RBAC 中创建自定义角色。
Azure 中的角色可以添加到特定的作用域中。这个作用域可以是 Azure 订阅、Azure 资源组或 Web 应用程序。Azure 然后使用访问继承;添加到父资源的角色会自动授予对子资源的访问权限。例如,添加到 Azure 订阅中的组将获得对该订阅中所有资源组和基础资源的访问权限。而添加到虚拟机(VM)的用户只会获得对该虚拟机的访问权限。
让我们从查看内置角色开始,详细了解 RBAC。
内置角色
Azure 提供了多种内置角色,可以用于将权限分配给用户、组和应用程序。RBAC 提供以下三种标准角色,可以分配给每个 Azure 资源:
-
所有者(Owner):此角色中的用户可以管理一切,并且可以创建新资源。
-
贡献者(Contributor):此角色中的用户可以管理一切,像所有者角色中的用户一样,但他们不能将访问权限分配给其他人。
-
读取者(Reader):此角色中的用户可以读取所有内容,但不允许进行任何更改。
除了标准角色,每个 Azure 资源还有一些作用域限定在特定资源上的角色。例如,你可以将用户、组或应用程序分配到 SQL 安全管理器角色,从中他们可以管理所有与 Azure SQL Server 相关的安全策略,或者你可以将他们分配到虚拟机贡献者角色,允许他们管理虚拟机,但不能管理连接到虚拟机的 VNet 或存储帐户。
要查看 Azure 提供的所有内置角色,你可以参考 docs.microsoft.com/en-us/azure/role-based-access-control/built-in-roles。
尽管这些内置角色通常涵盖了所有可能的用例,但它们无法满足组织中的每一个需求。为了在角色分配中提供灵活性,RBAC 提供了创建自定义角色的能力。让我们来看看这个功能。
自定义角色
当没有任何内置角色符合需求时,你还可以在 RBAC 中创建自定义角色。自定义角色可以分配给与内置角色相同的资源,并且只能通过 PowerShell、CLI 和 REST API 创建,不能在 Azure 门户中创建。在每个 Azure 租户中,你最多可以创建 2,000 个角色。
自定义角色在 JSON 中定义,部署后,它们存储在 Azure AD 租户中。通过将它们存储在 Azure AD 租户中,可以在连接到 Azure AD 租户的所有不同 Azure 订阅中使用它们。
通过分配角色来配置对 Azure 资源的访问
如果你所在组织的用户需要访问 Azure 资源的权限,你需要将该用户分配到 Azure 中的相应角色。在本演示中,我们将为用户分配虚拟机的管理员访问权限。要配置用户对虚拟机的访问权限,你需要执行以下步骤:
-
通过打开
portal.azure.com导航到 Azure 门户。 -
打开
PacktNetworkWatcher资源组并从列表中选择 VM1:

PacktNetworkWatcher 资源
-
你将被重定向到虚拟机设置窗口。
-
在设置窗口中,选择访问控制(IAM),然后点击顶部菜单中的 添加 | 添加角色分配:

访问控制设置
- 在添加角色分配窗口中,指定以下值:

添加角色分配刀片
-
点击 保存。
-
现在该用户拥有虚拟机的管理员权限。
在此演示中,我们为一个用户分配了虚拟机的管理员权限。接下来,我们将展示如何配置 Azure 管理访问。
配置 Azure 管理访问
Azure 的管理访问可以在订阅级别配置。为此,请执行以下步骤:
-
访问 Azure 门户,通过打开
portal.azure.com。 -
选择 所有服务,并在搜索框中输入
subscriptions。然后,选择 订阅,如以下截图所示:

选择订阅
-
从列表中选择您希望授予管理访问权限的订阅。
-
在 订阅设置 刀片中,选择 访问控制 (IAM),然后点击顶部菜单中的 添加 | 添加共同管理员:

访问控制设置
- 在 添加共同管理员 刀片中,指定以下值:

添加共同管理员
- 点击 添加。
现在我们已经配置了 Azure 的管理访问,接下来我们将介绍如何为用户创建自定义角色。
创建自定义角色
在以下示例中,我们将创建一个仅能重新启动 Azure 中虚拟机的自定义角色。为此,您需要创建一个 JSON 文件,使用 PowerShell 部署该文件。我们将在 JSON 文件中将该角色分配给一个用户账户,如下所示:
- 您可以使用以下 JSON 代码定义自定义角色。您应该将
Id设置为 null,因为在创建时会为自定义角色分配一个 ID。我们将自定义角色添加到两个 Azure 订阅中,如下所示(请在AssignableScopes部分替换为您的订阅 ID):
{
"Name": "Packt Custom Role",
"Id": null,
"IsCustom": true,
"Description": "Allows for read access to Azure Storage, Network and Compute resources and access to support",
"Actions": [
"Microsoft.Compute/*/read",
"Microsoft.Storage/*/read",
"Microsoft.Network/*/read",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Support/*"
],
"NotActions": [
],
"AssignableScopes": [
"/subscriptions/********-****-****-****-***********",
"/subscriptions/********-****-****-****-***********"
]
}
- 将 JSON 文件保存在计算机
C:盘的名为CustomRoles的文件夹中。然后,运行以下 PowerShell 脚本来创建角色。首先,按照以下方式登录您的 Azure 账户:
Connect-AzAccount
- 如有必要,选择正确的订阅:
Select-AzSubscription -SubscriptionId "********-****-****-****-***********"
- 然后,通过将 JSON 文件导入 PowerShell 来在 Azure 中创建自定义角色:
New-AzRoleDefinition -InputFile "C:\CustomRoles\PacktCustomRole.json"
在此演示中,我们创建了一个自定义角色,仅能重新启动 Azure 中的虚拟机。接下来,我们将展示如何使用 Azure Policy 创建策略。
Azure Policy
使用 Azure Policy,您可以创建对 Azure 资源执行规则的策略。通过这种方式,资源将保持符合服务级协议和企业标准。使用 Azure Policy,您可以评估所有不同的 Azure 资源是否符合规定。例如,您可以创建一个策略,仅允许在 Azure 环境中使用特定大小的虚拟机(VM)。当该策略创建后,Azure 会检查所有新的和现有的虚拟机,看看它们是否符合该策略。
Azure 策略与 RBAC 不同,因为 Azure 策略关注现有资源及其部署过程中的资源属性,而 RBAC 关注在不同范围内的用户操作。例如,用户可以被添加为资源组的所有者角色,这将赋予该用户对该资源组的完全权限。
Azure 提供了内置策略和自定义策略。以下是一些内置策略的示例:
-
允许的虚拟机 SKU:此策略指定了一组可以在 Azure 中部署的虚拟机大小和类型。
-
允许的位置:此策略限制了资源可以部署的可用位置。
-
不允许的资源类型:此策略禁止某些资源类型的部署。
-
允许的资源类型:此策略定义了您可以部署的资源类型列表。未列入该列表的资源类型无法在 Azure 环境中部署。
-
允许的存储帐户 SKU:此策略指定了一组可以部署的存储帐户 SKU。
如果内置策略不符合您的需求,您可以创建自定义策略。自定义策略是以 JSON 格式创建的,格式如下所示。代码的第一部分设置了不同的属性:
{
"properties": {
"displayName": "Deny storage accounts not using only HTTPS",
"description": "Deny storage accounts not using only HTTPS. Checks the supportsHttpsTrafficOnly property on StorageAccounts.",
"mode": "all",
"parameters": {
"effectType": {
"type": "string",
"defaultValue": "Deny",
"allowedValues": [
"Deny",
"Disabled"
],
"metadata": {
"displayName": "Effect",
"description": "Enable or disable the execution of the policy"
}
}
},
在这部分代码中,我们查看的是策略规则:
"policyRule": {
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.Storage/storageAccounts"
},
{
"field": "Microsoft.Storage/storageAccounts/supportsHttpsTrafficOnly",
"notEquals": "true"
}
]
},
"then": {
"effect": "[parameters('effectType')]"
}
}
}
}
策略可以在管理组级别、订阅级别或资源组级别分配。
实施和分配 Azure 策略
要实施 Azure 策略,您必须先分配它们。在本演示中,我们将向 Azure 资源组分配一个允许的位置策略。为此,您需要执行以下步骤:
-
通过打开
portal.azure.com进入 Azure 门户。 -
打开
PacktNetworkWatcher资源组。 -
然后,在“设置”下,选择“策略”:

策略
- 单击“开始使用”菜单项。您将看到一个与以下页面类似的页面:

开始使用 Azure 策略
-
第一步是查看并选择策略定义。单击页面上的“查看定义”链接。
-
您将进入订阅中可用的内置和自定义策略。在右侧的搜索框中输入
Locations:

搜索位置策略
- 然后,选择“允许的位置”策略;您将被重定向到可以查看 JSON 格式策略定义并分配该策略的页面:

策略定义
-
单击顶部菜单中的“分配”。
-
要分配该策略,您需要填写以下值:
-
范围:选择一个订阅,并可以选择一个资源组。为了演示,我选择了
PacktNetworkWatcher资源组。 -
允许的位置:仅选择西欧,如以下截图所示:
-

分配策略定义
-
点击“分配”。该策略将分配给资源组。
-
现在,当我们向资源组中添加新资源(例如新虚拟机)并将位置设置为“东部美国”时,我们会注意到屏幕左上方出现了验证错误。点击它后,你将在屏幕右侧看到以下详细信息:

验证错误
本节中,我们介绍了如何在 Azure 中分配策略。
摘要
本章中,我们通过介绍如何通过分配角色来配置对 Azure 资源的访问、如何配置管理访问、如何创建自定义角色、如何分配 RBAC 角色以及如何实施和分配 Azure 策略,涵盖了管理 Azure 订阅和资源目标的第三部分内容。
在下一章,我们将介绍实施和管理存储的新目标,内容包括如何创建和配置存储帐户。
问题
回答以下问题,测试你对本章内容的理解。你可以在本书最后的评估部分找到答案:
-
使用 Azure 策略时,你可以为用户分配权限,从而让他们访问你的 Azure 资源吗?
-
是
-
不是
-
-
假设你想检查你的 Azure 订阅中的所有虚拟机是否使用了托管磁盘。你可以使用 Azure 策略来做到这一点吗?
-
是
-
不是
-
-
自定义策略是用 XML 创建的吗?
-
是
-
不是
-
进一步阅读
你可以查看以下链接,获取有关本章中涵盖的主题的更多信息:
-
什么是 Azure 资源的基于角色的访问控制(RBAC)?:
docs.microsoft.com/en-us/azure/role-based-access-control/overview -
排查 Azure 资源的 RBAC 问题:
docs.microsoft.com/en-us/azure/role-based-access-control/troubleshooting -
Azure 策略服务概述:
docs.microsoft.com/en-us/azure/governance/policy/overview -
创建自定义策略定义:
docs.microsoft.com/en-us/azure/governance/policy/tutorials/create-custom-policy-definition
第二部分:实现和管理存储
在本节中,你将学习如何在 Azure 中实现和管理存储。
本节将涵盖以下章节:
-
第四章,创建和配置存储帐户
-
第五章,导入和导出数据到 Azure
-
第六章,配置 Azure 文件和实现 Azure 备份
第四章:创建和配置存储帐户
在上一章中,我们介绍了如何在 Azure 中配置基于角色的访问控制(RBAC),如何创建自定义角色,以及如何实施和分配 Azure 策略。
本章将介绍一个新的目标,即实施和管理存储*。在本章中,我们将覆盖不同类型的存储帐户,你将学习哪些类型适用于在 Azure 中存储你的数据。我们还将介绍如何安装 Azure Storage Explorer,它可以用来管理 Azure 存储帐户中的数据。我们将探讨如何使用共享访问签名(SAS)来保护数据,以及如何实施存储复制来确保数据安全。
本章将覆盖以下主题:
-
Azure 存储帐户
-
创建和配置存储帐户
-
安装和使用 Azure Storage Explorer
-
配置存储帐户的网络访问
-
生成和管理 SAS
-
实施 Azure 存储复制
技术要求
本章将使用 Azure PowerShell(docs.microsoft.com/en-us/powershell/azure/install-az-ps?view=azps-1.8.0)作为示例。
我们的示例应用程序的源代码可以从github.com/PacktPublishing/Microsoft-Azure-Administrator-Exam-Guide-AZ-103/tree/master/Chapter04下载。
Azure 存储帐户
Azure 提供了多种类型的存储帐户,可以用于在 Azure 中存储各种文件。你可以存储文件、文档和数据集,也可以存储 Blob 和虚拟硬盘(VHDs)。甚至还有专门用于归档的存储帐户类型。在下一节中,我们将讨论 Azure 提供的不同类型的存储帐户以及存储帐户复制类型。
存储帐户类型
Azure 存储提供三种不同的帐户类型,可用于 Blob、表格、文件和队列存储。
一般用途 v1
一般用途 v1(GPv1)存储帐户是最古老的存储帐户类型。它提供页面 Blob、块 Blob、文件、队列和表格的存储,但它不是最具成本效益的存储帐户类型。它是唯一可以用于经典部署模型的存储帐户类型。它不支持最新的功能,例如访问层。
Blob 存储
Blob 存储帐户提供StorageV2帐户的所有功能,除了它仅支持块 Blob(和附加 Blob)。不支持页面 Blob。它提供访问层,包括热存储、冷存储和归档存储,后面会在本章中进一步讨论。
一般用途 v2(GPv2)
StorageV2 是最新的存储账户类型,它将 V1 存储与 Blob 存储结合在一起。它提供了所有最新功能,如 Blob 存储的访问层,并且降低了成本。微软推荐使用这种账户类型,而非 V1 和 Blob 存储账户类型。
V1 存储账户可以轻松升级为 V2。
如需了解不同账户类型的定价和计费信息,请参考以下定价页面:azure.microsoft.com/en-us/pricing/details/storage/。
存储复制类型
存储在 Azure 中的数据始终会进行复制,以确保数据的持久性和高可用性。这样可以保护数据免受计划外和计划内事件的影响,例如网络或电力故障、自然灾害以及恐怖袭击。它还确保在这些事件发生时,您的存储账户仍然能满足 SLA。数据可以在同一数据中心内进行复制,跨同一区域的不同可用区的数据中心之间进行复制,或者跨不同的区域进行复制。这些复制类型分别被称为 本地冗余存储 (LRS)、可用区冗余存储 (ZRS)、地理冗余存储 (GRS) 和 读取访问地理冗余存储 (RA-GRS),这些将在接下来的章节中详细讲解。
在创建新的存储账户时,你需要选择一个复制类型。存储账户可以在 Azure 门户中创建,也可以通过 PowerShell 或 CLI 创建。
LRS
LRS 是最便宜的选项,会在同一数据中心内将数据复制三次。当你向存储账户发出写入请求时,数据会在请求期间同步写入所有三个副本。当数据完全复制时,请求将被提交。使用 LRS,数据将在一个存储规模单元内跨多个更新域和故障域进行复制。
ZRS
ZRS 当前处于预览阶段,仅在 US East 2 和 US Central 可用。它在两个或三个数据中心之间复制三个副本。数据会同步写入所有三个副本,分布在一个或两个区域。它还会像 LRS 一样,在数据所在的同一数据中心内将数据复制三次。
GRS
GRS 在同一区域内将数据复制三次,像 ZRS 一样,并且还将数据异步复制到其他区域的三个副本。
RA-GRS
RA-GRS 提供跨两个区域的地理复制,并且在辅助位置提供对数据的只读访问。这将最大化存储账户的可用性。当启用 RA-GRS 时,您的数据将在主端点和辅助端点之间同时可用。辅助端点与主端点类似,但会在其后添加 secondary 后缀。为存储账户生成的访问密钥可以用于两个端点。
现在我们已经介绍了在创建存储帐户时设置的不同存储复制类型,我们可以看看 Azure 提供的不同存储帐户。
Azure Blob 存储
Azure Blob 存储提供了云中的非结构化数据存储。它可以存储各种数据,如文档、VHD、图像和音频文件。你可以创建两种类型的 Blob。第一种类型是页面 Blob,用于存储磁盘。因此,当你有一个需要存储并附加到虚拟机(VM)的 VHD 时,你需要创建一个页面 Blob。页面 Blob 的最大大小为 1 TB。
另一种类型是块 Blob,它基本涵盖了你可以在 Azure 中存储的所有其他数据类型,如文件和文档。块 Blob 的最大大小为 200 GB。然而,还有第三种 Blob 类型,称为追加 Blob,但这个 Blob 是 Azure 内部使用的,不能用来存储实际文件。有几种方法可以将 Blob 复制到 Blob 存储帐户。你可以使用 Azure 门户(一次只能复制一个)或 Azure Storage Explorer,或者你可以通过 .NET、PowerShell、CLI 或调用 REST API 以编程方式复制文件。
访问层
Blob 存储帐户使用访问层来确定数据的访问频率。根据该访问层,你将会收到账单。Azure 提供了三种存储访问层:热、Cool 和存档。
热
热访问层最适合存储经常访问的数据和正在积极使用的数据。例如,你可以将网站的图像和样式表存储在热访问层中。该访问层的存储成本高于其他访问层,但访问文件的费用较低。
Cool
Cool 访问层最适合存储不常访问的数据(30 天内访问少于一次)。与热访问层相比,Cool 访问层的存储成本较低,但访问文件的费用更高。这个访问层适合存储备份和较旧的内容,这些内容不常被查看。
存档
存档存储层是在 Blob 层面设置的,而不是在存储层面设置的。与热访问层和 Cool 访问层相比,它具有最低的数据存储成本和最高的访问数据成本。这个存储层适用于至少会在存档中保存 180 天的数据,并且在访问之前会有几个小时的延迟。这个存储层最适合长期备份或合规性和存档数据。存档层中的 Blob 是离线的,不能读取(除元数据外)、复制、覆盖或修改。
Azure 文件存储
使用 Azure 文件,你可以在云端创建文件共享。你可以使用服务器消息块(SMB)协议访问文件,这是一个行业标准,支持在 Linux、Windows 和 macOS 设备上使用。Azure 文件也可以像本地驱动器一样挂载在这些设备上,并且可以使用 Azure 文件同步在 Windows Server 上进行缓存,以加速访问。
文件共享可以跨多个机器使用,这使得它们非常适合存储多个机器访问的文件或数据,如开发机器的工具、配置文件或日志数据。Azure 文件共享是 Azure 存储客户端库的一部分,并提供 Azure 存储 REST API,开发者可以在他们的解决方案中利用该 API。
有关如何配置 Azure 文件存储的详细信息,将在第六章,配置 Azure 文件并实现 Azure 备份中详细讲解。
Azure 磁盘存储
用于虚拟机的磁盘存储在 Azure Blob 存储中,作为页面 Blob。Azure 为每个虚拟机存储两个磁盘:虚拟机的实际操作系统(VHD)和一个临时磁盘,用于短期存储。这些数据会在虚拟机关闭或重启时被擦除。
Azure 提供两种不同的性能层级:标准磁盘存储和高级磁盘存储。
标准磁盘存储
标准磁盘存储使用 HDD 驱动器来存储数据,是你可以选择的最具成本效益的存储层级。它只能使用 LRS 或 GRS 来支持数据和应用程序的高可用性。
高级磁盘存储
使用高级磁盘存储时,数据存储在 SSD 上。并非所有 Azure 虚拟机系列都可以使用此类型存储。它只能与 DS、DSv2、GS、LS 或 FS 系列的 Azure 虚拟机一起使用,提供高性能和低延迟的磁盘支持。
非托管磁盘与托管磁盘
托管磁盘会自动为你处理存储账户的创建。而对于非托管磁盘(即传统的虚拟机磁盘),你需要手动创建一个存储账户,并在创建虚拟机时选择该存储账户。而使用托管磁盘时,这一负担由 Azure 为你处理。你只需选择磁盘类型和性能层级(标准或高级),然后托管磁盘将被创建。它还会自动为你处理扩展。
Microsoft 推荐使用托管磁盘而非非托管磁盘。
现在我们已经涵盖了关于不同存储账户的所有背景信息,接下来我们将创建一个新的存储账户。
创建和配置存储账户
在将任何数据或文件上传到 Azure 存储之前,必须创建一个存储账户。这可以通过 Azure 门户、PowerShell、CLI、ARM 模板或 Visual Studio 完成。
在本演示中,我们将使用 PowerShell 创建一个存储账户:
- 首先,我们需要登录 Azure 账户:
Connect-AzAccount
- 如果需要,选择正确的订阅:
Select-AzSubscription -SubscriptionId "********-****-****-****-***********"
- 创建资源组:
New-AzResourceGroup -Name PacktPubStorageAccount -Location EastUS
- 创建存储账户:
New-AzStorageAccount -ResourceGroupName PacktPubStorageAccount -AccountName packtpubstorage -Location "East US" -SkuName Standard_GRS -Kind StorageV2 -AccessTier Hot
在这个演示中,我们使用 PowerShell 创建了一个新的存储账户。如果您是存储账户的新手,我强烈建议您也从 Azure 门户创建存储账户。这样,您将看到所有可用的存储账户类型、存储复制类型、可以选择的访问层级、不同的性能层级(标准或高级),以及它们之间的关联。
现在我们已经创建了一个新的存储账户,我们可以安装 Azure 存储资源管理器工具。
安装和使用 Azure 存储资源管理器
Azure 存储资源管理器是一个独立的应用程序,可用于轻松处理存储在 Azure 存储账户中的不同类型的数据。您可以使用 Azure 存储资源管理器上传、下载和管理文件、队列、表、块、数据湖存储和 Cosmos DB 实体。除此之外,您还可以使用该应用程序配置和管理存储账户的跨域资源共享(CORS)规则。此应用程序可在 Windows、Linux 和 macOS 设备上使用。
要安装该应用程序,您需要执行以下步骤:
-
转到
azure.microsoft.com/en-us/features/storage-explorer/下载应用程序。 -
下载完成后,安装应用程序。
-
安装应用程序后,打开应用程序。您将提示连接到 Azure 环境。有几个选择可供选择。您可以通过使用管理员凭据连接到 Azure 环境添加 Azure 账户,使用共享访问签名(稍后在本章中介绍),使用存储账户名称和密钥,还可以选择“连接到本地仿真器”选项。对于此演示,请保持默认选项并点击“登录”:

连接到 Azure 存储
-
输入您的凭据并登录。
-
所有订阅都将添加到左侧窗格。完成后,点击“应用”:

应用订阅
- 您现在可以从左侧窗格深入查看我们在第一个演示中创建的订阅和存储账户。选择存储账户。从那里,您可以访问块容器、文件共享、队列和表:

存储账户设置
- 要将一些文件添加到 Blob 容器,我们需要在存储帐户中创建一个 Blob 容器。因此,在左侧菜单中右键单击Blob 容器,然后选择创建 Blob 容器。命名容器为
packtblobcontainer;现在,您可以将文件上传到该容器。在顶部菜单中点击上传按钮,点击上传文件,并从本地计算机中选择一些文件:

上传文件到 Blob 容器
您将看到文件被上传到 Blob 容器中。
如果您在 Azure 门户中导航到存储帐户的概述窗格,您会看到顶部菜单中有一个按钮,标记为在资源管理器中打开。这将打开 Azure 存储资源管理器,您可以使用它轻松管理存储帐户中的所有数据。
现在我们已经安装了 Azure 存储资源管理器工具,并将一些文件上传到了 Blob 容器,我们可以配置存储帐户的网络访问权限。
配置对存储帐户的网络访问
您可以将存储帐户的访问权限限制为一组特定的受支持网络。为此,您必须配置网络规则,以便只有通过特定网络集群请求数据的应用程序才能访问存储帐户。当这些网络规则生效时,应用程序需要在请求中使用适当的授权。这种授权可以通过 Azure Active Directory 凭证提供,适用于 Blob 和队列,使用 SAS 令牌或有效的帐户访问密钥。
在接下来的演示中,我们将配置对前一步中创建的存储帐户的网络访问权限。您可以通过 Azure 门户、PowerShell 或 CLIv2 管理存储帐户。我们将通过 Azure 门户设置此配置。因此,我们需要执行以下步骤:
-
通过打开
portal.azure.com访问 Azure 门户。 -
转到我们在前一步中创建的存储帐户。
-
在概述窗格中,在左侧菜单中选择防火墙和虚拟网络:

存储帐户概述窗格
- 要通过新的网络规则授予对虚拟网络的访问权限,在虚拟网络下,有两个可供选择的选项:所有网络,允许来自所有网络(包括虚拟网络和本地网络)以及互联网的流量访问数据;和选定网络。如果选择此选项,您可以配置哪些网络可以从存储帐户访问数据。选择选定网络。然后,您可以选择是否要添加现有的虚拟网络或创建一个新的。对于本演示,请点击+ 添加新虚拟网络:

创建一个新网络
- 将打开一个新的窗格,您需要在其中指定网络配置。指定如下截图所示的配置:

网络配置设置
-
点击创建。
-
虚拟网络将被添加到概览面板中。此存储帐户现在已加固,只能从使用此虚拟网络的应用程序和其他资源访问。在同一面板中,你还可以配置防火墙,并仅允许来自互联网或本地环境的特定 IP 范围:

IP 范围
演示到此为止。在下一次演示中,我们将生成和管理 SAS。
SAS 和访问密钥
使用 SAS,你可以为连接到存储帐户的客户端提供一种方式,授予对存储帐户中对象和数据的有限访问权限。使用 SAS,你无需将访问密钥暴露给客户端。
创建存储帐户时,将创建主密钥和次密钥。这两个密钥都可以授予对帐户及其所有资源的管理权限。暴露这些密钥也可能会让你的存储帐户受到疏忽或恶意使用的威胁。SAS 提供了一个安全的替代方案,可以让客户端根据你明确授予的权限,读取、写入和删除存储帐户中的数据,而无需使用帐户密钥。
在下一节中,我们将学习如何管理访问密钥,以及如何为存储帐户生成 SAS。
管理访问密钥
要管理访问密钥,请执行以下步骤:
-
通过打开
portal.azure.com访问 Azure 门户。 -
再次进入我们在上一步创建的存储帐户。
-
打开概览面板后,在设置下,选择访问密钥。
-
在这里,你可以看到在创建存储帐户时为你生成的两个访问密钥。Azure 之所以为你生成两个访问密钥,是因为如果你重新生成一个新密钥,所有与该密钥相关的 SAS 将不再有效。然后,你可以让应用程序使用第二个密钥访问数据,一旦密钥重新生成,你可以将新密钥与客户端共享。你可以通过点击两个密钥旁边的按钮生成新密钥:

访问密钥
- 每个密钥还会提供一个连接字符串,客户端应用可以使用该字符串访问存储帐户。
在下一节中,我们将为访问密钥生成 SAS。
生成 SAS
在本演示中,我们将为我们的 Blob 存储生成 SAS。要生成 SAS,请执行以下步骤:
-
通过打开
portal.azure.com访问 Azure 门户。 -
再次进入我们在上一步创建的存储帐户。
-
打开概览面板后,在设置下,选择共享访问签名:

选择共享访问签名
- 若只允许访问 Blob 存储,请禁用文件、队列和表。保留默认权限,然后选择过期日期和时间。你还可以在这里设置允许的协议。屏幕底部,你可以将这些权限应用于不同的密钥。保留key1被选中,然后点击生成 SAS 和连接字符串:

生成 SAS 和连接字符串
- 现在你可以使用这个令牌从 Blob 存储请求数据。
本演示到此结束。在下一部分,我们将介绍如何实现 Azure 存储复制。
实现 Azure 存储复制
Azure 中的数据始终会进行复制,以确保数据的持久性和高可用性。Azure 存储会复制你的数据,以防止计划内和计划外事件的影响,包括临时硬件故障、网络或电力中断以及重大自然灾害。我们已经介绍了 Azure 为你的存储账户提供的不同复制类型。
存储复制可以在创建存储账户时进行设置。你也可以通过 Azure 门户、PowerShell 或 CLI 后续更改复制类型。要在 Azure 门户中更改此设置,你需要执行以下步骤:
-
打开
portal.azure.com,导航到 Azure 门户。 -
转到我们在上一步骤中创建的存储账户。
-
在设置下,选择配置。在此面板中,点击复制,你可以更改复制类型:

更改复制类型
总结
在本章中,我们介绍了实现和管理存储目标的第一部分。我们介绍了在 Azure 中可用的不同存储类型,以及何时使用它们。我们还介绍了如何使用 Azure 存储资源管理器管理数据,以及如何使用 SAS 保护我们的数据。最后,我们介绍了如何从存储账户进行数据复制。
在下一章中,我们将介绍本考试目标的第二部分。在该章中,我们将介绍如何将数据导入和导出到 Azure。
问题
回答以下问题以测试你对本章内容的掌握情况。你可以在本书结尾的评估部分找到答案:
-
Azure 存储资源管理器应用程序只能在 Windows 设备上使用吗?
-
是的
-
不是
-
-
你可以配置存储账户使其仅能从特定的虚拟网络访问,而不能从本地网络访问吗?
-
是的
-
不是
-
-
你只能在创建存储账户时设置存储账户的复制类型吗?
-
是的
-
不是
-
进一步阅读
你可以查阅以下链接,了解更多关于本章内容的详细信息:
-
Azure 存储文档:
docs.microsoft.com/en-us/azure/storage/ -
开始使用存储资源管理器:
docs.microsoft.com/en-us/azure/vs-azure-tools-storage-manage-with-storage-explorer?tabs=windows -
配置 Azure 存储防火墙和虚拟网络:
docs.microsoft.com/en-us/azure/storage/common/storage-network-security -
Azure 存储冗余:
docs.microsoft.com/en-us/azure/storage/common/storage-redundancy
第五章:将数据导入到 Azure 和从 Azure 导出数据
在上一章中,我们介绍了 Azure 中可用的不同存储类型以及何时使用它们。我们还讲解了如何安装和使用 Azure 存储资源管理器来管理你的数据。
本章继续介绍 实施与管理存储 目标的第二部分。 本章的第一部分,我们将通过配置 Azure Blob 存储来创建存储帐户。本章的第二部分将讲解如何将数据导入到 Azure 以及从 Azure 导出数据。你将学习如何使用 Azure 作业导入和导出数据。本章的第三部分将聚焦于 Azure 中的 内容交付网络(CDN)。你将学习如何创建和配置 CDN, CDN 可用于在 Azure 边缘服务器上缓存静态内容。在本章的最后部分,我们将简要介绍 Azure Data Box。
本章将覆盖以下主题:
-
配置和使用 Azure Blob 存储
-
创建导入到 Azure 以及从 Azure 导出的作业
-
Azure CDN
-
配置 Azure CDN 终结点
-
Azure Data Box
技术要求
本章中的示例使用了 Azure PowerShell(docs.microsoft.com/en-us/powershell/azure/install-az-ps?view=azps-1.8.0)。
我们的示例应用程序的源代码可以从 github.com/PacktPublishing/Microsoft-Azure-Administrator-Exam-Guide-AZ-103/tree/master/Chapter05 下载。
配置和使用 Azure Blob 存储
在上一章中,我们使用 PowerShell 创建了一个 Azure 存储帐户,并且通过 Azure 存储资源管理器,我们为该存储帐户创建了一个 Blob 容器,并上传了一些文件。
在本节中,我们将从 PowerShell 配置 Azure Blob 存储。我们将使用上一章中创建的相同存储帐户,但现在我们将使用 PowerShell 向其中添加一个 Blob 容器。我们还将提供一个示例,展示如何一次创建多个 Blob 容器。因此,请执行以下步骤:
- 首先,我们需要按照以下步骤登录到 Azure 帐户:
Connect-AzAccount
- 如果需要,请按如下选择合适的订阅:
Select-AzSubscription -SubscriptionId "********-****-****-****-***********"
- 选择我们在上一章中创建的存储帐户,并将其添加到一个变量中,如下所示:
$accountObject = Get-AzStorageAccount -ResourceGroupName "PacktPubStorageAccount" -AccountName "packtpubstorage"
- 然后检索存储帐户的上下文:
$Context = $accountObject.Context
- 为其创建一个具有公共访问权限的 Blob 容器,如
Blob所示:
new-AzStoragecontainer -Name "packtblobcontainerps" -Context $Context -Permission blob
我们将在下一节中使用这个 Blob 容器,在那里我们将创建一个导入和导出作业,使用 Azure 作业。
创建导入到 Azure 以及从 Azure 导出的作业
您可以为您的 Azure Blob 存储(以及 Azure 文件存储)帐户创建导入和导出作业,将本地数据磁盘上的数据上传到 Azure。此服务可用于将大量数据导入到您的 Azure Blob 存储中。它要求您将包含数据的加密磁盘驱动器运送到 Azure 数据中心。
即将运送到 Azure 数据中心的磁盘驱动器需要在发货前进行准备。需要启用 BitLocker 加密,并且一旦卷加密完成,您就可以将数据复制到磁盘中。加密后,磁盘需要使用WAImportExport.exe工具进行准备。通过运行此工具,会在运行工具的同一文件夹中自动创建一个日志文件。同时还会创建两个其他文件,一个.xml文件和一个drive-manifest.xml文件。您稍后需要这些文件来创建导入/导出作业。磁盘现在已准备好运送到 Azure。
在磁盘运送到 Azure 后,您可以从 Azure 门户创建导入或导出作业。因此,您需要采取以下步骤:
-
通过打开
portal.azure.com/导航到 Azure 门户。 -
在左侧菜单中,点击所有服务 | 存储 | 导入/导出作业。
-
如下截图所示,点击创建导入/导出作业:

创建导入/导出作业
- 在下一个页面中,您可以选择创建导入作业或导出作业。选择导入到 Azure,为作业命名,并选择资源组或创建一个新的资源组,如下所示:

定义作业类型
-
点击确定。
-
在下一个页面中,您需要上传在准备磁盘时创建的日志文件。从本地计算机选择日志文件,并选择导入目标,如下所示:

上传日志文件
-
点击确定。
-
在最后两个步骤中,您可以提供磁盘的回邮信息并进行配置。数据现在可以上传到您在前一步中选择的存储帐户。
-
创建导出作业的步骤与创建导入作业的步骤相似。只需在第一步选择导出作业,并填写所需的字段。您无需上传日志文件,只需选择您希望导出数据的存储帐户,如下所示:

导出作业设置
- 然后再次提供运输详情,微软会将数据复制到磁盘并将其运送回来给您。
这结束了导入和导出 Azure 作业的目标。在下一部分,我们将介绍 Azure CDN 以及如何配置它。
Azure CDN
CDN 是一种可以用于将您的应用程序全球扩展的服务。它将您的静态内容(如 HTML 页面、样式表、图像、文档、文件和客户端脚本)缓存到不同地区的边缘服务器上。这样,由于内容物理上更靠近用户,下载所需的时间更短,从而提高了应用程序的性能。
Azure CDN 提供以下定价层级:Azure CDN Standard from Microsoft、Azure CDN Standard from Akamai、Azure CDN Standard from Verizon 和 Azure CDN Premium from Verizon。
Azure CDN 提供以下主要功能:
-
动态站点加速:通常,CDN 能够将文件缓存到离终端用户更近的位置,从而加速文件加载的性能。然而,对于动态 web 应用程序,内容是根据用户行为生成的。在这种情况下,加速加载过程更加复杂,且需要一种不同的解决方案,其中每个内容元素都需要在从创作到交付的完整数据路径中进行微调。此功能是Azure CDN from Akamai和Azure CDN from Verizon的一部分。
-
CDN 缓存规则:通过使用缓存规则,可以全局设置或修改默认的缓存过期时间,并通过使用自定义条件(如 URL 路径和文件扩展名)来调整。Azure CDN 提供了以下两种不同的文件缓存控制方式:
-
缓存规则:提供以下全局和自定义缓存规则:
-
全局缓存规则:对于 CDN 配置文件中的每个端点,您可以设置一个全局缓存规则。这将影响所有对该端点的请求。如果设置了此规则,它将覆盖任何 HTTP 缓存指令头。
-
自定义缓存规则:您可以为 CDN 配置文件中的每个端点设置一个或多个自定义缓存规则。这些规则匹配特定的文件扩展名和路径,按顺序处理,并在设置时覆盖全局缓存规则。
-
-
查询字符串缓存:Azure CDN 也可以调整如何处理带有查询字符串的请求的缓存设置。如果根据缓存规则和 CDN 默认行为,该文件本身不可缓存,则查询字符串缓存设置不会产生影响。
-
-
HTTPS 自定义域名支持:如果您在自定义域名(例如
https:az-103.com)上为您的应用程序使用 HTTPS 协议(通过安装 SSL 证书),则会通过 TLS/SSL 建立安全连接。默认情况下,Azure CDN 支持在 CDN 端点主机名上使用 HTTPS。因此,如果您创建一个 CDN 端点(例如https://https:az-103.azureedge.net),则 HTTPS 会自动启用。此功能在 Azure CDN Standard from Akamai 产品中不可用。 -
Azure 诊断日志:您可以查看核心分析并将其保存到多种不同的源。Azure 诊断日志使您能够将 CDN 端点的基本使用指标导出到 Azure 存储帐户,然后转储到 CSV 文件中,您可以在 Excel 中创建图表,将其导入到 Azure 事件中心,并将来自其他 Azure 服务的数据关联到日志分析工作区,在那里查看数据。此功能适用于所有定价层。
-
文件压缩:文件压缩是加速文件传输和提升应用页面加载性能的有效方法。文件在从服务器发送之前会先进行压缩,这样可以为您的应用提供更流畅的体验,并减少带宽成本。文件压缩有以下两种可用选项:
-
启用源服务器上的压缩:Azure CDN 会传递已在服务器上压缩的文件并将其交付给客户端。
-
启用 CDN POP 服务器上的压缩(动态压缩):CDN 自行压缩文件并将其交付给客户端。
-
-
地理过滤:使用 Azure CDN,您可以根据国家/地区限制对内容的访问。您可以在 CDN 端点上为特定路径创建规则,以阻止或允许特定国家的内容访问。此功能不适用于 Microsoft 的 Azure CDN Standard。
要比较不同 CDN 产品在 Azure 上的功能和特点,您可以参考以下文章:docs.microsoft.com/en-us/azure/cdn/cdn-features。
在下一部分中,我们将配置 Azure CDN 端点。
配置 Azure CDN 端点
在此演示中,我们将通过在 Azure 门户中创建一个新的 CDN 配置文件和 CDN 端点来设置 Azure CDN。因此,我们需要执行以下步骤:
-
打开
portal.azure.com/以导航到 Azure 门户。 -
从左侧菜单中点击 创建资源。在搜索框中输入
CDN,然后点击 创建 按钮。 -
按照下图所示,添加以下值:
-
名称:
PacktCDN。 -
订阅:选择与我们创建 blob 存储帐户时相同的订阅。我们将使用此订阅来存储 CDN 可以访问的图像。
-
资源组:创建一个新的资源组,命名为
PacktCDNResourcegroup。 -
资源组位置:东部美国。
-
定价层级:从下拉列表中选择 标准 Verizon。
-
立即创建新的 CDN 端点:保持未选中状态;我们稍后将执行此操作:
-

创建新的 CDN 配置文件
-
点击 创建。
-
现在将创建 CDN 配置文件。创建完成后,我们可以为其配置新的 CDN 端点。
-
打开 CDN 概览页面并从顶部菜单中选择 端点,如以下所示:

创建新的 CDN 端点
-
对于端点,指定以下值,如下图所示:
-
名称:
PacktCDNEndpoint。 -
源类型: 存储。
-
源主机名:此名称必须唯一。请选择上一节中使用的存储帐户;在我的案例中是
packtpubstorage.blob.core.windows.net。 -
源路径:保持为空。
-
源主机头:保留默认生成的值。
-
协议:保留默认的 HTTP 和 HTTPS 选项选中。
-
源端口:在此处保留默认设置。
-
优化为:在此处保留默认设置,即通用 Web 传输:
-

添加端点
-
点击添加将端点添加到配置文件中。
-
我们现在已经创建了一个 CDN 配置文件和一个端点,可以用来访问存储帐户中的 blob 容器中存储的图像或其他文件。您可以使用为您生成的端点来请求图像和其他文件,如下所示:

已生成的端点
- 请求我们生成的端点中的图像的示例如下所示:
https://PacktCDNEndpoint.azureedge.net/images/image.png
- 可以在浏览器窗口中进行测试。
在接下来的章节中,我们将介绍 Azure Data Box。
Azure Data Box
通过网络传输到 Azure 的数据并不总是足够快速以满足组织的需求。使用 Azure Data Box 解决方案,您可以快速将数 TB 的数据传输到 Azure。您可以通过 Azure 门户订购此 Data Box 解决方案。然后,您将收到一个具有存储容量的 Data Box 存储设备,可用于安全地传输数据。
Azure 提供以下三种不同类型的存储设备:
-
Data Box:该设备具有 100 TB 的容量,使用标准的网络附加存储(NAS)协议和常用的复制工具。它具有 AES 256 位加密,以确保更安全的传输。
-
Data Box Disk:该设备具有 8 TB 的存储容量,采用 SSD 存储(最多可以有 5 个设备,总计 40 TB)。它具有 USB/SATA 接口,并支持 128 位加密。
-
Data Box Heavy(预览):这是一个自包含的设备,设计用于将 1 PB 的数据迁移到云端。
您可以将这些数据从服务器复制到其中一个设备上,然后将其邮寄回 Azure。微软会从该设备将数据上传到 Azure 数据中心。整个过程会由 Azure 门户中的 Data Box 服务进行跟踪,以便提供数据迁移过程各个步骤的洞察。
这个 Data Box 解决方案非常适合网络连接有限或没有网络连接的场景,特别是在需要迁移超过 40 TB 数据的情况下。它也是一次性迁移的理想解决方案,适用于初始的大规模传输,之后通过网络进行增量传输。
对于通过网络的增量传输,Azure 提供以下两种不同的服务:
-
Azure Data Box Gateway:Data Box Gateway 是一个基于虚拟机的虚拟设备,部署在你的虚拟化环境或虚拟机监控程序中。虚拟设备位于你的本地环境中,你可以使用 网络文件系统 (NFS) 和 服务器消息块 (SMB) 协议将数据写入该设备。设备随后将数据传输到 Azure 块 Blob、页面 Blob 或 Azure 文件。
-
Azure Data Box Edge:Azure Data Box Edge 是微软提供的一个物理设备,用于安全数据传输。该设备位于你的本地环境中,你可以使用 NFS 和 SMB 协议将数据写入该设备。Data Box Edge 具备 Data Box Gateway 的所有网关功能。此外,Data Box 配备了 AI 驱动的边缘计算能力,帮助分析、处理或过滤数据,直到它被传输到 Azure 块 Blob、页面 Blob 或 Azure 文件。
下图概述了将数据存储到设备上并将其运输回 Azure 的步骤:

Azure Data Box
我们现在已经了解了 Azure Data Box 以及将数据运输到 Azure 的不同方法。本章到此结束。
总结
在本章中,我们讨论了 实施和管理存储 目标的第二部分。我们讨论了使用磁盘和 Azure Data Box 将大量数据迁移到 Azure 的不同方法。我们还讨论了如何设置 Azure Blob 存储,以及如何配置 Azure CDN。
在下一章中,我们将讨论本考试目标的第三部分和最后一部分。在这一章中,我们将介绍如何配置 Azure Files 和实施 Azure Backup。
问题
回答以下问题,以测试你对本章信息的掌握程度。你可以在本书末尾的 评估 部分找到答案:
-
如果你想通过 Azure 导入作业导入数据,首先需要在磁盘上启用 BitLocker。
-
是的
-
否
-
-
默认情况下,Azure CDN 不支持 CDN 终结点主机名上的 HTTPS。
-
是的
-
否
-
-
Azure Data Box 是一个物理设备,可用于上传大量数据。该设备将被运送到 Azure,微软会将数据上传到 Azure 数据中心。
-
是的
-
否
-
进一步阅读
你可以查阅以下链接,了解有关本章所讨论主题的更多信息:
-
什么是 Azure 上的内容分发网络?:
docs.microsoft.com/en-us/azure/cdn/cdn-overview -
通过 Azure CDN 的动态站点加速:
docs.microsoft.com/en-us/azure/cdn/cdn-dynamic-site-acceleration -
教程:在 Azure CDN 自定义域上配置 HTTPS:
docs.microsoft.com/en-us/azure/cdn/cdn-custom-ssl?tabs=option-1-default-enable-https-with-a-cdn-managed-certificate -
通过压缩 Azure CDN 中的文件提高性能:
docs.microsoft.com/en-us/azure/cdn/cdn-improve-performance -
按国家/地区限制 Azure CDN 内容:
docs.microsoft.com/en-us/azure/cdn/cdn-restrict-access-by-country -
比较 Azure CDN 产品功能:
docs.microsoft.com/en-us/azure/cdn/cdn-features -
内容分发网络(CDN):
docs.microsoft.com/en-us/azure/architecture/best-practices/cdn -
什么是 Azure Data Box?:
docs.microsoft.com/en-us/azure/databox/data-box-overview -
什么是 Azure Data Box Gateway?:
docs.microsoft.com/en-us/azure/databox-online/data-box-gateway-overview -
什么是 Azure Data Box Edge?:
docs.microsoft.com/en-us/azure/databox-online/data-box-edge-overview -
使用 Azure 导入/导出服务将数据导入 Azure Blob 存储:
docs.microsoft.com/en-us/azure/storage/common/storage-import-export-data-to-blobs?toc=%2fazure%2fstorage%2fblobs%2ftoc.json
第六章:配置 Azure 文件和实施 Azure 备份
在上一章中,我们介绍了通过磁盘和 Azure 数据盒将大量数据迁移到 Azure 的不同方式。我们还讲解了如何配置 Azure 内容分发网络(CDN)来缓存静态和动态内容,并更快地将其交付给用户。
本章继续讲解实现和管理存储目标的最后部分。在本章中,我们将介绍如何创建 Azure 文件共享,并如何排查它们的问题。我们还将了解 Azure 的备份和恢复功能。你将学习 Azure 备份和 Azure 站点恢复,并将执行一次 Azure 文件共享的备份和恢复操作。
本章将涵盖以下主题:
-
创建 Azure 文件共享和 Azure 文件共享同步服务
-
Azure 备份
-
Azure 站点恢复
-
执行备份和恢复操作
-
创建恢复服务库
-
创建和配置备份策略
技术要求
本章的示例使用了 Azure PowerShell (docs.microsoft.com/en-us/powershell/azure/install-az-ps?view=azps-1.8.0)。
本章的源代码可以从github.com/PacktPublishing/Microsoft-Azure-Administrator-Exam-Guide-AZ-103/tree/master/Chapter06下载。
Azure 文件共享和 Azure 文件共享同步服务
Azure 文件在第四章中已简要介绍,创建和配置存储账户。在本章中,我们将创建和配置一个 Azure 文件共享。
使用 Azure 文件,你可以在云中创建文件共享。你可以使用服务器消息块(SMB)协议访问文件,这是一个行业标准,可以在 Linux、Windows 和 macOS 设备上使用。Azure 文件还可以像本地驱动器一样在这些设备上挂载,并可以通过 Azure 文件同步在 Windows Server 上进行缓存,以便快速访问。
在接下来的部分,我们将从 Azure 门户创建一个 Azure 文件共享。
创建 Azure 文件共享
要创建一个 Azure 文件共享,我们首先需要在 Azure 门户中创建一个新的存储账户。在第四章,我们已经创建了一个存储账户,创建和配置存储账户。在本次演示中,我们将按照以下步骤在 Azure 门户中创建一个:
-
打开
portal.azure.com,进入 Azure 门户。 -
在左侧菜单中,点击 + 创建资源 | 存储 | 存储账户。
-
添加以下值:
-
订阅:选择您要创建存储帐户的订阅。
-
资源组:创建一个新的资源组,并命名为
PacktFileShareResourceGroup。 -
存储帐户名称:
packtfileshare。 -
位置:美国东部。
-
性能:标准。
-
帐户类型:StorageV2。
-
复制:选择读取访问地理冗余存储(RA-GRS)。这将使数据的六个副本分布在不同的 Azure 区域。
-
访问层:热存储,因为这些数据将频繁访问。
-
这些值在以下截图中显示:

创建一个新的存储帐户
-
点击审查 + 创建。审核后,点击创建按钮。
-
创建后,打开该资源,您将被重定向到存储帐户的概览页面。在这里,我们可以创建我们的文件共享。在左侧菜单中,选择文件服务下的文件。然后,在文件页面中,点击顶部菜单中的+ 文件共享,如以下截图所示:

创建一个新的文件共享
-
添加以下值,如以下截图所示:
-
名称:
packtfileshare -
配额:
`10`
-

设置文件共享属性
-
点击创建。
-
创建后,在概述页面中点击上下文菜单按钮。之后,选择连接,如下所示:

连接到文件共享
- 将打开一个新页面,显示如何从 Windows、Linux 和 macOS 机器连接到该文件共享,具体如以下截图所示:

连接信息
- 现在我们通过命令行提示符将这个文件共享连接到本地计算机。在命令行提示符窗口中复制并粘贴上面截图中高亮的命令。运行该命令后,将生成以下输出:

将驱动器添加到本地文件系统
驱动器现在已添加到您的本地文件系统。
现在我们已经创建了文件共享并将其添加到本地计算机,接下来可以继续使用 Azure 文件共享同步服务。
Azure 文件共享同步服务
Azure 文件共享同步服务是一项可以将本地文件共享数据与 Azure 文件同步的服务。通过这种方式,您可以保持本地文件服务器的灵活性、兼容性和性能,同时也将所有数据的副本存储在 Azure 的文件共享中。您可以使用任何 Windows Server 上可用的协议来本地访问数据,包括服务器消息块(SMB)、网络文件系统(NFS)和通过 TLS 的文件传输协议(FTPS)。
在接下来的演示中,我们将配置 Azure 文件同步。为此,以下几件事情需要到位:
- Windows Server。为此,我在 Azure 中创建了一个 Windows Server 2016 虚拟机。确保启用服务器上的远程桌面(RDP)。
在创建虚拟机时开启 RDP 端口的步骤在第七章:为 Windows 和 Linux 创建和配置虚拟机中的“从 Azure 门户部署 Windows 虚拟机”部分有详细介绍。
-
存储帐户(此存储帐户需要在 Azure File Sync 支持的区域之一中创建)。您可以参考以下网站了解可用区域:
docs.microsoft.com/en-us/azure/storage/files/storage-sync-files-planning#region-availability。 -
在与存储帐户相同区域创建的 Azure 文件共享。
一旦前面的资源创建完成,我们就可以开始在 Azure 中创建 Azure File Sync 服务,并在 Windows Server 上安装 Azure File Sync。
首先,我们将在 Azure 中创建 Azure File Sync 服务。请按照以下步骤操作:
-
打开
portal.azure.com,进入 Azure 门户。 -
在左侧菜单中,点击+ 创建资源,在搜索框中输入
Azure File Sync。创建一个新服务。 -
添加以下值:
-
名称:
PacktFileSync。 -
订阅: 选择与存储帐户和文件共享相同的订阅。
-
资源组: 选择与存储帐户和文件共享相同的订阅。
-
位置: 选择与存储帐户和文件共享相同的位置。
-
以下截图展示了这些值:

创建文件同步服务
-
点击创建。
-
部署完成后,打开存储同步服务并点击顶部菜单中的+ 同步组。我们将创建这个组以连接同步服务到文件共享,如下所示:

创建同步组
-
添加以下值:
-
名称:
packtsyncgroup。 -
订阅: 选择存储帐户和文件共享所在的订阅。
-
存储帐户: 选择创建文件共享的存储帐户。
-
以下截图展示了这些值:

配置同步组
-
远程桌面连接到 Windows Server 并登录。我们首先需要禁用IE 增强型安全配置。打开服务器管理器 | 本地服务器并为管理员和用户都禁用此配置。
-
从以下网站下载 Azure File Sync 代理:
www.microsoft.com/en-us/download/details.aspx?id=57159。 -
在服务器上安装代理。保持默认路径安装代理。在下一个屏幕中,启用使用服务器上配置的现有代理设置,如下图所示:

代理设置
-
点击“下一步”。
-
启用 Windows 更新并安装工具。
-
一旦工具安装完成,打开安装文件夹,路径为
C:\Program Files\Azure\StorageSyncAgent。 -
从安装文件夹运行
ServerRegistration工具。 -
现在,我们可以注册服务器。首先需要登录。点击登录按钮,如下所示:

选择 Azure 环境
-
使用 Azure 管理员凭据登录。
-
现在我们可以选择之前在 Azure 门户中创建的 Storage Sync 服务。因此,你需要选择订阅、资源组以及实际的 Storage Sync 服务,如下所示:

选择 Storage Sync 服务
-
点击注册。
-
注册成功后,本地服务器与 Azure 中的 Storage Sync 服务之间建立了信任关系。点击确定。
-
现在,我们需要返回到 Azure 门户中的同步服务,创建一个端点。再次进入 Storage Sync 服务,并选择之前创建的同步组。在同步组设置面板中,选择顶部菜单中的添加服务器端点,如下所示:

添加服务器端点
- 选择已注册的服务器并提供以下路径:
D:\Data。保持云分层和离线数据传输功能关闭,然后点击“创建”,如下所示:

端点值
现在服务器端点已创建。
- 如果现在返回到我们安装了同步代理的虚拟机并打开
D盘,你会看到添加了一个名为Data的文件夹。你可以像下面的截图所示,将文件复制到该文件夹中:

存储在数据文件夹中的图像
- 当你切换回 Azure 中的文件共享时,你会看到所有文件已经同步到 Azure 存储账户,如下图所示:

同步的文件到 Azure 文件存储
这部分介绍了 Azure 文件存储和 Azure 文件共享同步服务。接下来的部分,我们将探讨 Azure 备份和恢复。
Azure 备份
Azure 备份服务用于备份 Azure 中的资源和数据。它可以用于仅云或混合场景,适用于你希望将本地虚拟机备份到 Azure 的情况。你本地的备份解决方案也可以与 Azure 备份结合使用,扩展到云端。Azure 备份可以为虚拟机、文件、文件夹、应用程序、工作负载、系统状态和卷创建备份。
Azure 备份包括以下功能和能力:
-
将本地资源备份到 Azure:Azure 备份提供短期和长期备份。这可以替代磁带和异地备份。
-
备份 Azure 虚拟机:Azure 备份提供独立且隔离的备份。这些备份存储在恢复服务库中。该库内置了恢复点的管理功能。
-
自动扩展:您可以在没有维护开销的情况下获得无限扩展。可以设置警报来传递有关事件的信息。
-
无限数据传输:在备份过程中,进出流量的传输量没有限制。然而,如果您使用 Azure 导入/导出服务来导入大量数据,则进站数据会产生费用。
-
数据加密:数据可以使用加密密码短语进行加密。密码短语会被本地存储,并且恢复数据时需要使用。
-
短期和长期保留:恢复服务是备份存储的地方,提供短期和长期备份。Azure 不限制数据在恢复服务库中的存储时间或时长。
-
多种存储选项:Azure 备份提供两种类型的复制—本地冗余存储(LRS),数据会在同一地区通过创建三份副本进行三次复制,和地理冗余存储(GRS),这是默认选项,数据会复制到一个备用地区。
您可以使用 Azure 备份来备份以下产品保护的数据:
-
系统中心数据保护管理器(DPM):DPM 可以在本地或 Azure 中的物理服务器或虚拟服务器上运行。DPM 服务器也可以备份到恢复服务库中。DPM 服务器及其机器需要在同一网络中。本地机器只能由本地 DPM 服务器保护,而 Azure 机器只能由在 Azure 中运行的 DPM 服务器保护。
-
Microsoft Azure 备份服务器(MABS):MABS 可以在本地或 Azure 中的物理服务器或虚拟服务器上运行。它提供与 DPM 类似的功能,不同的是,MABS 可以备份到磁带,且不需要系统中心许可证。与 DPM 相似,本地机器只能由本地 MABS 服务器保护,而 Azure 机器只能由在 Azure 中运行的 MABS 服务器保护。
Azure 站点恢复
Azure 站点恢复可以从 Azure 虚拟机及其他工作负载进行复制,例如不同 Azure 区域之间的 Azure 文件存储,以及本地虚拟机、物理(文件)服务器和 Azure Stack 虚拟机。
Azure 恢复服务提供以下功能:
-
站点恢复服务:站点恢复确保在停机期间你的虚拟机(VM)、应用程序和工作负载仍在运行。它将运行在机器上的工作负载(无论是虚拟的还是物理的)从主站点复制到备用站点。当主站点发生故障时,你可以切换到备用站点。主站点恢复后,你可以再切换回主站点。
-
备份服务:此服务通过将数据备份到 Azure 来保障数据安全。
你还可以使用 Azure 站点恢复将本地机器迁移到 Azure 虚拟机。这与灾难恢复的不同之处在于:
-
灾难恢复:在灾难恢复中,机器会定期进行复制。在发生停机时,机器会从主站点切换到 Azure 中的备用站点。然后可以从备用站点访问这些机器。当主站点恢复时,你可以从备用站点切换回主站点。
-
迁移:本地机器被复制到 Azure,或将 Azure 虚拟机复制到备用区域。之后,虚拟机会从主站点切换到备用站点,完成迁移过程而无需执行失败回退过程。
在下一部分中,我们将执行 Azure 文件共享的备份和恢复操作。
执行备份和恢复操作
在本演示中,我们将为 Azure 文件共享执行备份和恢复操作。我们将备份本章中创建的文件共享,并从恢复服务库中恢复它。
在第八章,管理 Azure 虚拟机和虚拟机备份,我们将从 Azure 门户设置 Azure 虚拟机的备份和恢复。你可以参考本章,了解更多关于备份和恢复的信息。
创建恢复服务库
我们将要在 Azure 中创建恢复服务库。你可以通过 Azure 门户、PowerShell 或 CLI 来创建这个库。我们将使用 PowerShell 来创建这个库。按照以下步骤来创建它:
- 首先,我们需要按照以下步骤登录 Azure 账户:
Connect-AzAccount
- 如有必要,按照以下方式选择正确的订阅(确保此处使用的订阅与创建文件共享时使用的订阅相同):
Select-AzSubscription -SubscriptionId "********-****-****-****-***********"
- 为恢复服务库创建一个资源组,如下所示:
New-AzResourceGroup -Name PacktRecoveryServicesGroup -Location EastUS
- 按如下方式创建一个新的恢复服务库:
New-AzRecoveryServicesVault -Name PacktFileVault -ResourceGroupName PacktRecoveryServicesGroup -Location EastUS
- 现在,你可以按照以下方式设置库存储的冗余类型:
$vault1 = Get-AzRecoveryServicesVault `
-Name PacktFileVault
Set-AzRecoveryServicesBackupProperties -Vault $vault1 `
-BackupStorageRedundancy GeoRedundant
我们现在已经创建了恢复服务库。在下一部分,我们将为 Azure 文件共享创建一个备份策略。
配置备份策略
备份策略指定了备份的时间表,以及备份恢复点应该保存多长时间。它至少与一个保留策略相关联,该策略定义了恢复点在被删除之前将保存多久。
在以下示例中,我们将通过 PowerShell 创建一个备份策略,它会进行每日备份并保留 30 天:
- 首先,我们需要将保管库 ID 存储在一个变量中,以便稍后在创建策略时传递,如下所示:
$vaultID = Get-AzRecoveryServicesVault `
-ResourceGroupName PacktRecoveryServicesGroup `
-Name PacktFileVault `
| select -ExpandProperty ID
- 接下来,我们将设置两个变量,用于存储计划和保留策略。然后我们将使用这些值创建一个新的备份策略:
$packtSchPol = Get-AzRecoveryServicesBackupSchedulePolicyObject -WorkloadType "AzureFiles"
$packtRetPol = Get-AzRecoveryServicesBackupRetentionPolicyObject -WorkloadType "AzureFiles"
$afsPol = New-AzRecoveryServicesBackupProtectionPolicy -Name "PacktFSPolicy" `
-WorkloadType "AzureFiles" `
-RetentionPolicy $packtRetPol `
-SchedulePolicy $packtSchPol `
-VaultId $vaultID `
-BackupManagementType AzureStorage
- 最后,我们可以按如下方式为 Azure 文件存储账户启用此策略:
Enable-AzRecoveryServicesBackupProtection -VaultId $vaultID `
-Policy $afsPol `
-Name "packtfileshare" `
-StorageAccountName "packtfileshare"
我们现在已经创建了一个备份策略,用于备份本章开始时创建的文件共享。此备份策略将进行每日备份。你还可以触发按需备份。为此,请保持 PowerShell 打开,因为我们需要 Vault ID 来触发按需任务。我们将在下一个部分讲解这一点。
触发按需备份
在本演示中,我们将使用 PowerShell 触发一个按需备份。保持 PowerShell 会话打开,并执行以下步骤:
- 首先,我们需要检索备份容器:
$afsPacktContainer = Get-AzRecoveryServicesBackupContainer -FriendlyName "packtfileshare" `
-ContainerType AzureStorage `
-VaultId $vaultID
- 然后我们需要从容器中检索备份项:
$afsPacktBackupItem = Get-AzRecoveryServicesBackupItem `
-Container $afsPacktContainer `
-WorkloadType "AzureFiles" `
-Name "packtfileshare" `
-VaultId $vaultID
- 最后,我们可以安排任务:
$job = Backup-AzRecoveryServicesBackupItem -Item $afsPacktBackupItem -VaultId $vaultID
现在我们已经创建了备份,可以使用 PowerShell 恢复它。我们将在下一个部分进行操作。
恢复备份
要恢复我们在之前 PowerShell 演示中创建的备份,我们必须采取以下步骤:
- 生成可用恢复点的列表:
$startDate = (Get-Date).AddDays(-7)
$endDate = Get-Date
$rp = Get-AzRecoveryServicesBackupRecoveryPoint -Item $afsPacktBackupItem `
-StartDate $startdate.ToUniversalTime() `
-EndDate $enddate.ToUniversalTime() `
-VaultId $vaultID
$rp[0] | fl
- 恢复备份。在这个示例中,我们将在原始目标位置恢复备份。你也可以使用替代目标,比如另一个存储账户。我们首先需要重新设置保管库上下文,然后才能恢复备份:
Get-AzRecoveryServicesVault -Name "PacktFileVault" | Set-AzRecoveryServicesVaultContext
Restore-AzRecoveryServicesBackupItem `
-RecoveryPoint $rp[0] `
-TargetStorageAccountName "packtfileshare" `
-TargetFileShareName "packtfileshare" `
-TargetFolder "AzureFS_restored" `
-ResolveConflict Overwrite
总结
在本章中,我们涵盖了实现和管理存储目标的第三部分和最后一部分。我们介绍了 Azure 文件共享,并且我们讲解了如何安装和配置 Azure 文件共享同步服务。我们还查看了在 Azure 中共享文件的备份和恢复。
在下一章中,我们将介绍 部署和管理虚拟机 目标,讲解如何为 Windows 和 Linux 创建和配置虚拟机。
问题
回答以下问题,测试你对本章信息的掌握程度。你可以在本书结尾的 评估 部分找到答案:
-
你可以使用 Azure 备份来备份 Azure 文件共享吗?
-
是
-
否
-
-
你可以将 Azure 备份与 MABS 一起使用吗?
-
是
-
否
-
-
你可以使用 Azure 文件共享同步服务将 Azure 文件共享挂载到本地计算机吗?
-
是
-
否
-
进一步阅读
你可以查看以下链接,了解更多关于本章中涉及主题的信息:
-
什么是 Azure 文件?:
docs.microsoft.com/en-us/azure/storage/files/storage-files-introduction -
Azure 文件同步部署规划:
docs.microsoft.com/en-us/azure/storage/files/storage-sync-files-planning -
部署 Azure 文件同步:
docs.microsoft.com/en-us/azure/storage/files/storage-sync-files-deployment-guide?tabs=azure-portal -
什么是 Azure 备份?:
docs.microsoft.com/en-us/azure/backup/backup-overview -
Azure 备份功能概览:
docs.microsoft.com/en-us/azure/backup/backup-introduction-to-azure-backup#which-azure-backup-components-should-i-use -
关于站点恢复:
docs.microsoft.com/en-us/azure/site-recovery/site-recovery-overview
第三部分:部署和管理虚拟机
在本节中,你将学习如何在 Azure 中部署和管理虚拟机。
本节将涵盖以下章节:
-
第七章,为 Windows 和 Linux 创建与配置虚拟机
-
第八章,管理 Azure 虚拟机和虚拟机备份
第七章:创建和配置 Windows 和 Linux 虚拟机
在上一章中,我们介绍了 Azure 文件共享以及如何使用 Azure 文件同步服务将本地文件共享与 Azure 同步。你还学会了如何在 Azure 中备份和恢复文件共享。
本章介绍了部署和管理虚拟机的目标。在本章中,我们将讨论 Azure 中的虚拟机(VM)以及可用于 Azure 和 Linux 的不同虚拟机规格。你将学习如何为 Windows 和 Linux 创建和配置虚拟机。我们还将讨论高可用性,以及如何配置虚拟机以实现高可用性。你还将学习如何使用 Azure 资源管理器(ARM)模板,通过模板部署虚拟机,并如何使用规模集自动化部署。
本章将涵盖以下主题:
-
虚拟机(VM)
-
部署 Windows 和 Linux 虚拟机
-
配置高可用性
-
部署和配置规模集
-
修改和部署 ARM 模板
技术要求
本章使用以下工具来做示例:
-
Azure PowerShell:
docs.microsoft.com/en-us/powershell/azure/install-az-ps?view=azps-1.8.0 -
Visual Studio Code:
code.visualstudio.com/download
本章的源代码可以从 github.com/PacktPublishing/Microsoft-Azure-Administrator-Exam-Guide-AZ-103/tree/master/Chapter07 下载。
虚拟机(VM)
你可以在 Azure 中运行 Windows 虚拟机(VM)以及 Linux 虚拟机(VM)。虚拟机有各种规格和价格,涵盖从具有少量内存和处理能力、适用于一般用途的虚拟机,到可用于图形处理单元(GPU)密集型和高性能计算工作负载的大型虚拟机。
创建虚拟机时,可以从多个预定义镜像中选择。操作系统的镜像(如 Windows Server 或 Linux)以及预定义的应用程序(如 SQL Server 镜像和完整的虚拟机集群)均可用,这些集群由多个虚拟机组成,可以一次性部署。例如,三层 SharePoint 集群就是一种虚拟机集群。
虚拟机(VM)可以通过 Azure 门户、PowerShell 或命令行界面(CLI)创建和管理,并且它们有以下系列和规格。
虚拟机系列和规格
在编写本书时,以下虚拟机系列和规格可供选择:
| 系列 | 类型 | 描述 |
|---|---|---|
| B, Dsv3, Dv3, DSv2, Dv2, Av2, DC | 一般用途 | 这些虚拟机具有平衡的 CPU 和内存比例,适用于测试和开发场景。它们也适合用于小型和中型数据库,以及低到中等流量的 Web 服务器。 |
| Fsv2, Fs, F | 计算优化型 | 这些虚拟机具有较高的 CPU 与内存比例,适用于中等流量的 Web 服务器、应用服务器和批处理节点的网络设备。 |
| Esv3, Ev3, M, GS, G, DSv2, Dv2 | 内存优化型 | 这些虚拟机具有较高的内存与 CPU 比例,适用于关系数据库服务器、中型至大型缓存以及内存分析。 |
| Lsv2, Ls | 存储优化型 | 这些虚拟机具有高磁盘吞吐量和 IO,适用于大数据、SQL 和 NoSQL 数据库。 |
| NV, NVv2, NC, NCv2, NCv3, ND, NDv2(预览) | GPU | 这些虚拟机适用于重型图形渲染和视频编辑、深度学习应用以及机器学习模型训练。这些虚拟机可以配置为单 GPU 或多 GPU。 |
| H | 高性能计算 | 这些是最快的虚拟机,提供最强大的 CPU,并且支持可选的高吞吐量网络接口(远程直接内存访问(RDMA))。 |
虚拟机系列会不断更新。新的系列、类型和大小经常被添加和删除。为了跟上这些变化,您可以参考以下网站了解 Windows 虚拟机的大小:docs.microsoft.com/en-us/azure/virtual-machines/windows/sizes。对于 Linux 虚拟机的大小,您可以参考docs.microsoft.com/en-us/azure/virtual-machines/linux/sizes?toc=%2fazure%2fvirtualmachines%2flinux%2ftoc.json。
托管磁盘
Azure 托管磁盘是您在 Azure 门户中创建虚拟机时默认选择的磁盘类型。它们完全处理虚拟机的存储。以前,您需要手动创建存储帐户来存储虚拟机硬盘,并且当虚拟机需要扩展时,您还需要添加额外的存储帐户,以确保不会超过每个帐户的 20,000 每秒输入/输出操作(IOPS)的限制。
使用托管磁盘后,这个负担已由 Azure 为您处理。您现在可以在一个订阅内创建 10,000 个虚拟机磁盘,这意味着一个订阅内可以拥有成千上万的虚拟机,无需在存储帐户之间复制磁盘。
可用性集
为了创建可靠的基础设施,将虚拟机添加到可用性集是关键。以下是可能影响 Azure 虚拟机可用性的几种场景:
-
计划外硬件维护事件:当硬件即将发生故障时,Azure 会触发计划外硬件维护事件。此时会使用实时迁移技术来预测故障,并将虚拟机、网络连接、内存和存储迁移到不同的物理机器,而不会断开客户端。当虚拟机被迁移时,性能会短暂下降,因为虚拟机会暂停 30 秒。网络连接、内存和打开的文件仍然会被保留。
-
意外停机:当此事件发生时,虚拟机会停机,因为 Azure 需要在同一数据中心内修复虚拟机。硬件或物理基础设施故障通常会导致此事件发生。
-
计划硬件维护事件:此类事件是微软在 Azure 中进行的定期更新,以提升平台性能。这些更新大多数对虚拟机的正常运行时间没有显著影响,但其中一些可能需要重启或重启虚拟机。
为了在此类事件发生时提供冗余,你可以将两个或更多虚拟机分组到一个可用性集中。通过利用可用性集,虚拟机会分布在集群中的多个独立硬件节点上。这样,Azure 可以确保在事件或故障发生时,只有部分虚拟机会受到影响,整体解决方案仍将保持运行并保持可用。这样,即使发生停机或其他故障,也能满足 99.95% 的 Azure 服务等级协议 (SLA)要求。
虚拟机只能在初次部署时分配到可用性集。
故障域和更新域
当你将虚拟机放入可用性集时,Azure 会保证将它们分布到故障域和更新域中。默认情况下,Azure 会为可用性集分配三个故障域和五个更新域(可以增加到最多 20 个)。
当将虚拟机分布在故障域时,虚拟机会被放置在 Azure 数据中心的三个不同机架上。因此,在发生事件或平台故障时,只有一个机架会受到影响,其他虚拟机仍然可以访问,如下图所示:

虚拟机分布在三个故障域中
更新域在操作系统或主机更新时非常有用。当你将虚拟机分布到多个更新域时,其中一个更新域会进行更新并重启,而其他更新域则保持可访问,如下图所示:

虚拟机分布在五个更新域和三个故障域中
在下一个演示中,我们将在 Azure 门户中创建一个新的 Windows 虚拟机。
部署 Windows 和 Linux 虚拟机
在接下来的演示中,我们将通过 Azure 门户和 PowerShell 部署一个 Windows Server 虚拟机(VM)。
部署 Linux 虚拟机与部署 Windows 虚拟机非常相似。我们不会讲解如何部署 Linux 虚拟机。有关如何在 Azure 中部署 Linux 虚拟机的更多信息,请参考本章末尾的进一步阅读部分。
从 Azure 门户部署 Windows 虚拟机
在本次演示中,我们将从 Azure 门户部署一个 Windows 虚拟机。我们将设置网络和存储,并为此虚拟机选择合适的大小。我们还将通过将其放入可用性集中来配置此虚拟机的高可用性。为此,请按照以下步骤操作:
-
通过打开
portal.azure.com导航到 Azure 门户。 -
在左侧菜单中,点击虚拟机,然后在顶部菜单中点击+ 添加,如下所示:

创建新的虚拟机
-
我们将创建一台 Windows 虚拟机,因此在基础面板中,添加以下值:
-
订阅:选择一个订阅。
-
资源组:
PacktVMGroup。 -
虚拟机名称:
PacktWindowsVM。 -
区域:选择一个区域。
-
可用性选项:在此选择可用性集。
-
可用性集:创建新的,并命名为
PacktWindowsAS。保持默认的容错域,并为此虚拟机更新域。 -
镜像:Windows Server Datacenter 2016。
-
大小:在这里,您可以选择不同的大小。点击更改大小,然后选择 Standard DS1 v2。
-
管理员账户:提供用户名和密码。
-
入站端口规则:选择允许选择的端口并启用远程桌面协议(RDP)。 您将需要此功能以在创建后登录服务器。
-
节省成本:如果您已经拥有有效的 Windows Server Datacenter 许可证,您将获得此虚拟机的折扣。
-
-
点击下一步:磁盘。
-
在这里,您可以选择磁盘类型。保持默认设置如下,即 Premium SSD:

选择磁盘类型
-
点击下一步:网络。
-
在网络面板中,您可以配置虚拟网络。您可以保持此机器的默认值,如下所示:

设置虚拟机的网络
-
点击下一步:管理。
-
在管理面板中,您可以配置监控,并为监控创建和选择存储账户。您还可以分配系统分配的托管身份,用于向各种 Azure 资源(例如 Azure Key Vault)进行身份验证,而无需在代码中存储任何凭证。您还可以在此启用自动关机,具体操作如下:

设置管理功能
- 现在我们可以创建虚拟机了。点击查看 + 创建,系统将验证设置。然后,点击创建,实际部署虚拟机。
部署 Linux 虚拟机的步骤与创建 Windows 虚拟机类似,因此我们在本示范中将跳过这部分内容。有关如何通过 Azure 门户部署 Linux 虚拟机的更多信息,请参阅docs.microsoft.com/en-us/azure/virtual-machines/linux/quick-create-portal。
我们现在已经部署了一台 Windows 虚拟机,将其放入了可用性集,并查看了此虚拟机的网络、存储和监控功能。在下一部分,我们将通过 PowerShell 部署一台 Windows Server 虚拟机。
通过 PowerShell 部署 Windows 虚拟机
在接下来的演示中,我们将通过 PowerShell 创建两个 Windows Server 虚拟机,并将它们放入一个可用性集。为此,您需要执行以下步骤:
- 首先,我们需要按如下方式登录 Azure 账户:
Login-AzureRmAccount
- 如有必要,请按如下方式选择正确的订阅:
Select-AzureRmSubscription -SubscriptionId "********-****-****-****-***********"
- 为可用性集创建一个资源组,如下所示:
New-AzResourceGroup -Name PacktVMResourceGroup -Location EastUS
- 然后,我们可以为虚拟机创建一个可用性集,方法如下:
New-AzAvailabilitySet `
-Location "EastUS" `
-Name "PacktVMAvailabilitySet" `
-ResourceGroupName PacktVMResourceGroup `
-Sku aligned `
-PlatformFaultDomainCount 2 `
-PlatformUpdateDomainCount 2
- 我们需要为虚拟机设置管理员凭据,如下所示:
$cred = Get-Credential
- 现在,我们可以在可用性集中创建两个虚拟机,如下所示:
for ($i=1; $i -le 2; $i++)
{
New-AzVm `
-ResourceGroupName PacktVMResourceGroup `
-Name "PacktVM$i" `
-Location "East US" `
-VirtualNetworkName "PacktVnet" `
-SubnetName "PacktSubnet" `
-SecurityGroupName "PacktNetworkSecurityGroup" `
-PublicIpAddressName "PacktPublicIpAddress$i" `
-AvailabilitySetName "PacktVMAvailabilitySet" `
-Credential $cred
}
在最后两次演示中,我们在 Azure 门户和 PowerShell 中创建了可用性集中的虚拟机。在接下来的部分,我们将介绍扩展集。
虚拟机扩展集
虚拟机扩展集用于一次性部署多个虚拟机,无需手动操作或使用脚本。然后,您可以从一个地方集中管理它们。虚拟机扩展集通常用于构建大规模的基础设施,其中保持所有虚拟机同步至关重要。虚拟机的维护,包括保持同步,由 Azure 处理。虚拟机扩展集在后台使用可用性集。扩展集中的虚拟机会自动根据故障和更新域分布在底层平台上。虚拟机扩展集默认使用 Azure 自动扩展(Autoscale)。不过,您也可以选择自己添加或删除实例,而不使用自动扩展功能。
创建扩展集时,会自动为您创建一些构件。除了您指定数量的虚拟机会被添加到集群中外,还会添加一个 Azure 负载均衡器和 Azure 自动扩展,以及一个虚拟网络和一个公共 IP 地址,如下图所示:

Azure 虚拟机扩展集
在接下来的章节中,我们将部署和配置扩展集。
部署和配置扩展集
从 Azure 门户创建虚拟机扩展集,请按照以下步骤操作:
-
通过打开
portal.azure.com访问 Azure 门户。 -
点击创建资源,并在搜索栏中输入
Scale Set。选择虚拟机扩展集。 -
在下一个屏幕中,点击创建并为扩展集添加以下设置:
-
虚拟机扩展集名称:
PacktScaleSet -
操作系统磁盘镜像:Windows Server 2016 数据中心版
-
订阅:选择一个订阅
-
资源组:
PacktVMGroup -
位置:美国东部
-
可用性区域:无
-
用户名:
SCPacktUser -
密码:填写密码
-
实例数量:
2 -
实例大小:标准 DS1 v2
-
使用托管磁盘:是
-
启用扩展超过 100 个实例:否
-

扩展集
- 如果向下滚动,您可以配置自动扩展设置,选择不同的负载均衡设置,并按如下方式配置网络和监控功能:

扩展集配置设置
- 点击创建。现在,包含所提供数量虚拟机的扩展集已经部署完毕。
在本章的最后几个部分,我们将介绍如何使用 ARM 模板自动化虚拟机的部署。
修改和部署 ARM 模板
ARM 模板定义了 Azure 解决方案的基础设施和配置。Azure 通过一个 API 进行管理,这个 API 被称为资源管理器(Resource Manager)或 ARM API。你可以使用这个 API 部署基础设施作为代码,并配置你的 Azure 环境。这个 API 可以通过多种工具和资源进行调用;你可以使用 Azure 门户、PowerShell、CLI、直接调用 API,或创建 ARM 模板来实现。
你可以创建一个 JSON 格式的 ARM 模板,并使用它在 Azure 环境中以一致的状态反复部署你的解决方案。模板会像其他请求一样被资源管理器处理,资源管理器会解析模板,并将语法转换为针对相应资源提供者的 REST API 操作。REST API 使用模板中的资源部分来调用特定资源的 API。例如,Microsoft.Storage/storageAccounts 是一个资源提供者。
微软提供了多种预定义的 ARM 模板,可以下载并进行部署。你可以从 GitHub 下载快速启动模板,并直接从 GitHub 部署,或者下载并进行必要的调整:github.com/Azure/azure-quickstart-templates。
在下一部分中,我们将在 Azure 门户中修改一个 ARM 模板。
修改 ARM 模板
在演示中,我们将创建一个存储账户的 ARM 模板并将其保存在 Azure 门户中。我们将修改这个模板,使其能够自动生成存储账户名称。然后,我们会再次部署这个模板,并使用它从 Azure 门户创建一个新的存储账户。因此,您需要执行以下步骤:
-
通过打开
portal.azure.com来导航到 Azure 门户。 -
在左侧菜单中,选择 + 创建资源,然后选择 存储,再选择 存储账户。
-
添加以下值:
-
订阅: 选择一个订阅
-
资源组: 创建一个新的资源组,命名为
PacktARMResourceGroup -
存储账户名称:
packtarm -
位置: (美国)东部美国
-
性能: 标准
-
账户类型: StorageV2(通用目的 v2)
-
复制: 读取访问地理冗余存储(RA-GRS)
-
访问层:热存储:
-

创建一个新的存储账户
-
点击 查看 + 创建。不要选择 创建。
-
在下一步中,选择“下载自动化模板”:

下载自动化模板
- 编辑器将被打开,生成的模板将显示出来。主面板显示的是模板,它包含六个顶级元素:
schema、contentVersion、parameters、variables、resources和output。还有六个参数。storageAccountName在以下截图中已被突出显示。在模板中,定义了一个 Azure 资源,类型是Microsoft.Storage/storageAccounts。从顶部菜单中选择 下载:

主要 ARM 模板
-
打开下载的 ZIP 文件,然后将
template.json保存到你的计算机。在下一节中,你将使用模板部署工具来编辑该模板。 -
选择顶部菜单中的 参数,并查看这些值。我们稍后在部署过程中需要这些值:

ARM 模板参数
-
Azure 门户可用于基本的 ARM 模板编辑。对于更复杂的 ARM 模板,可以使用 Visual Studio Code 等工具进行编辑。我们将在此演示中使用 Azure 门户。因此,选择 + 创建资源,然后在搜索框中输入
Template Deployment。接着选择 创建。 -
在下一个页面中,你可以选择不同的模板加载选项。在这个演示中,选择 在编辑器中构建自己的模板:

模板选项
-
选择 加载文件,然后按照说明加载我们在上一节下载的
template.json。进行以下更改:-
移除
storageAccountName参数。 -
添加一个新变量:
-
"storageAccountName": "[concat(uniqueString(subscription().subscriptionId), 'storage')]"
-
- 将
"name": "[parameters('storageAccountName')]"替换为"name": "[variables('storageAccountName')]":
- 将

修改突出显示的部分
-
- 模板的代码将如下所示:
schema 和 parameters 部分:
{
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string"
},
"accountType": {
"type": "string"
},
"kind": {
"type": "string"
},
"accessTier": {
"type": "string"
},
"supportsHttpsTrafficOnly": {
"type": "bool"
}
},
以及 variable 和 resources 部分:
"variables": {
"storageAccountName": "[concat(uniqueString(subscription().subscriptionId), 'storage')]"
},
"resources": [
{
"name": "[variables('storageAccountName')]",
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2018-07-01",
"location": "[parameters('location')]",
"properties": {
"accessTier": "[parameters('accessTier')]",
"supportsHttpsTrafficOnly": "[parameters('supportsHttpsTrafficOnly')]"
},
"dependsOn": [],
"sku": {
"name": "[parameters('accountType')]"
},
"kind": "[parameters('kind')]"
}
],
"outputs": {}
}
-
- 然后选择 保存。
-
在下一个屏幕中,填写用于创建存储帐户的值。你会看到填入存储帐户名称的参数被移除,这个值将会自动生成。填写以下值:
-
资源组: 选择你在上一节创建的资源组名称。
-
位置: 中部美国
-
帐户类型: Standard_LRS
-
类型: StorageV2
-
访问层: 热
-
仅启用 HTTPS 流量: true
-
我同意上述条款和条件: 选择此选项:
-

填写值
-
选择 购买。
-
ARM 模板现在将被部署。部署完成后,进入资源组的概览页面。你将看到存储帐户名称已经自动生成:

存储帐户名称
有关 ARM 模板语法和结构的更多信息,可以参考以下网站:docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-authoring-templates。
我们现在已经在 Azure 门户中修改了一个 ARM 模板,并使用修改后的 ARM 模板创建了一个新的存储帐户。在接下来的演示中,我们将保存一个部署作为 ARM 模板。
将部署保存为 ARM 模板
在本次演示中,我们将从 Azure 门户将部署保存为 ARM 模板。我们将导出我们在可用性集内创建的两个虚拟机的模板,使用 PowerShell 进行操作。
下载后,你可以对其进行修改,并使用 PowerShell 或代码在 Azure 中重新部署。生成的 ARM 模板包含大量代码,这使得对其进行更改非常困难。保存部署为 ARM 模板时,请按照以下步骤操作:
-
通过打开
portal.azure.com访问 Azure 门户。 -
打开我们在上一演示中创建的资源组,在设置中选择导出模板,如下所示:

导出模板
- 模板是根据我们在创建不同资源时所做的设置生成的。你可以从这里下载模板并重新部署。你还可以下载 CLI、PowerShell、.NET 和 Ruby 的脚本,并使用这些编程语言创建不同的资源。从顶部菜单选择下载,如下所示:

下载模板
模板作为 ZIP 文件下载到你的本地文件系统。
-
现在,你可以从 ZIP 文件中提取模板文件并在 Visual Studio Code 中打开它们。如果你没有安装此工具,可以使用本章开始时提供的下载链接,或使用记事本或其他文本编辑工具。ZIP 文件包含三种不同语言创建的部署文件,每种语言都有一个:PowerShell、CLI 和 Ruby。它还包含一个
DeploymentHelper.cs文件,一个parameters.json文件和一个template.json文件。 -
在 Visual Studio Code 中,你可以对所需的参数和模板文件进行所有修改。如果你希望再次将模板部署到 Azure,请使用容器内的其中一个部署文件。以 PowerShell 为例,右键点击
deploy.ps1并选择使用 PowerShell 运行。填写订阅 ID,提供资源组名称和部署名称,并使用你的 Azure 凭据登录。这将启动部署。
创建 ARM 模板可能是考试中的一部分问题,因此我强烈建议你花时间熟悉模板的语法和代码块。
总结
在本章中,我们介绍了 部署和管理虚拟机 目标的第一部分,内容涵盖了如何为 Windows 和 Linux 创建和配置虚拟机。你学习了在 Azure 部署虚拟机时会创建的各种组件和部分。我们还介绍了如何使用扩展集和 ARM 模板自动化虚拟机的部署。
在下一章中,我们将继续进行 部署和管理虚拟机 目标的第二部分,内容将涵盖如何管理 Azure 虚拟机和虚拟机备份。
问题
回答以下问题,测试你对本章内容的掌握。你可以在本书末尾的 评估 部分找到答案:
-
你可以使用 VM 扩展集自动化部署多个虚拟机吗?
-
是的
-
不是
-
-
你可以使用可用性集将虚拟机分布到更新和故障域中吗?
-
是的
-
不是
-
-
你是否需要在 ARM 模板中定义资源提供程序以部署 Azure 中的各种资源?
-
是的
-
不是
-
深入阅读
你可以查看以下链接,获取更多关于本章所涉及主题的信息:
-
Linux 虚拟机:
docs.microsoft.com/en-us/azure/virtual-machines/linux/ -
快速入门:在 Azure 门户中创建 Linux 虚拟机:
docs.microsoft.com/en-us/azure/virtual-machines/linux/quick-create-portal -
虚拟机扩展集文档:
docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/ -
管理 Azure 中 Windows 虚拟机的可用性:
docs.microsoft.com/en-us/azure/virtual-machines/windows/manage-availability -
Azure 资源管理器概述:
docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-overview -
理解 Azure 资源管理器模板的结构和语法:
docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-authoring-templates -
快速入门:通过 Azure 门户创建和部署 Azure 资源管理器模板:
docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-quickstart-create-templates-use-the-portal?toc=%2Fazure%2Ftemplates%2Ftoc.json&bc=%2Fazure%2Ftemplates%2Fbreadcrumb%2Ftoc.json -
使用资源管理器模板和 Azure PowerShell 部署资源:
docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-template-deploy -
Azure 快速入门模板:
azure.microsoft.com/en-us/resources/templates/ -
在 Azure 资源管理器模板中定义资源:
docs.microsoft.com/en-us/azure/templates/
第八章:管理 Azure 虚拟机和虚拟机备份
在上一章节中,我们介绍了 Azure 中的虚拟机(VMs)以及如何通过 Azure 门户和 PowerShell 创建和配置虚拟机。我们还展示了如何使用 ARM 模板自动化这些步骤。
本章继续进行部署和管理虚拟机目标的第二部分。 在本章中,我们将重点介绍在创建虚拟机后如何管理它们。您将学习如何使用 Azure 门户、PowerShell 和 CLI 调整虚拟机大小和部署虚拟机。您还将学习如何为虚拟机添加额外的数据磁盘和网络接口。我们将介绍如何自动化虚拟机的配置管理,您将学习如何配置虚拟机的备份和恢复操作。
本章将涵盖以下主题:
-
管理虚拟机大小
-
重新部署虚拟机
-
移动虚拟机
-
添加数据磁盘和网络接口
-
自动化配置管理
-
配置虚拟机备份和恢复操作
技术要求
本章示例使用 Azure PowerShell (docs.microsoft.com/en-us/powershell/azure/install-az-ps?view=azps-1.8.0)。
管理虚拟机大小
本章的第一部分,我们将讨论虚拟机的一些管理功能。创建之后,您可以通过 Azure 门户、PowerShell 和 CLI 管理并更改(垂直扩展)Windows 和 Linux 虚拟机的大小。垂直扩展,也叫做扩展和缩减,意味着根据不同的工作负载增大或缩小虚拟机的大小。
在接下来的演示中,我们将通过 Azure 门户和 CLI 调整虚拟机的大小。
在 Azure 门户中调整虚拟机大小
要通过 Azure 门户管理和更改虚拟机的大小以进行横向扩展和缩减,您需要执行以下步骤:
-
通过打开
portal.azure.com导航到 Azure 门户。 -
转到我们之前创建的某个虚拟机的概览面板,或者创建一个新的虚拟机。
-
在设置下,选择大小。
-
在大小概览面板中,您可以轻松选择另一个虚拟机大小。在顶部菜单中,有不同的筛选器。您可以按不同的大小、虚拟机代际类型、不同的虚拟机类型、磁盘类型进行筛选,还可以自定义筛选器。选择虚拟机大小后,点击调整大小按钮实际调整虚拟机大小:

调整虚拟机大小
- 如果虚拟机当前正在运行,则更改其大小将在虚拟机重启时生效。
在下一部分,我们将通过 CLI 调整相同虚拟机的大小。
使用 CLI 调整虚拟机大小
您还可以使用 CLI 调整虚拟机的大小。您可以从 Azure Cloud Shell 或本地文件系统运行 CLI 脚本。您也可以使用 Azure Cloud Shell 来运行 PowerShell 脚本和命令。在本演示中,我们将通过 Azure Cloud Shell 使用 CLI 调整虚拟机大小。
使用 CLI 调整虚拟机大小时,您需要执行以下步骤:
-
通过打开
portal.azure.com导航到 Azure 门户。 -
通过点击 Azure 门户右上角菜单中的以下菜单项来打开 Azure Cloud Shell:

打开 Azure Cloud Shell
-
确保选择了 Bash Shell。
-
添加以下代码行,以列出您所在区域的不同可用虚拟机大小:
az vm list-vm-resize-options --resource-group PacktVMResourceGroup --name myVM1 --output table
- 要将虚拟机(VM)调整为不同的大小,请添加以下代码行。如果该大小不可用,您可以将所需的虚拟机大小替换为您订阅或区域中可用的大小:
az vm resize --resource-group PacktVMResourceGroup --name myVM1 --size Standard_DS3_v2
我们已经使用 Azure 门户和 CLI 调整了虚拟机的大小。在下一节中,我们将跨不同区域移动虚拟机并重新部署它们。
重新部署虚拟机
您还可以在虚拟机创建后重新部署它们。当您遇到远程桌面协议(RDP)连接或应用程序访问 Windows 和 Linux 虚拟机的故障排除问题时,这可能会非常有用。当您重新部署虚拟机时,Azure 将关闭虚拟机,将其移动到 Azure 基础设施中的新节点,然后重新启动它。所有配置选项和关联的资源在重新部署过程中会保留下来。重新部署虚拟机后,临时磁盘会丢失,任何与虚拟网络接口关联的动态 IP 地址也会更新。
从 Azure 门户重新部署 Windows 虚拟机可以很容易地完成,也可以通过 PowerShell 和 CLI 进行。在接下来的演示中,我们将从 Azure 门户和 PowerShell 重新部署虚拟机。
从 Azure 门户重新部署虚拟机
要从 Azure 门户重新部署虚拟机,您需要执行以下步骤:
-
通过打开
portal.azure.com导航到 Azure 门户。 -
再次进入我们之前创建的某个虚拟机的概览面板,或创建一个新的虚拟机。
-
在支持 + 故障排除下,选择重新部署。这将打开重新部署面板,您可以在其中选择重新部署按钮来重新部署虚拟机:

重新部署虚拟机
- 在重新部署过程中,虚拟机将不可用。
在接下来的演示中,我们将使用 PowerShell 重新部署同一虚拟机。
从 PowerShell 重新部署虚拟机
从 PowerShell 重新部署虚拟机时,您需要执行以下步骤:
-
通过打开
portal.azure.com导航到 Azure 门户。 -
通过点击 Azure 门户右上角菜单中的以下菜单项再次打开 Azure Cloud Shell。
-
确保这次选择了PowerShell。
-
添加以下代码行以重新部署虚拟机:
Set-AzVM -Redeploy -ResourceGroupName "PacktVMResourceGroup" -Name "myVM1"
我们现在已经覆盖了大多数重新部署虚拟机的不同方式。在接下来的部分中,我们将向虚拟机添加额外的数据磁盘和网络接口。
移动虚拟机
您还可以将虚拟机和其他资源移动到不同的订阅和资源组之间。您可以使用 Azure 门户、Azure PowerShell、Azure CLI 或 REST API 来移动资源。
当您将虚拟机移到另一个资源组时,在操作期间源和目标都会被锁定。此外,在虚拟机完全移动完成之前,资源组中的写入和删除操作将被阻止。通过锁定这两个操作,您无法在资源组中添加、更新或删除任何资源。然而,使用这些资源的应用程序,例如将 Azure SQL 数据库移动到另一个资源组时,将不会经历任何停机时间。
移动资源仅将其移到新的资源组。实际位置将保持不变,且无法更改。即使新的资源组部署在另一个位置,已移动的资源仍会保持在原始位置。
在不同订阅和资源组之间移动资源有一定的限制。这可能是考试中的问题之一。更多信息,请参考文档:docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-move-resources。
添加数据磁盘和网络接口
您可以通过 Azure 门户、PowerShell 和 CLI 向 Windows 虚拟机添加新的托管数据磁盘和额外的网络接口。虚拟机的大小决定了您可以附加多少数据磁盘到一个虚拟机上。
添加数据磁盘
要从 Azure 门户添加数据磁盘,您需要执行以下步骤:
-
打开
portal.azure.com进入 Azure 门户。 -
转到我们之前创建的某个虚拟机的概述面板。
-
在设置下,选择磁盘。单击添加数据磁盘按钮:

添加数据磁盘
- 您现在可以添加现有磁盘或创建新磁盘。我们没有额外的磁盘,所以请选择创建磁盘:

创建新磁盘
-
在创建托管磁盘面板中,添加以下值:
-
磁盘名称:
PacktDisk2。 -
资源组:保持默认选择的组。
-
帐户类型:在此处,您可以选择三种不同的选项:标准 HHD、标准 SSD 和高级 SSD。请选择其中任意一个。
-
大小:保持默认大小。
-
源类型:在此处,您也可以选择三种不同的选项:无、快照、存储 Blob。请选择无:
-

磁盘设置
- 单击创建以创建磁盘。
现在,磁盘已添加到虚拟机中。要初始化新的数据磁盘,你可以登录到服务器并在磁盘管理中创建一个新卷。完成后,你可以格式化磁盘以完成初始化。
添加网络接口
要从 Azure 门户为虚拟机添加额外的网络接口,你需要执行以下步骤:
- 从虚拟机的概览面板,在设置下选择网络。然后,点击附加网络接口:

添加网络接口
- 弹出窗口将显示,你需要点击创建网络接口来创建一个新的网络接口。你也可以在这里添加现有的网络接口:

创建新的网络接口
-
在“创建网络接口”面板中,添加以下值:
-
名称:
PacktNIC。 -
子网:在这里选择默认子网。
-
私有 IP 地址分配:选择动态或静态。
-
资源组:在这里保留默认选项:
-

网络接口设置
- 点击创建。
网络接口现在已添加到虚拟机,并可以通过登录虚拟机并配置网络适配器来进行配置。
在前面的章节中,我们通过手动操作或单个脚本来管理虚拟机。在本章的下一部分,我们将探讨如何实现虚拟机配置管理的自动化。
自动化配置管理
在 Azure 中,有多种方法可以自动化基础设施的创建和配置。你可以使用 ARM 模板将基础设施作为代码进行部署,或者使用 Azure 自动化、PowerShell 脚本等。
当不同的 Azure 资源被部署时,有一些工具可以用来管理资源的配置。例如,当你想要自动化虚拟机的配置时,Azure 提供了以下工具:
-
Chef:Chef 是一个第三方解决方案,为 Linux、Windows 和 macOS 设备提供 DevOps 自动化平台。它可以用于虚拟机和物理服务器配置。它需要在虚拟机或服务器上安装一个代理,该代理连接到 Chef 服务器,检查是否有可用的更新和其他配置。你还可以使用Chef Automate平台来打包和部署应用程序。
-
Puppet:Puppet 也是一个第三方解决方案,它具有类似于 Chef 的功能。你可以在从 Azure 门户自动创建虚拟机时启用对 Puppet 的支持。你可以在创建新虚拟机时将其作为扩展添加。它将安装 Puppet 代理,并连接到 Puppet 主服务器。
-
期望状态配置 (DSC):DSC 是强制对系统进行配置的过程。它使用包含 PowerShell 脚本的配置文件。这些脚本负责对系统进行所需的配置,并确保这些系统保持同步。因此,例如,当你创建了一个 DSC 文件来配置 Windows Server 上的 IIS,而该配置被管理员删除时,DSC 文件将重新安装并再次配置 IIS。
-
自定义脚本扩展:你可以使用自定义脚本扩展配置软件安装任务及各种后部署、配置和管理任务。脚本可以从 Azure 存储或 GitHub 下载,或者在扩展运行时提供给 Azure 门户,并在虚拟机上执行。你可以将自定义脚本扩展与 ARM 模板集成,并通过 PowerShell、CLI、VM REST API 和 Azure 门户运行它们。
配置虚拟机备份和恢复操作
在本演示中,我们将执行虚拟机的备份和恢复操作。我们将备份本章中使用的虚拟机,并从恢复服务库中恢复它。
创建恢复服务库
第一步是创建一个恢复服务库,该库可用于存储备份。
我们将在 Azure 中创建恢复服务库。你可以使用 Azure 门户、PowerShell 和 CLI 来创建它。我们将通过 Azure 门户来创建该库。为此,请执行以下步骤:
-
打开
portal.azure.com进入 Azure 门户。 -
创建一个新的资源。然后,选择管理工具,接着选择备份和站点恢复。
-
添加以下值以创建新的库:
-
名称:
PacktVMVault。 -
订阅:在此选择一个订阅。
-
资源组:创建一个新的资源组,并命名为
PacktVMVault。 -
位置:选择一个位置:
-

创建新的恢复服务库
- 点击创建按钮。
我们现在已经创建了恢复服务库,可以用来恢复备份。接下来我们将在下一部分中创建并配置备份策略。
创建和配置备份策略
在恢复服务库概览页中,你可以配置备份策略。在本演示中,我们将配置一个备份策略。因此,请执行以下步骤:
-
打开
portal.azure.com进入 Azure 门户。 -
打开我们在上一步创建的恢复服务库。
-
在顶部菜单中,点击+ 备份:

创建新的备份
- 在下一个屏幕中,选择以下选项并点击备份:

设置备份目标
- 现在,我们需要选择一个备份策略。我们可以使用 Azure 为我们创建的默认策略,该策略每天进行一次备份,或者我们也可以在此处创建自定义策略。在“选择备份策略”下,选择“创建新策略”:

创建新的备份策略
- 对于新的策略,填写以下值:

创建备份策略
-
填写完所有值后,点击确定。
-
然后,我们需要选择要备份的虚拟机。选择它们并点击确定:
[选择要备份的虚拟机]
-
点击启用备份。
-
现在,虚拟机将每天在同一时间进行备份。
-
如果你打开虚拟机概览面板,在操作下选择备份,你将看到已经应用了备份策略,并且恢复服务库也会显示。点击顶部菜单中的立即备份以执行手动备份:

备份虚拟机
-
保持默认的保留日期,并点击确定。
-
选择查看所有任务以查看备份的进度:

备份任务
- 所有任务都会显示在列表中:

备份列表
当备份创建完成后,我们可以恢复它。在本演示的下一个部分,我们将恢复虚拟机的备份。
恢复备份
在最后的演示中,我们将恢复我们创建的虚拟机(VM)的备份。因此,请按以下步骤操作:
- 在虚拟机备份部分的概览面板中,选择顶部菜单中的恢复虚拟机:

恢复备份
- 从列表中选择恢复点并点击确定:

选择恢复点
- 在下一个面板中,你可以设置恢复配置。你可以选择创建一个新的虚拟机或替换现有虚拟机。选择替换现有虚拟机并选择以下值:

设置恢复配置
-
确保虚拟机已关闭。
-
点击确定和恢复。
备份现在将被恢复,现有的虚拟机将被备份替换。
Azure 站点恢复在第六章中已有介绍,配置 Azure 文件和实现 Azure 备份。有关它所提供的功能和能力的更多信息,可以参考该章节。
总结
在本章中,我们讲解了如何管理虚拟机,以及如何实施虚拟机备份。我们还讨论了如何从 Azure 门户管理虚拟机,以及如何使用 PowerShell 和 CLI 移动和重新部署虚拟机。我们深入探讨了配置管理的自动化,并对 Azure 备份和恢复操作进行了详细分析。
在下一章,我们将从部署和管理虚拟网络目标的第一部分开始,讲解如何实施和管理虚拟网络。
问题
回答以下问题,以测试您对本章内容的理解。您可以在本书末尾的评估部分找到答案:
-
您可以使用 PowerShell 和 CLI 来移动、重新部署和调整 Windows 和 Linux 虚拟机的大小吗?
-
是的
-
否
-
-
您只能通过 Azure 门户添加额外的数据磁盘和网络接口吗?
-
是的
-
否
-
-
部署后,您能使用自定义脚本扩展来配置 macOS 机器吗?
-
是的
-
否
-
进一步阅读
您可以查看以下链接,了解更多关于本章内容的详细信息:
-
调整 Windows 虚拟机大小:
docs.microsoft.com/en-us/azure/virtual-machines/windows/resize-vm。 -
使用 Azure CLI 调整 Linux 虚拟机大小:
docs.microsoft.com/en-us/azure/virtual-machines/linux/change-vm-size。 -
将 Windows 虚拟机重新部署到新的 Azure 节点:
docs.microsoft.com/en-us/azure/virtual-machines/troubleshooting/redeploy-to-new-node-windows。 -
将 Linux 虚拟机重新部署到新的 Azure 节点:
docs.microsoft.com/en-us/azure/virtual-machines/troubleshooting/redeploy-to-new-node-linux。 -
使用 PowerShell 附加数据磁盘到 Windows 虚拟机:
docs.microsoft.com/en-us/azure/virtual-machines/windows/attach-disk-ps。 -
将 Azure 虚拟机迁移到另一个区域:
docs.microsoft.com/en-us/azure/site-recovery/azure-to-azure-tutorial-migrate?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json。 -
Windows 的自定义脚本扩展:
docs.microsoft.com/en-us/azure/virtual-machines/extensions/custom-script-windows。 -
Windows PowerShell 所需状态配置概述:
docs.microsoft.com/en-us/powershell/dsc/overview/overview。 -
什么是 Azure 备份?:
docs.microsoft.com/en-us/azure/backup/backup-overview。 -
关于站点恢复:
docs.microsoft.com/en-us/azure/site-recovery/site-recovery-overview.
第四部分:部署与管理虚拟网络
在本节中,你将学习如何在 Azure 中部署和管理虚拟网络。
本节将涵盖以下章节:
-
第九章,实施与管理虚拟网络
-
第十章,将本地网络与 Azure 虚拟网络集成
-
第十一章,监控与故障排除虚拟网络
-
第十二章,Azure 安全组与 Azure DNS
-
第十三章,实施 Azure 负载均衡器
第九章:实施和管理虚拟网络
在上一章中,我们通过讲解如何管理 Azure 虚拟机和虚拟机备份,完成了部署和管理虚拟机目标的最后一部分。
本章介绍了新的目标,部署和管理虚拟网络。在本章中,我们将重点讲解 Azure 中的虚拟网络以及如何实施和管理它。你将了解 Azure 虚拟网络的基础知识,包括私有和公共 IP 地址,并学习如何配置子网、虚拟网络(VNets)以及公共和私有 IP 地址。为了完成本章内容,我们将配置 VNet 对等连接。
本章将涵盖以下主题:
-
Azure VNet
-
IP 地址
-
配置子网和 VNets
-
配置私有和公共 IP 地址
-
创建和配置 VNet 对等连接
技术要求
本章使用 Azure PowerShell 进行示例。有关更多详细信息,请访问docs.microsoft.com/en-us/powershell/azure/install-az-ps?view=azps-1.8.0。
我们的示例应用程序的源代码可以从github.com/PacktPublishing/Microsoft-Azure-Administrator-Exam-Guide-AZ-103/tree/master/Chapter09下载。
Azure VNet
Azure VNet 是传统网络的虚拟表示,托管在云中。它完全基于软件,而传统网络则使用电缆、路由器等。VNets 提供一个安全且隔离的环境,并将 Azure 资源相互连接。默认情况下,不同的资源无法从 VNet 外部访问。然而,你可以将多个 VNets 连接在一起,或者将 VNet 连接到本地网络。所有连接到同一 VNet 内的 Azure 资源必须位于同一地区和订阅中。
当你创建 VNet 时,系统会自动为你创建一个子网。你可以在同一个 VNet 中创建多个子网(每个 VNet 最多支持 1000 个子网)。连接多个 VNets 在一起称为 VNet 对等连接。每个 Azure 订阅最多允许 10 个对等连接。
Azure 中可以使用的最小子网是/29子网,它包含 8 个地址,最大的是/8子网,包含 1600 万个地址。
要了解更多关于子网划分的信息,可以参考子网掩码备忘单:www.aelius.com/njh/subnet_sheet.html。
IP 地址
Azure 中的 VNet 可以拥有私有和公共 IP 地址。私有 IP 地址只能从 VNet 内部访问,而公共 IP 地址也可以从互联网上访问。您可以通过 VPN 网关或 ExpressRoute 连接访问私有 IP 地址。私有和公共 IP 地址都可以是静态或动态的,但在创建新 VNet 时,IP 地址默认是静态的。您可以通过 Azure 门户、PowerShell 或 CLI 将 IP 地址更改为 静态。以下是 IP 地址的两种状态:
-
动态:动态 IP 地址由 Azure 自动分配,并从虚拟网络中配置的子网地址范围内选择,虚拟网络是 Azure 资源所在的位置。IP 地址在创建或启动时分配给 Azure 资源。当资源停止并释放(例如,在 Azure 门户中停止虚拟机时,虚拟机会自动释放)时,IP 地址将被释放,并被 Azure 添加回子网中可用地址池。
-
静态:静态 IP 地址(包括私有和公共)是预先分配的,并且在删除分配之前将保持不变。您可以手动选择一个静态私有 IP 地址。它们只能分配给非面向互联网的连接,例如内部负载均衡器。您可以将私有静态 IP 地址分配给您本地网络的连接或 ExpressRoute 电路。公共静态 IP 地址由 Azure 自动创建,可以分配给面向互联网的连接,例如外部负载均衡器。
公共 IP 地址
公共 IP 地址可以用于 Azure 服务之间的内部通信以及通过互联网进行的外部通信。您可以为公共 IP 地址使用 IPv4 和 IPv6,但对 IPv6 的支持是有限的。撰写本文时,您只能将 IPv6 地址分配给外部负载均衡器。
当 Azure 资源启动或创建时,Azure 会将公共 IP 地址分配给 VNet 的网络接口。当发起出站连接时,Azure 会将私有 IP 地址映射到公共 IP 地址,即 源网络地址转换(SNAT)。
Azure 会在 Azure 资源启动或创建时将公共 IP 地址分配给网络接口。当发起出站连接时,Azure 会将私有 IP 地址映射到公共 IP 地址(SNAT)。返回流量也会允许通过。公共 IP 地址通常用于虚拟机、面向互联网的负载均衡器、VPN 网关和应用程序网关。每个订阅最多可以有 60 个动态公共 IP 地址和 20 个静态公共 IP 地址。前五个静态 IP 地址免费使用。
私有 IP 地址
私有 IP 地址支持 IPv4 和 IPv6,但对 IPv6 的支持有限。它们只能动态分配,且 IPv6 地址在 VNet 内不能相互通信。使用 IPv6 地址的唯一方法是将其分配给面向互联网的负载均衡器,其中前端 IP 地址是 IPv4 地址,后端是 IPv6 地址。私有 IP 地址通常用于虚拟机、内部负载均衡器和应用程序网关。由于 VPN 始终面向互联网,它不能拥有私有 IP 地址。每个 VNet 最多可拥有 4,096 个私有 IP 地址。然而,您可以创建多个 VNets(每个订阅最多 50 个 VNet)。
这些限制基于以下页面的默认限制:docs.microsoft.com/en-us/azure/azure-subscription-service-limits?toc=%2fazure%2fvirtual-network%2ftoc.json#networking-limits。您可以提交支持请求以提高这些限制。
现在,我们已经了解了 Azure 中各种网络方面的背景信息,接下来我们可以配置一个带子网的虚拟网络。
配置虚拟网络和子网
在本演示中,我们将从 Azure 门户创建和配置一个虚拟网络和一个子网。我们在之前的演示中已经创建了这两个内容,例如在创建虚拟机时。现在我们将更详细地讲解这个主题。
在下一个演示中,我们将使用 PowerShell 配置虚拟网络和子网。因此,我们需要按照以下步骤进行操作:
- 首先,我们需要登录 Azure 帐户,如下所示:
Connect-AzAccount
- 如有必要,请按照以下方式选择正确的订阅:
Select-AzSubscription -SubscriptionId "********-****-****-****-***********"
- 为 VNet 创建一个资源组,如下所示:
New-AzResourceGroup -Name PacktVNetResourceGroup -Location EastUS
- 接下来,我们可以按照以下方式创建 VNet:
$virtualNetwork = New-AzVirtualNetwork `
-ResourceGroupName PacktVNetResourceGroup `
-Location EastUS `
-Name PacktVirtualNetwork `
-AddressPrefix 10.0.0.0/16
- 然后,创建子网,如下所示:
$subnetConfig = Add-AzVirtualNetworkSubnetConfig `
-Name default `
-AddressPrefix 10.0.0.0/24 `
-VirtualNetwork $virtualNetwork
- 最后,将子网与虚拟网络关联,如下所示:
$virtualNetwork | Set-AzVirtualNetwork
我们已经从 PowerShell 创建了一个 VNet 和子网。我们将在本章后续的演示中使用它。在下一部分,我们将使用 PowerShell 配置私有和公有 IP 地址,并将其与该 VNet 关联。
配置私有和公有 IP 地址
在本演示中,我们将配置一个私有和一个公有 IP 地址。当我们创建 VNet 时,Azure 已经为我们自动创建了一个私有 IP 地址。然而,在本演示中,我们将再创建一个,并将其与公有 IP 地址一起关联到 网络接口卡(NIC)。要从 PowerShell 配置私有和公有 IP 地址,您需要按照以下步骤进行操作:
- 在相同的 PowerShell 窗口中,添加以下代码以检索 VNet 和子网配置:
$vnet = Get-AzVirtualNetwork -Name PacktVirtualNetwork -ResourceGroupName PacktVNetResourceGroup
$subnet = Get-AzVirtualNetworkSubnetConfig -Name default -VirtualNetwork $vnet
- 接下来,创建一个私有和公有 IP 地址,并将它们分配给配置,如下所示:
$publicIP = New-AzPublicIpAddress `
-Name PacktPublicIP `
-ResourceGroupName PacktVNetResourceGroup `
-AllocationMethod Dynamic `
-Location EastUS
$IpConfig = New-AzNetworkInterfaceIpConfig `
-Name PacktPrivateIP `
-Subnet $subnet `
-PrivateIpAddress 10.0.0.4 `
-PublicIPAddress $publicIP `
-Primary
- 然后,创建一个网络接口并按如下配置进行分配:
$NIC = New-AzNetworkInterface `
-Name PacktNIC `
-ResourceGroupName PacktVNetResourceGroup `
-Location EastUS `
-IpConfiguration $IpConfig
我们现在已经配置了一个 NIC,一个公有 IP 地址和一个私有 IP 地址,并将它们与我们在之前示范中创建的 VNet 关联。
用户定义路由
当你创建子网时,Azure 会创建系统路由,以便子网中的所有资源可以相互通信。每个子网都有以下默认的系统路由表,其中包含最小的路由:
-
本地 VNet:这是一个用于 VNet 中资源的路由。对于这些路由,没有下一跳地址。如果目标 IP 地址包含本地 VNet 前缀,则流量会被路由到那里。
-
本地网络:这是一个定义了本地网络地址空间的路由。对于此路由,下一跳地址将是 VNet 网关。如果目标 IP 地址包含本地网络地址前缀,则流量会被路由到那里。
-
互联网:该路由用于所有通过公有互联网传输的流量,互联网网关总是下一跳地址。如果目标 IP 地址不包含 VNet 或本地网络前缀,则流量会通过网络地址转换(NAT)路由到互联网。
你可以通过创建用户定义路由(UDRs)来覆盖系统路由。通过这种方式,你可以强制流量按照特定的路由路径走。例如,你有一个由两个子网组成的网络,你想要添加一台作为隔离区(DMZ)的虚拟机,并在其上安装防火墙。你希望流量只能通过防火墙,而不能在两个子网之间流动。为了创建 UDR 并启用 IP 转发,你需要在 Azure 中创建一个路由表。当该路由表创建完毕且包含自定义路由时,Azure 会优先使用自定义路由而不是默认的系统路由。
创建用户定义路由
要创建用户定义路由(UDRs),请按照以下步骤操作:
-
打开
portal.azure.com/并导航至 Azure 门户。 -
点击创建资源,在搜索框中输入
路由表,并创建一个新的路由表。 -
添加以下值,如下图所示:
-
名称:
PacktRoutingTable。 -
订阅:选择一个订阅。
-
资源组:创建一个新的资源组并命名为
PacktRoutingTable。 -
位置:东美国(East US)。
-

创建新的路由表
-
点击创建。
-
创建一个新的空路由表。创建后,打开路由表的概览面板。要添加自定义路由,请点击左侧菜单中的路由,如下所示:

添加新路由
-
在这个示例中,我们希望所有互联网流量都通过防火墙。因此,添加以下值,如下图所示:
-
名称:
DefaultRoute。 -
地址前缀:
0.0.0.0/0。 -
下一跳类型:虚拟设备;即防火墙。
-
下一跳地址:
10.1.1.10。这将是防火墙的内部 IP 地址。
-

向路由表添加路由
- 点击确定。路由已为您创建。
若要获取有关如何创建 UDR 和虚拟设备的详细说明,您可以参考以下教程:docs.microsoft.com/en-us/azure/virtual-network/tutorial-create-route-table-portal。
我们创建了一个自定义路由表,并向其中添加了一条路由,将所有流量路由到防火墙。在接下来的部分中,我们将讨论 VNet 对等连接。
VNet 对等连接
VNet 对等连接是一种机制,通过 Azure 骨干基础设施无缝地连接同一区域中的两个 VNet。一旦对等连接,VNets 在连接性方面表现为一个,就像在同一 VNet 中创建的虚拟机之间的流量路由一样。驻留在对等 VNet 中的虚拟机使用私有 IP 地址进行相互通信。
Azure 支持以下两种不同类型的对等连接:
-
VNet 对等连接:用于连接同一 Azure 区域中的 VNets。
-
全球 VNet 对等连接:用于连接不同 Azure 区域的 VNet。
对等 VNet 之间的网络流量是私密的。流量完全保持在微软骨干网络中,因此无需使用任何额外的网关,也不需要通过公共互联网路由流量。对等 VNet 之间的通信也无需加密。它通过不同虚拟网络中的资源之间的低延迟、高带宽连接进行通信。
您可以使用 VNet 对等连接将通过资源管理器和经典部署模型创建的 VNets 连接在一起,它还提供跨 Azure 区域和 Azure 订阅传输数据的能力。
VNet 对等连接不同于使用 Azure VPN 网关将两个 VNet 连接在一起。当您使用 Azure VPN 网关将两个 VNet 连接在一起时,这叫做VNet 到 VNet 连接。这部分内容在第十章,将本地网络与 Azure 虚拟网络集成中有详细讲解。
创建和配置 VNet 对等连接
在下一个演示中,我们将从 Azure 门户创建并配置 VNet 对等连接。我们需要两个 VNet。我们将使用在第一个演示中创建的 VNet,并创建一个额外的 VNet,其地址空间与第一个 VNet 不同。在对等连接两个 VNet 时,地址空间不能重叠。
要从 Azure 门户创建 VNet 并设置 VNet 对等连接,请按照以下步骤操作:
-
通过打开
portal.azure.com/导航到 Azure 门户。 -
点击创建资源 | 网络 | 虚拟网络。创建一个新的 VNet。
-
添加以下值:
-
名称:
PacktVNetPeering -
地址空间:
10.1.0.0/16 -
订阅:选择一个订阅
-
资源组:
PacktVNetResourceGroup -
位置:东部美国
-
子网:
default -
地址范围:
10.1.0.0/24
-
这些值显示在以下截图中:

创建额外的 VNet
-
点击创建。
-
虚拟网络已为你创建。创建后,打开我们在本章首次演示中创建的虚拟网络的概述窗口,虚拟网络名为
PacktVirtualNetwork,如下所示:

- 然后,在设置下选择对等连接。点击顶部菜单中的添加,如下所示:

添加新的对等连接
-
在添加对等连接窗口中,添加以下值:
-
从 PacktVirtualNetwork 到 PacktVNetPeering 的对等连接名称:
PacktPeering。 -
虚拟网络部署模型:资源管理器。
-
订阅:保持默认选项。
-
虚拟网络:选择
PacktVNetPeering。
-
这些值显示在以下截图中:

添加对等连接
-
这里还有其他一些设置可以进行配置。第一个是允许从 PacktVirtualNetwork 到 PacktVNetPeering 的转发流量:这意味着你允许来自对等虚拟网络外部的流量。第二个是配置网关传输设置:这意味着对等网络使用此虚拟网络的网关来连接外部资源,例如本地环境。最后一个是配置远程网关设置:对于这个设置,你必须先启用前一个设置,通过启用此设置,你将使用另一个虚拟网络网关连接到虚拟网络外部的资源。
-
点击确定,对等连接已创建。
我们现在已经通过 Azure 门户配置了 VNet 对等连接。本章到此结束。
有多种方法可以验证网络连接性。在第十一章,监控和故障排除虚拟网络,会有更详细的介绍。
总结
本章中,我们介绍了部署和管理虚拟网络目标的第一部分,重点讲解了 Azure 中的虚拟网络。我们已配置虚拟网络并创建了私有和公共 IP 地址。我们还通过 Azure 门户配置了 VNet 对等连接。
在下一章中,我们将继续本目标,介绍如何将本地网络与 Azure VNet 集成。
问题
请回答以下问题,测试你对本章内容的了解。你可以在本书结尾的评估部分找到答案。
-
当你使用 VNet 对等连接时,是否需要创建 Azure VPN 网关将两个虚拟网络互联?
-
是
-
否
-
-
你可以创建自定义路由表来调整虚拟网络内部不同资源之间的路由吗?
-
是
-
否
-
-
你可以为所有 Azure 资源分配 IPv6 地址吗?
-
是
-
否
-
进一步阅读
你可以查看以下链接,了解本章涉及的更多信息:
-
Azure 中的 IP 地址类型和分配方法:
docs.microsoft.com/en-us/azure/virtual-network/virtual-network-ip-addresses-overview-arm -
快速入门:使用 Azure 门户创建虚拟网络:
docs.microsoft.com/en-us/azure/virtual-network/quick-create-portal -
快速入门:使用 PowerShell 创建虚拟网络:
docs.microsoft.com/en-us/azure/virtual-network/quick-create-powershell -
快速入门:使用 Azure CLI 创建虚拟网络:
docs.microsoft.com/en-us/azure/virtual-network/quick-create-cli -
为 Azure 网络接口添加、更改或删除 IP 地址:
docs.microsoft.com/en-us/azure/virtual-network/virtual-network-network-interface-addresses -
创建、更改或删除公共 IP 地址:
docs.microsoft.com/en-us/azure/virtual-network/virtual-network-public-ip-address -
教程:使用 Azure 门户通过路由表路由网络流量:
docs.microsoft.com/en-us/azure/virtual-network/tutorial-create-route-table-portal -
虚拟网络对等连接:
docs.microsoft.com/en-us/azure/virtual-network/virtual-network-peering-overview
第十章:将本地网络与 Azure 虚拟网络集成
在上一章中,我们介绍了 部署和管理虚拟网络 目标的第一部分。我们讨论了 Azure 中的虚拟网络,并介绍了虚拟网络的基础知识,配置了私有和公共 IP 地址。我们还讨论了 VNet 对等连接。
本章继续本目标的内容,介绍如何将您的本地网络与 Azure 虚拟网络集成。在本章中,我们将重点讨论从本地环境到 Azure 的 VPN 连接以及 Azure 到 Azure 的 VPN 连接。您将学习如何创建 Azure VPN 网关,以及如何使用本地服务器和 Azure VPN 网关配置 站点到站点(S2S)VPN。章末,我们将介绍 VNet 到 VNet 的连接,并讨论它与 S2S VPN 的相似之处。
本章将涵盖以下主题:
-
Azure VPN 网关
-
创建和配置 Azure VPN 网关
-
创建和配置 S2S VPN
-
验证本地连接性
-
VNet 到 VNet
技术要求
本章使用 Azure PowerShell 进行示例:docs.microsoft.com/en-us/powershell/azure/install-az-ps?view=azps-1.8.0。
本章的源代码可以从以下 GitHub 链接下载:github.com/PacktPublishing/Microsoft-Azure-Administrator-Exam-Guide-AZ-103/tree/master/Chapter10。
Azure VPN 网关
Azure VPN 提供了一个安全网关,可以用于通过互联网在 Azure 虚拟网络和本地位置之间发送加密流量。此网关还可以用于在不同的 Azure 虚拟网络和 Microsoft 网络之间发送加密流量。
对于每个虚拟网络,您只能拥有一个 VPN 网关。但您可以创建多个连接到同一个 VPN 网关。当创建多个连接时,所有 VPN 隧道将共享可用的网关带宽。
虚拟网络网关 是通过部署在 网关子网 中的两个或多个虚拟机创建的。网关子网是为 VPN 连接创建的特定子网。部署在网关子网中的虚拟机是在虚拟网络网关创建时一起创建的。然后,这些虚拟机被配置为包含特定的网关服务和路由表,以连接到 Azure 中的网关。无法手动配置网关服务和路由表。
Azure VPN 网关提供以下定价层:
-
基础:该层提供最多 10 个 S2S/VNet 到 VNet 的隧道,并且最多支持 128 个 点对站点(P2S)连接。平均带宽为 100 Mbps。
-
VpnGw1:此层级提供最多 30 个 S2S/VNet 到 VNet 的隧道和最多 128 个 P2S 连接,平均带宽为 650 Mbps。
-
VpnGw2:此层级提供最多 30 个 S2S/VNet 到 VNet 的隧道和最多 128 个 P2S 连接,平均带宽为 1 Gbps。
-
VpnGw3:此层级提供最多 30 个 S2S/VNet 到 VNet 的隧道和最多 128 个 P2S 连接,平均带宽为 1.25 Gbps。
S2S VPN
S2S VPN 网关连接是通过 IPsec/IKE(IKEv1 或 IKEv2)VPN 隧道建立的连接。这些连接可以用于混合配置和跨域配置。它旨在通过互联网在某个位置与虚拟网络之间建立安全连接。该位置可以是办公室。例如,一旦配置了 S2S VPN 连接,您就可以从该位置的每个设备连接到 Azure,使用相同的 VPN 位置。
S2S 连接需要一个位于本地的、与之分配了公网 IP 地址的兼容 VPN 设备。它不应位于 NAT 后面。
如需了解兼容的 VPN 设备,您可以参考以下文档:docs.microsoft.com/en-us/azure/vpn-gateway/vpn-gateway-vpn-faq#s2s。
以下图示显示了从本地环境到 Azure 的 S2S VPN 连接:

S2S VPN
在下一节中,我们将讨论多站点 VPN。
多站点 VPN
多站点 VPN 是 S2S 连接的一种变体。您可以使用这种连接类型通过虚拟网络网关连接到多个本地站点。多站点连接要求使用基于路由的 VPN 类型网关。所有通过网关的连接将共享可用带宽,因为每个虚拟网络只能有一个 VPN 网关。
以下图示显示了从本地环境到 Azure 的多站点 VPN 连接:

多站点 VPN
在下一节中,我们将讨论点对站(P2S)VPN。
P2S VPN
P2S VPN 网关连接旨在通过互联网在客户端和虚拟网络之间建立安全连接。它是从客户端计算机建立的,适用于在不同位置工作的人,例如在家或酒店工作时。P2S VPN 也是如果您只有少数客户端需要连接到虚拟网络时的最佳解决方案。
P2S 连接不需要像 S2S VPN 连接那样拥有一个本地的、公开的 IP 地址。您可以将 P2S 连接与 S2S 连接一起使用,且都通过相同的 VPN 网关。您需要确保两种连接的配置要求是兼容的,以便能够在同一网关上使用这两种连接类型。
下图显示了从本地环境到 Azure 的 P2S VPN 连接:

P2S VPN
在接下来的部分中,我们将讨论ExpressRoute。
ExpressRoute
ExpressRoute 提供由连接提供商促成的私有连接。ExpressRoute 连接不会通过公共互联网传输,而是使用更可靠的连接。这些类型的连接提供比通过互联网传输的连接更低的延迟、更高的安全性和更快的速度。你可以使用它将本地网络扩展到 Azure 和 Office 365。连接可以通过任意对任意(IP VPN)网络、共置设施中的虚拟交叉连接或点对点以太网网络连接进行。
ExpressRoute 使用虚拟网络网关,并且配置了网关类型为ExpressRoute,而不是VPN。默认情况下,流量不会加密,但你可以创建一个解决方案来加密通过 ExpressRoute 电路传输的流量。
下图显示了从本地环境到 Azure 的 ExpressRoute 连接:

ExpressRoute
现在我们已经了解了可以配置的不同类型的 VPN 连接,接下来我们将创建并配置 Azure VPN 网关。
创建并配置 Azure VPN 网关
在接下来的部分中,我们将配置 Azure VPN 网关,配置 S2S VPN,并验证 Azure 与本地环境之间的连接性。
我们将使用启用了路由与远程访问服务(RRAS)的 Windows Server 2012,作为在本地环境中安装的兼容 VPN 设备。
创建并配置本地 VPN 设备
首先,我们将设置 Windows Server 2012,并在其上启用 RRAS 来设置 VPN。在本示范中,我已经在我的笔记本上创建了一台虚拟机,并在其上安装了 Windows Server 2012 R2。要启用 RRAS,请按照以下步骤操作:
确保网络适配器设置为桥接模式。Azure 中的 VPN 网关无法连接到 NAT 后面的 VPN。
- 转到服务器管理器|管理|添加角色和功能来启用 RRAS:

在 Windows Server 2012 上启用 RRAS
- 在添加角色和功能向导的第一个屏幕上点击下一步。在下一个屏幕中,选择基于角色或基于功能的安装,然后点击下一步。选择服务器并点击下一步。在服务器角色屏幕上,选择远程访问并点击下一步:

启用远程访问
- 在功能屏幕上,我们可以直接点击下一步。在远程访问屏幕上,点击下一步:

远程访问
- 在角色服务界面,选择DirectAccess 和 VPN (RAS)。会弹出一个窗口,提示您添加所需的功能。点击添加功能,然后点击下一步:

角色服务
- 在Web 服务器角色(IIS)界面,点击下一步。在 IIS 角色服务界面,保持所有默认设置不变,然后再次点击下一步。在最后的界面,验证设置并点击安装按钮:

确认
下一步是配置 VNet。
创建虚拟网络
现在,我们已经完成了本地 VPN 设备的配置,接下来将创建一个 VNet。因此,执行以下步骤:
-
通过打开
portal.azure.com/进入 Azure 门户。 -
在创建虚拟网络界面,添加以下值:
-
名称:
PacktVPNVNet。 -
地址空间:
172.17.0.0/16。 -
资源组:创建一个新的资源组,并将其命名为
PacktVPNResourceGroup。 -
位置:东部美国。
-
子网:前端。
-
地址范围:
172.17.0.0/24:
-

创建 VNet
-
点击创建以创建 VNet。
-
现在我们需要创建一个网关子网,该子网包含虚拟网络网关服务使用的保留 IP 地址。打开 VNet 资源,在设置下,点击子网,然后在顶部菜单中点击+网关子网:

添加网关子网
- 在“添加子网”界面,调整地址范围为
172.17.255.0/27:

调整地址范围
- 点击确定。
创建 Azure VPN 网关
接下来我们将配置 Azure VPN 网关。执行以下步骤:
-
通过打开
portal.azure.com/进入 Azure 门户。 -
在左侧菜单中,点击创建资源,并在搜索框中输入
虚拟网络网关。 -
在创建虚拟网络网关界面,添加以下值:
-
名称:
PacktVnetGateway。 -
网关类型:VPN。
-
VPN 类型:基于路由。
-
SKU:
VpnGw1。 -
位置:东部美国。
-
虚拟网络:点击虚拟网络/选择一个虚拟网络。选择
PacktVPNVNet。 -
公共 IP 地址:在这里,您设置与 VPN 网关关联的公共 IP 地址。Azure VPN 网关只支持动态分配的 IP 地址。
-
然而,一旦 IP 地址与 VPN 网关关联,它将不会改变。IP 地址只有在重新创建或删除 VPN 网关时才会更改。保持创建新建选中。将 IP 地址命名为PacktVNetGWIP:

网关设置
-
点击创建以创建 Azure VPN 网关。
-
我们在此演示中稍后需要使用 VPN 网关的公共 IP 地址,因此在创建完 Azure VPN 网关后,进入其概览页面并将公共 IP 地址复制到记事本:

获取公共 IP 地址
- 网关创建后,打开我们之前创建的 VNet 资源的概览页面。VPN 网关将显示在概览页面上:

VNet 中的 VPN 网关
Azure VPN 网关已经创建完毕,因此我们现在可以设置与本地环境的 S2S VPN 连接。
创建和配置 S2S VPN
要创建 S2S VPN,我们将 VPN 网关与之前创建并启用了 RRAS 的本地环境连接起来。它将作为一个兼容的 VPN 设备。
为了完成这一步,我们需要本地环境的公共 IP 地址。在本次演示中,我使用了 VMware,并将其设置为桥接模式。这样,您的提供商的公共 IP 地址就会被使用。您可以使用多个工具查看公共 IP 地址,例如www.whatsmyip.org/。
创建本地网络网关
首先,我们需要创建本地网络网关。这是指我们安装了 Windows Server 2012 R2 并启用了 RRAS 的本地位置。
要创建本地网络网关,请执行以下步骤:
-
通过打开
portal.azure.com/进入 Azure 门户。 -
在左侧菜单中,点击创建资源并在搜索框中输入
Local network gateway。从列表中选择Local network gateway并创建一个新的。 -
在创建本地网络网关页面中,添加以下值:
-
名称:
PacktOnPremisesGateway。 -
IP 地址:这里,您需要填写来自本地 VPN 设备的公共 IP 地址,Azure 需要连接到该设备。
-
地址空间:
82.173.0.0/16。这是本地网络的地址范围。你可以添加多个地址范围。 -
配置 BGP 设置:不要选择此项。
-
订阅:选择与之前示例中相同的订阅。
-
资源组:选择我们已经创建的资源组,也就是
PacktVPNResourceGroup。 -
位置:选择与 VNet 所在位置相同的位置,也就是东美国:
-

本地网络网关设置
- 点击创建。
配置本地 VPN 设备
如前所述,S2S 连接需要一个兼容的 VPN 设备。我们已经在第一步中配置了这个。现在我们需要配置它,以便连接到 Azure VPN 网关。
要配置 RRAS 以便它们能够连接到 Azure,我们需要以下资源:
-
共享密钥:我们将创建一个共享密钥,用于连接到本地设备。
-
Azure VPN 网关的公共 IP 地址:这是我们在之前步骤中复制到记事本中的公共 IP 地址。
要创建新连接,请执行以下步骤:
- 打开我们之前创建的本地网关,在“设置”下,选择“连接”。点击屏幕顶部的添加按钮:

连接
-
在添加连接面板中,添加以下值:
-
名称:
PacktVNetToSite。 -
连接类型:站点到站点(IPSec)。
-
虚拟网络网关:点击选择本地网络网关并选择
PacktVNetGateway。 -
本地网络网关:这是一个固定值。
-
共享密钥:该值必须与本地设备上的共享密钥相同。请填写
Packt123:
-

添加连接
-
点击确定以创建连接。
-
创建后,您可以从连接页面选择该连接。从那里,您可以下载配置包,用于配置本地 VPN 设备。点击顶部菜单中的下载配置:

正在下载配置包
-
由于我们使用的是 RRAS,它是 Windows Server 的一部分,因此我们需要选择以下值:
-
设备供应商:通用样本。
-
设备类别:设备参数。
-
固件版本:1.0:
-

正在下载配置
-
点击下载配置。
-
配置包包含一个文本文件,文件中包含所有必要的配置值。
切换到启用了 RRAS 的 Windows Server 2012 R2 的本地 VM,并在 Azure VPN 网关的 VPN 设备上执行以下步骤:
-
从 GitHub 下载脚本。该链接位于本章开头的技术要求部分。我们将使用此脚本来配置 RRAS。我们需要对脚本进行一些调整,以便添加 Azure VPN 网关和本地网络地址。您可以使用从下载的配置文件中获取的 IP 地址和子网地址作为输入。
-
脚本的第一部分提供了一些关于脚本的附加信息,并创建了
Invoke-WindowsApi函数:
# Windows Azure Virtual Network
# This configuration template applies to Microsoft RRAS running on Windows Server 2012 R2.
# It configures an IPSec VPN tunnel connecting your on-premise VPN device with the Azure gateway.
# !!! Please notice that we have the following restrictions in our support for RRAS:
# !!! 1\. Only IKEv2 is currently supported
# !!! 2\. Only route-based VPN configuration is supported.
# !!! 3\. Admin privileges are required in order to run this script
Function Invoke-WindowsApi(
[string] $dllName,
[Type] $returnType,
[string] $methodName,
[Type[]] $parameterTypes,
[Object[]] $parameters
)
- 在下一部分中,我们将构建动态程序集并定义该方法:
{
## Begin to build the dynamic assembly
$domain = [AppDomain]::CurrentDomain
$name = New-Object Reflection.AssemblyName 'PInvokeAssembly'
$assembly = $domain.DefineDynamicAssembly($name, 'Run')
$module = $assembly.DefineDynamicModule('PInvokeModule')
$type = $module.DefineType('PInvokeType', "Public,BeforeFieldInit")
$inputParameters = @()
for($counter = 1; $counter -le $parameterTypes.Length; $counter++)
{
$inputParameters += $parameters[$counter - 1]
}
$method = $type.DefineMethod($methodName, 'Public,HideBySig,Static,PinvokeImpl',$returnType, $parameterTypes)
- 接下来,我们需要应用
P/Invoke构造函数,从而创建临时类型并调用方法:
## Apply the P/Invoke constructor
$ctor = [Runtime.InteropServices.DllImportAttribute].GetConstructor([string])
$attr = New-Object Reflection.Emit.CustomAttributeBuilder $ctor, $dllName
$method.SetCustomAttribute($attr)
## Create the temporary type, and invoke the method.
$realType = $type.CreateType()
$ret = $realType.InvokeMember($methodName, 'Public,Static,InvokeMethod', $null, $null, $inputParameters)
return $ret
}
- 然后,我们将准备参数值并调用 API:
Function Set-PrivateProfileString(
$file,
$category,
$key,
$value)
{
## Prepare the parameter types and parameter values for the Invoke-WindowsApi script
$parameterTypes = [string], [string], [string], [string]
$parameters = [string] $category, [string] $key, [string] $value, [string] $file
## Invoke the API
[void] (Invoke-WindowsApi "kernel32.dll" ([UInt32]) "WritePrivateProfileString" $parameterTypes $parameters)
}
- 现在我们将安装服务器上的 RRAS 角色:
# Install RRAS role
Import-Module ServerManager
Install-WindowsFeature RemoteAccess -IncludeManagementTools
Add-WindowsFeature -name Routing -IncludeManagementTools
# !!! NOTE: A reboot of the machine might be required here after which the script can be executed again.
- 如我们所见,S2S VPN 从这里安装:
# Install S2S VPN
Import-Module RemoteAccess
if ((Get-RemoteAccess).VpnS2SStatus -ne "Installed")
{
Install-RemoteAccess -VpnType VpnS2S
}
- 接下来,我们需要添加并配置它:
# Add and configure S2S VPN interface
Add-VpnS2SInterface `
-Protocol IKEv2 `
-AuthenticationMethod PSKOnly `
-NumberOfTries 3 `
-ResponderAuthenticationMethod PSKOnly `
-Name <IP address of your Azure gateway> `
-Destination <IP address of your Azure gateway> `
-IPv4Subnet @("<IP range of your subnet in Azure>:100") `
-SharedSecret <shared key>
Set-VpnServerIPsecConfiguration `
-EncryptionType MaximumEncryption
Set-VpnS2Sinterface `
-Name <IP address of your Azure gateway> `
-InitiateConfigPayload $false `
-Force
- 在脚本的最后部分,我们将设置连接为持久连接,重新启动 RRAS 服务器,并拨号连接到 Azure 网关:
# Set S2S VPN connection to be persistent by editing the router.pbk file (required admin privileges)
Set-PrivateProfileString $env:windir\System32\RRAS\router.pbk "<IP address of your Azure gateway>" "IdleDisconnectSeconds" "0"
Set-PrivateProfileString $env:windir\System32\RRAS\router.pbk "<IP address of your Azure gateway>" "RedialOnLinkFailure" "1"
# Restart the RRAS service
Restart-Service RemoteAccess
# Dial-in to Azure gateway
Connect-VpnS2SInterface `
-Name <IP address of your Azure gateway>
本脚本还将启用服务器上的 RRAS。我们在前面的一节中手动进行了此操作,因此跳过了这部分。
我们已完成本地 VPN 设备的配置。在下一节中,我们将验证本地连接。
验证本地连接
有两种不同的方法可以验证本地连接。你可以使用本地的 RRAS 控制台,或者在 Azure 门户中执行此操作。
要使用 RRAS 控制台验证连接,打开 Windows 搜索并输入远程访问管理。然后,打开以下截图中显示的节点。如你所见,RRAS 已与 Azure VPN 网关连接:

在 RRAS 控制台中验证连接
要通过 Azure 门户验证连接,请执行以下步骤:
-
打开
portal.azure.com/并进入 Azure 门户。 -
打开
PAcktVnetGateway资源,在设置下选择连接:

在 Azure 门户中验证连接
当你选择连接时,你将能够看到PacktVNetToSite连接已经连接,如上图所示。
VNet 到 VNet
配置 VNet 到 VNet 的连接是连接 VNets 的简单方法。将虚拟网络连接到另一个虚拟网络类似于创建 S2S IPSec 连接到本地环境。两种连接类型都使用 Azure VPN 网关。VPN 网关提供了一个安全的隧道 IPsec/IKE,它们以相同的方式进行通信。区别在于本地网络网关的配置方式。
当你创建 VNet 到 VNet 的连接时,本地网络网关地址空间会自动创建并填充。如果你更新其中一个 VNet 的地址空间,另一个 VNet 会自动路由到更新后的地址空间。这使得创建 VNet 到 VNet 的连接比 S2S 连接更快、更简便。
若要从 Azure 门户创建 VNet 到 VNet 的连接,请参考以下教程:docs.microsoft.com/en-us/azure/vpn-gateway/vpn-gateway-howto-vnet-vnet-resource-manager-portal。
摘要
在本章中,我们介绍了部署和管理虚拟网络目标的第二部分,涉及如何创建和配置 Azure VPN 网关,如何创建和配置 S2S VPN,以及如何验证本地与 Azure 的连接。
在下一章中,我们将继续部署和管理虚拟网络目标的第三部分,介绍如何监控和管理网络。
问题
回答以下问题,以测试你对本章内容的理解。你可以在本书末尾的评估部分找到答案:
-
ExpressRoute 流量默认是加密的:
-
是
-
否
-
-
你的组织要求员工从办公室以外的地点连接。你需要为此设置一个 P2S VPN 连接吗?
-
是
-
否
-
-
当你为站点对站点(S2S)连接设置本地 VPN 设备时,服务器不能位于 NAT 后面:
-
是
-
否
-
深入阅读
你可以查看以下链接,了解本章涉及的主题的更多信息:
-
Azure VPN 网关文档:
docs.microsoft.com/en-us/azure/vpn-gateway/ -
关于点对站点 VPN:
docs.microsoft.com/en-us/azure/vpn-gateway/P2S-about -
在 Azure 门户中创建站点对站点连接:
docs.microsoft.com/en-us/azure/vpn-gateway/vpn-gateway-howto-S2S-resource-manager-portal -
使用 PowerShell 创建带有站点对站点 VPN 连接的虚拟网络:
docs.microsoft.com/en-us/azure/vpn-gateway/vpn-gateway-create-S2S-rm-powershell -
使用 CLI 创建带有站点对站点 VPN 连接的虚拟网络:
docs.microsoft.com/en-us/azure/vpn-gateway/vpn-gateway-howto-S2S-resource-manager-cli -
ExpressRoute 概述:
docs.microsoft.com/en-us/azure/expressroute/expressroute-introduction -
创建和修改 ExpressRoute 电路:
docs.microsoft.com/en-us/azure/expressroute/expressroute-howto-circuit-portal-resource-manager -
通过 Azure 门户配置虚拟网络到虚拟网络的 VPN 网关连接:
docs.microsoft.com/en-us/azure/vpn-gateway/vpn-gateway-howto-vnet-vnet-resource-manager-portal
第十一章:监控和排除虚拟网络问题
在上一章中,我们讨论了部署和管理虚拟网络目标的第二部分。我们讨论了如何将本地网络与 Azure 虚拟网络集成。
本章覆盖了部署和管理虚拟网络目标的第三部分,涵盖了如何监视和排除虚拟网络的内容。在本章中,我们将重点介绍如何使用Network Watcher监视您的虚拟网络。您将学习如何管理虚拟网络连接以及如何监视和排除本地连接,以及如何使用 Network Watcher。我们将在本章结束时介绍如何管理外部网络。
本章将讨论以下主题:
-
Network Watcher
-
网络资源监控
-
管理虚拟网络连接
-
监控和故障排除本地连接
-
管理外部网络
Network Watcher
Azure Network Watcher 是一个网络监控解决方案,提供诊断、监视和查看 Azure 虚拟网络中资源的指标和日志,包括应用程序网关流量、负载均衡器、ExpressRoute 回路等。
Azure Network Watcher 提供以下功能:
-
监控:连接监视器是一种云基础的混合网络监视解决方案,可以监视虚拟机和终端点之间的通信。终端点可以是另一个虚拟机(VM)、一个 URL、一个 IPv4 地址或者一个完全限定域名(FQDN)。网络通信会定期监控,收集虚拟机与终端点之间的延迟、网络拓扑变化以及可达性的信息。如果一个终端点变得不可访问,Network Watcher 将会通知用户出现错误。导致此问题的原因可能是虚拟机的内存或 CPU 问题、虚拟机的安全规则或自定义路由的跳数类型。还会监控延迟问题。连接监视器将提供随时间观察到的平均、最小和最大延迟。该监视解决方案能够监视网络基础设施中各个点之间的网络性能,并能生成警报和通知。
-
诊断:您可以诊断虚拟机的网络流量过滤。例如,由于安全规则,虚拟机可能无法与其他资源通信。
IP 流可以验证和测试通信,并告知您连接是成功还是失败。IP 流可以告诉您哪个安全规则允许或拒绝了连接和通信。Network Watcher 还可以诊断从虚拟机出现的网络路由问题。创建虚拟网络时,会为该虚拟网络创建几个默认的出站路由。所有部署在虚拟网络中的资源的出站流量都基于 Azure 的默认路由进行路由。
在需要覆盖默认路由规则或创建额外规则的情况下,next hop可以用于测试不同路由之间的通信。当通信失败时,你可以更改、添加或删除路由来解决问题。
使用 Azure Network Watcher,你可以诊断虚拟机的出站连接。你还可以诊断 Azure 虚拟网络网关和连接的问题,捕获虚拟机的进出数据包,查看网络接口的安全规则,并确定 Azure 区域和互联网服务提供商之间的相对延迟:
-
指标:网络订阅限制功能可以提供已在订阅或区域中部署的网络资源的摘要。如果达到了最大网络资源数量的限制,将提供一个摘要。
-
日志:网络安全组(NSGs)负责允许或拒绝虚拟机网络接口的入站和出站流量。NSG 流量日志功能可以记录端口、协议、流量是否被允许或拒绝,并记录源和 IP 地址。这些日志可以使用多种工具进行分析,例如流量分析功能和 Power BI。流量分析可以提供对写入 NSG 流量日志的数据的丰富可视化。
-
自动启用:当创建或更新新的虚拟网络时,Network Watcher 会自动启用。在订阅中启用 Network Watcher 没有额外费用。
在接下来的部分中,我们将看到 Network Watcher 的实际应用。
网络资源监控
在本演示中,我们将监控虚拟机上的网络。为了演示,我们将在同一虚拟网络内创建三个 Windows Server 2016 数据中心虚拟机。我们可以使用这些虚拟机进行监控。
在我们能够通过网络资源监控来监控网络之前,我们需要在三个虚拟机上安装 Network Watcher 代理。安装后,我们将检查网络流量。
安装 Network Watcher 代理
要在 Azure 中的虚拟机上安装 Network Watcher 代理,按照以下步骤操作:
-
通过打开
portal.azure.com/访问 Azure 门户。 -
打开虚拟机设置,在设置下选择扩展,然后点击添加按钮:

添加虚拟机扩展
- 将Network Watcher Agent for Windows扩展添加到虚拟机(扩展也可以在创建虚拟机时安装),然后点击创建:

添加 Network Watcher Agent for Windows 扩展
- 对其他两个虚拟机重复这些步骤,并在其上安装代理。
现在,Network Watcher Agent for Windows已安装在所有虚拟机上,我们可以在特定区域启用它。
启用 Network Watcher
要在特定区域启用 Network Watcher,按照以下步骤操作:
-
通过打开
portal.azure.com/来导航到 Azure 门户。 -
选择所有服务,然后在顶部菜单中输入
network watcher:

打开 Network Watcher
- 在Network Watcher概览页面中,选择虚拟机创建所在的订阅和区域。在我的例子中,这个区域是美国东部。然后点击三个点并为该区域启用 Network Watcher,如下所示:

启用 Network Watcher
现在,Network Watcher 已启用,我们可以实际开始监控网络资源。
监视网络连接性
网络监视可以用来监控连接可达性、延迟以及网络拓扑变化。为此,您需要设置一个连接监视器实例。请按照以下步骤进行设置:
- 在 Network Watcher 资源仍然打开的情况下,在监视下,选择连接监视器:

连接监视器
-
我们将使用监视器资源来测试
VM1和VM2之间的连接性。因此,添加以下值:-
名称:
VM1-VM2-Test。 -
订阅:选择虚拟机部署所在的订阅。
-
源虚拟机:
VM1。 -
目标虚拟机:
VM2。 -
端口:
22:
-

连接监视器设置
- 点击添加。
现在我们可以监视网络连接性了。在接下来的部分中,我们将了解如何管理连接性。
管理虚拟网络连接性
您可以通过 Azure 门户管理虚拟网络连接性。在接下来的部分中,我们将了解 Azure 门户提供的管理虚拟网络连接性的各种功能。
网络拓扑
Azure 门户中的网络拓扑部分显示了 Azure 订阅和资源组内虚拟网络的概览。要进入网络拓扑部分,您需要执行以下步骤:
-
通过打开
portal.azure.com/来导航到 Azure 门户。 -
选择所有服务,然后在顶部菜单中再次输入
network watcher。 -
在监视下,选择拓扑。在此,您需要选择订阅、资源组,并在相关时选择虚拟网络,如下图所示:

网络拓扑
-
现在,您可以通过点击拓扑中的各个项目,深入查看网络的所有组件,如虚拟网络(VNet)、网络接口卡(NIC)、虚拟机(VM)、IP 地址等。这将带您进入不同资源的设置页面。
-
您还可以通过点击顶部菜单中的下载拓扑按钮来下载拓扑,如下所示:

下载网络拓扑
除了监控 Azure 中的网络外,您还可以监控本地网络连接。我们将在下一部分中查看这一点。
监控和故障排除本地连接性
您也可以使用网络观察器监控本地连接性。它提供了两种不同的功能,网络性能监控器和VPN 故障排除,这些功能与其他功能一样,都可以从 Azure 门户访问。
网络性能监控器
网络性能监控器是一个混合网络监控解决方案。它可以监控本地和云网络的连接性,以及网络基础设施中各个点之间的连接。它能够检测路由错误和黑洞等问题。监控解决方案存储在 Azure 日志分析中。
网络性能监控器可以在出现网络性能错误时创建警报和通知,并能够将问题的源定位到特定的网络设备或段。
它提供以下功能:
-
性能监控器:性能监控器可以监控跨云部署和本地位置的网络连接。它还可以监控多个数据中心、分支办公室、多层应用程序和微服务之间的连接。
-
服务连接监控器:您可以识别网络基础设施中的网络瓶颈,并检测网络中问题的确切位置。您还可以监控用户与服务之间的连接。
-
ExpressRoute 监控:您可以监控本地位置与 Azure 之间的 ExpressRoute 连接。
下一跳
您可以使用下一跳功能来指定源和目标 IPv4 地址。然后测试这些地址之间的通信,并告知您使用了哪种下一跳来路由流量。当遇到路由错误或问题时,您可以添加、修改或删除路由来解决问题。
要查看此功能,请执行以下步骤:
-
通过打开
portal.azure.com/导航到 Azure 门户。 -
选择所有服务,在顶部菜单中输入
network watcher。 -
在网络诊断工具下,选择下一跳。
-
在设置窗格中,添加以下值:
-
资源组:
PacktNetworkWatcher。 -
虚拟机:
VM2。 -
网络接口:这会自动选择。
-
源 IP 地址:这也会自动选择。
-
目标 IP 地址:
13.107.21.200(再次是 Bing 服务器)。
-
-
选择下一跳。
-
您将看到以下结果。在这种情况下,没有下一跳,因为连接直接访问互联网:

下一跳到互联网
- 如果您将目标 IP 地址更改为其他虚拟机的 IP 地址,比如
172.18.0.6,您将看到以下结果:

下一跳到另一台虚拟机
在下一部分,我们将介绍如何排查 VPN 连接问题。
VPN 故障排除
在 VPN 故障排除演示中,我们将使用前一章节中创建的 VPN 连接。
您可以通过以下步骤诊断 VPN 连接:
-
从Network Watcher面板中,选择VPN 故障排除。
-
在Network Watcher - VPN 故障排除面板中,您可以通过选择订阅、资源组、位置以及以下复选框来诊断网关。您还需要选择或创建一个存储帐户来存储诊断信息。选择复选框后,您可以通过点击顶部菜单中的开始故障排除来启动故障排除过程,如下图所示:

VPN 故障排除
- 这将启动故障排除过程,在我的情况下,VPN 连接似乎不健康。您可以点击操作标签查看建议:

不健康的 VPN 连接
您还可以使用 Azure Network Watcher 管理外部网络。我们将在接下来的部分中介绍这一点。
管理外部网络
Azure Network Watcher 提供三种功能来监控和故障排除外部网络。它们的功能包括IP 流验证、有效安全规则和连接故障排除,这些将在接下来的章节中介绍。
IP 流验证
使用IP 流验证,您可以检测是否允许或拒绝来自虚拟机网络接口的包。信息中包括协议、本地和远程 IP 地址、方向以及本地和远程端口。当一个包被拒绝时,返回拒绝包的路由规则名称。您可以利用这一点诊断从本地环境或外部网络到互联网的连接问题。您基本可以选择任何源或 IP 地址来验证连接。
要运行 IP 流验证,您需要在计划运行该工具的区域启用一个 Network Watcher 实例。这类似于本章前面启用 Network Watcher部分中的演示,我们在特定区域启用了 Network Watcher。
使用 IP 流验证
在本演示中,我们将使用 IP 流验证来测试在第一次演示中创建的两台虚拟机之间的连接。要使用 IP 流验证,请按照以下步骤操作:
-
在 Network Watcher 资源面板内,选择网络诊断工具下的IP 流验证。
-
在设置页面中,添加以下设置:
-
资源组:
PacktNetworkWatcher。 -
虚拟机:
VM1。 -
网络接口:选择虚拟机后将自动填写。
-
协议:TCP。
-
方向:出站。
-
本地 IP 地址:此项也会自动填写。
-
本地端口:
60000。 -
远程 IP 地址:
13.107.21.200(必应的地址)。 -
远程端口:
80。
-
-
点击 检查 按钮:

IP 流量验证
- 请求执行后,它返回的结果将是允许访问,因为
AllowInternetOutBound安全规则,如下图所示:

IP 流量验证访问允许
- 重复前面的步骤,但将 远程 IP 地址 改为
172.31.0.100。这将导致访问被拒绝,因为DefaultOutboundDenyAll安全规则:

IP 流量验证访问被拒绝
-
最后,再次重复该步骤,这次做出以下更改:
-
方向:入站
-
本地端口:
80 -
远程端口:
60000
-
-
这将导致以下结果:

访问被拒绝
我们已经查看了如何使用 IP 流量验证来测试两个虚拟机之间的连接。在接下来的部分,我们将讨论有效的安全规则。
有效的安全规则
有效的安全规则 功能显示所有应用于网络接口及其所在子网的安全规则,并将两者合并。这样,你就能全面了解应用于网络接口的所有规则,并且可以修改、添加或删除规则。
你需要选择正确的订阅、资源组和虚拟机,以便查看应用的安全规则,具体请参考下图:

有效的安全规则
我们现在已经看到应用于网络接口的安全规则概览。在下一部分,我们将讨论连接故障排除。
连接故障排除
Azure 网络观察器连接故障排除使你能够排查 Azure 中的网络性能和连接问题。它提供从源到目标的逐跳路径的可视化,帮助识别可能影响网络性能和连接性的潜在问题。
Azure 网络观察器连接故障排除提供了以下功能和洞察:
-
从源到目标的图形化拓扑视图。
-
它检查源(虚拟机)和目标(虚拟机、URI、FQDN、IP)地址之间的连接性。
-
它提供逐跳延迟。
-
它能够识别影响可达性的配置问题。
-
它提供从源到目标的所有可能逐跳路径。
-
它检查源和目标之间的延迟,例如最小、最大和平均延迟。
-
在连接故障排除检查期间丢弃的包的数量。
连接故障排除要求源虚拟机安装AzureNetworkWatcherExtension虚拟机扩展。对于 Windows 虚拟机的扩展安装,你可以参考docs.microsoft.com/en-us/azure/virtual-machines/extensions/network-watcher-windows?toc=%2Fazure%2Fnetwork-watcher%2Ftoc.json,对于 Linux 虚拟机,你可以参考docs.microsoft.com/en-us/azure/virtual-machines/extensions/network-watcher-linux?toc=%2Fazure%2Fnetwork-watcher%2Ftoc.json。
要使用连接故障排除检查网络连接,你需要采取以下步骤:
-
在 Azure 门户中的网络观察器概览页面,选择网络诊断工具下的连接故障排除。
-
选择一个虚拟机并提供一个出站连接,如下所示:

选择源和目标
-
点击检查。
-
当你点击检查按钮时,代理将自动安装到源机器上。
-
检查后,结果将显示:

无法访问的端点
我们现在已经使用连接故障排除检查了一个虚拟机的出站连接。
总结
本章中,我们覆盖了部署和管理虚拟网络目标的第三部分,介绍了如何在 Azure 网络观察器中监控和故障排除网络流量。我们还涵盖了如何使用网络观察器监控和故障排除本地和外部网络连接。
在下一章中,我们将继续目标的第四部分,涵盖如何创建和配置 Azure 安全组和 Azure DNS。
问题
请回答以下问题,测试你对本章内容的理解。你可以在本书最后的评估部分找到答案:
-
Azure 网络观察器仅用于监控和诊断 Azure 中的网络连接:
-
正确
-
错误
-
-
你能使用 IP 流量验证来验证 Azure 中 VNet 的出站连接吗?
-
是的
-
否
-
-
你能使用 IP 流量验证来验证 VNet 内两个不同虚拟机之间的连接吗?
-
是的
-
否
-
进一步阅读
你可以查看以下链接,获取更多关于本章内容的信息:
-
什么是 Azure 网络观察器?:
docs.microsoft.com/en-us/azure/network-watcher/network-watcher-monitoring-overview -
快速入门:使用 Azure 门户诊断虚拟机网络流量过滤问题:
docs.microsoft.com/en-us/azure/network-watcher/diagnose-vm-network-traffic-filtering-problem -
Azure 网络性能监视器解决方案:
docs.microsoft.com/en-us/azure/azure-monitor/insights/network-performance-monitor?toc=%2Fazure%2Fnetwork-watcher%2Ftoc.json -
Azure 网络观察器中的 IP 流验证简介:
docs.microsoft.com/en-us/azure/network-watcher/network-watcher-ip-flow-verify-overview -
教程:使用 Azure 门户诊断网络之间的通信问题:
docs.microsoft.com/en-us/azure/network-watcher/diagnose-communication-problem-between-networks
第十二章:Azure 安全组和 Azure DNS
在上一章中,我们介绍了部署和管理虚拟网络目标的第三部分,涵盖了如何在 Azure 网络监视器中监控和排除网络流量故障。我们已经介绍了如何使用 Azure 网络监视器来监控 Azure 内部的网络流量,以及如何监控本地和外部网络的流量。
在本章中,我们将首先聚焦于 Azure 中的网络安全组(NSG)。我们将介绍 NSG 的基础知识,如何使用它们来过滤网络流量,并且你将学习如何创建和配置它们。我们还将把 NSG 与子网或网络接口(NIC)关联,并创建和评估 NSG 的安全规则。在本章的第二部分,我们将介绍 Azure DNS。你将学习如何设置 Azure DNS,以及如何添加 DNS 区域和 DNS 记录。
本章将涵盖以下主题:
-
NSG
-
创建和配置 NSG
-
将 NSG 与子网或 NIC 关联
-
创建和评估安全规则
-
Azure DNS
-
配置私有和公共 DNS 区域
技术要求
我们示例应用程序的源代码可以从以下链接下载:github.com/PacktPublishing/Microsoft-Azure-Administrator-Exam-Guide-AZ-103/tree/master/Chapter12[.] (https://github.com/PacktPublishing/Microsoft-Azure-Administrator-Exam-Guide-AZ-103/tree/master/Chapter12)
NSG
你可以使用 NSG 来过滤进出 Azure 资源的网络流量,这些资源驻留在 Azure 虚拟网络中。NSG 是 Azure 内部的访问控制列表,你可以在其中添加允许或拒绝来自多种资源类型的入站和出站安全规则。
当 VMS、VNets 或其他云服务之间建立连接时,会检查此列表,以确定是否允许或拒绝该连接。NSG 可以应用于一个或多个子网或单个 NIC。这意味着与该子网或 NIC 关联的所有资源将自动应用所有规则。NSG 规则按优先顺序处理,使用五元组信息(源、源端口、目标、目标端口和协议)来允许或拒绝流量。它们按优先级评估,较低的数字优先于较高的数字,可以应用于入站或出站流量。
每个 Azure 区域和订阅对每个 NSG 可以创建的规则数量有限制。有关详细信息,请参阅 Azure 限制文档:docs.microsoft.com/en-us/azure/azure-subscription-service-limits?toc=%2fazure%2fvirtual-network%2ftoc.json#azure-resource-manager-virtual-networking-limits。
服务标签
为了帮助减少安全规则创建的复杂性,Azure 提供了服务标签。它们表示一组 IP 地址前缀,您可以在创建安全规则时使用服务标签来代替特定的 IP 地址。这些服务标签不能手动创建;它们由 Azure 创建和管理。
Azure 提供了一个详尽的服务标签列表,例如以下内容:
-
VirtualNetwork:此标签包括虚拟网络地址空间、所有连接的本地地址空间、对等虚拟网络以及所有连接到虚拟网络网关的虚拟网络。
-
AzureLoadBalancer:此标签涵盖 Azure 负载均衡器。它对应于源自健康探测器的主机的虚拟 IP 地址。
-
Internet:此标签用于表示虚拟网络之外且可以从公共互联网访问的 IP 地址空间。
-
AzureKeyVault:此标签用于表示 Azure Key Vault 服务的地址前缀。如果将
AzureKeyVault作为值进行指定,流量将被允许或拒绝访问 Azure Key Vault。您还可以仅在特定区域访问 Azure Key Vault。
要全面了解 Azure 提供的所有服务标签,您可以参考文档:docs.microsoft.com/en-us/azure/virtual-network/security-overview。
在接下来的演示中,我们将在 Azure 门户中创建并配置一个 NSG。
创建和配置一个 NSG
NSG 可以通过 Azure 门户、PowerShell 和 CLI 创建。在本次演示中,我们将从 Azure 门户创建一个 NSG 并进行配置。我们将把 NSG 与子网关联,并创建和评估安全规则。
要从 Azure 门户创建一个 NSG,请执行以下步骤:
-
通过打开
portal.azure.com来导航到 Azure 门户。 -
在左侧菜单中点击 创建资源,并在搜索框中输入
Network Security Group。 -
创建一个新的 NSG。
-
添加以下设置:
-
名称:
PacktNSG。 -
订阅:选择我们在第九章中用于创建 VNet 的订阅,实施和管理虚拟网络。
-
资源组:选择我们在第九章中用于创建 VNet 的订阅,实施和管理虚拟网络。 在我的案例中,这是
PacktVNetResourceGroup。 -
位置:(美国) 东部地区:
-

创建一个新的 NSG
- 点击创建。
我们现在已经创建了一个新的 NSG,并将其添加到 PacktVNetResourceGroup 中。这个资源组与虚拟网络所在的资源组相同。在演示的下一部分,我们将把 NSG 与子网和 NIC 关联。
将 NSG 与子网或 NIC 关联
要将 NSG 与子网关联,您需要执行以下步骤:
-
创建 NSG 后,进入其概述页面。
-
在 设置 下,选择 子网 以将 NSG 与子网关联。在顶部菜单中点击 关联:

将 NSG 与子网关联
- 首先,我们需要选择一个虚拟网络。选择
PacktVNet:

选择虚拟网络
- 接下来,我们需要选择 子网:

选择子网
-
点击 确定。现在,NSG 将与子网关联。
-
要将 NSG 与 NIC 关联,在 设置 下选择 网络接口。在顶部菜单中选择 关联:

将 NSG 与 NIC 关联
- 在这里,您可以选择一个与 NSG 所在地区相同的 NIC:

选择 NIC
- 选择 NIC 后,NSG 会与其关联。
在这个演示中,我们已经介绍了如何将 NSG 与子网和 NIC 关联。在下一个演示中,我们将介绍如何创建和评估安全规则。
创建并评估安全规则
创建 NSG 时,会自动为您创建一些默认的入站和出站安全规则。这些默认规则的优先级较低。您也可以向其添加自定义规则。您可以创建入站和出站安全规则。在这个演示中,我们将创建一个拒绝 RDP 流量到关联子网的入站安全规则。因此,您需要执行以下步骤:
- 首先,进入 NSG 的概述页面。在这里,您可以看到默认的入站和出站安全规则:

默认安全规则
- 然后,在 设置 下,选择 入站安全规则 以添加自定义规则。接着点击顶部菜单中的 添加:

- 我们将拒绝所有通过端口
3389(即 RDP 端口)的流量。因此,我们选择 源的服务标签 字段,并选择 源的互联网 服务标签,将目标设置为虚拟网络,并将目标端口范围设置为3389,适用于任何协议。操作将设置为 拒绝。我们将优先级设置为 100,这是最高优先级:

创建安全规则
-
点击 添加。
-
我们现在已经创建了一个拒绝所有 RDP 流量的入站安全规则。这个规则被绑定到子网,因为我们将这个 NSG 与一个子网关联了。
-
为了评估这个安全规则,在此资源组、虚拟网络和子网内部署一个虚拟机(VM)。同时,启用 RDP 服务。部署后,尝试连接到该虚拟机。如果安全规则应用正确,您应该收到以下错误信息:

错误信息
本节结束后,我们将讨论 Azure DNS。
Azure DNS
Azure DNS 是一个托管 DNS 域名的服务,可用于名称解析。名称解析的过程涉及将主机名(例如 www.packt.com)转换为 IP 地址(例如 192.168.1.1)。DNS 服务器消除了人类记住复杂 IP 地址的需求。在 Azure 中,您可以使用 Microsoft Azure 基础设施和与其他 Azure 资源相同的工具和计费来管理您的 DNS 记录。
Azure DNS 不能作为域名注册商使用,然而,您可以将域名托管在 Azure DNS 中进行记录管理,前提是该域名已经在其他地方注册(例如,第三方域名注册商)。然后,您必须将该域名委托给 Azure DNS,以便 DNS 查询能够到达 Azure DNS。
域名
DNS 由不同域名的层级结构组成。这些域名在全球的 DNS 服务器上分布。根域名简单地命名为 .。根域名下是顶级域名,如 .com、.net、.org 等。再往下是二级域名,如 .org.uk。
您可以从域名注册商购买域名。这将授予您控制该域名下 DNS 层级的权利,允许您执行诸如将域名重定向到自己的网站等操作。您可以让注册商在其名称服务器上托管该域名,或者您可以为您的域名指定其他名称服务器。Azure DNS 可以作为这种替代名称服务器,您可以在其中控制 DNS 层级。
公共 DNS 区域
要在 Azure DNS 中托管您的域名,您首先需要为您的域名创建一个 DNS 区域。该区域用于托管所有不同的 DNS 记录。例如,www.packt.com 域名可以包含多个 DNS 记录,如 mail.packt.com 用于邮件服务器,www.packt.com 用于公司网站。
当您在 Azure DNS 中创建 DNS 区域时,需要记住以下几点:
-
区域名称在资源组内必须唯一。该区域也不能已存在于该资源组中。
-
您可以在不同的资源组或不同的订阅中重用相同的区域。
-
当您在不同的资源组或订阅中有多个相同名称的区域时,每个实例必须包含不同的名称服务器地址。只能使用一组地址与域名注册商进行配置。
私有 DNS 区域
使用 私有 DNS 区域,您可以在虚拟网络中管理和解析域名,而无需添加自定义 DNS 解决方案。您可以使用自定义的 DNS 名称,而不是使用 Azure 提供的名称。您可以使用这些自定义域名来定制您的虚拟网络架构,以适应您组织的需求。
私有 DNS 区域为 VNet 内的虚拟机及不同 VNet 之间提供名称解析。你还可以配置共享私有和公共 DNS 区域的区域名称,以共享相同的名称。
要将私有 DNS 区域发布到 VNet,首先需要指定允许解析私有 DNS 区域内记录的虚拟网络列表。这些虚拟网络被称为解析虚拟网络。你还可以指定一个注册虚拟网络,然后 Azure DNS 将使用它在创建虚拟机时维护主机名记录。它也用于虚拟机的 IP 地址变化以及虚拟机删除时。
本书撰写时,Azure DNS 私有区域功能处于公开预览阶段。
记录类型
你在 DNS 区域内创建的每个 DNS 记录都有一个名称和类型。不同的记录根据它们包含的数据类型组织成不同的类型。例如,A 记录将域名映射到 IPv4 地址。另一个例子是 MX 记录,它将一个名称映射到邮件服务器。
有关不同记录类型的更多信息,请访问docs.microsoft.com/en-in/azure/dns/dns-zones-records。SPF 记录在 Azure DNS 中通过 TXT 记录表示:docs.microsoft.com/en-in/azure/dns/dns-zones-records#spf-records。
你还可以在 Azure DNS 中创建记录集。这些记录集可以用于将同一名称和相同类型的不同记录在一个区域中组合在一起——例如,当你的公司网站托管在两个不同的 IP 地址上时:
www.packt.com. 3600 IN A 134.170.185.46
www.packt.com. 3600 IN A 134.170.188.221
当你在packt.com区域创建了指向第一个 IP 地址的 A 记录后,你可以将第二个记录添加到现有的记录集,而不是创建一个新的额外记录集。
在接下来的章节中,我们将配置 Azure DNS 中的私有和公共 DNS 区域。
配置公共 DNS 区域
要从 Azure 门户配置私有和公共 DNS 区域,您需要执行以下步骤:
-
通过打开
portal.azure.com访问 Azure 门户。 -
在左侧菜单中点击创建资源,并在搜索栏中输入
DNS 区域。创建一个新的 DNS 区域。 -
添加以下值以创建一个新的 DNS 区域:
-
订阅:选择一个订阅。
-
资源组:创建一个新的资源组,并命名为
PacktDNSResourceGroup。 -
名称:
packtdns.com。 -
资源组位置:(美国)美国东部:
-

创建新的 DNS 区域
-
点击查看 + 创建。
-
当资源部署完成后,你可以向其添加 DNS 记录。在概览页面的顶部菜单中,选择+ 记录集:

[添加新记录]
-
要创建 A 记录,添加以下值:
-
名称:
www。 -
类型:选择A。
-
TTL:类型为
1。DNS 请求的生存时间(TTL)参数指定 DNS 服务器和客户端可以缓存响应的时间。 -
TTL 单位:选择小时。这是TTL值的时间单位。
-
IP 地址:
10.10.10.10:
-

添加新记录
-
点击确定。
-
添加记录后,我们可以使用
nslookup命令进行测试。首先,我们需要复制其中一个名称服务器:

复制名称服务器值
- 然后,打开命令提示符并输入以下命令:
nslookup www.packtdns.com ns1-08.azure-dns.com.
- 您将看到类似以下的内容,这意味着名称解析工作正常:

DNS 名称解析
在这个演示中,我们配置了一个公共 DNS 区域。在下一个演示中,我们将介绍如何使用 CLI 和 Azure Cloud Shell 配置一个私有 DNS 区域。
配置私有 DNS 区域
在这个演示中,我们将要在一个新的资源组中创建一个私有 DNS 区域。
要使用 Azure Cloud Shell 中的 CLI 配置私有 DNS 区域,您需要执行以下步骤:
-
通过打开
portal.azure.com访问 Azure 门户。 -
在右上角的菜单中,选择 Azure Cloud Shell 图标。确保选择了Bash。
-
首先,我们需要创建一个新的资源组。为此,请添加以下命令:
az group create --name PacktPrivateDNSResourceGroup --location "East US"
- 然后,我们将创建一个新的虚拟网络(VNet):
az network vnet create \
--name PacktPrivateDNSVNet \
--resource-group PacktPrivateDNSResourceGroup \
--location eastus \
--address-prefix 10.2.0.0/16 \
--subnet-name backendSubnet \
--subnet-prefixes 10.2.0.0/24
- 接下来,我们需要创建私有 DNS 区域:
az network dns zone create -g PacktPrivateDNSResourceGroup \
-n private.packtdns.com \
--zone-type Private \
--registration-vnets PacktPrivateDNSVNet
- 现在,创建两个虚拟机来测试私有 DNS 区域。运行此命令时,您需要提供一个管理员密码:
az vm create \
-n packtVM01 \
--admin-username test-user \
-g PacktPrivateDNSResourceGroup \
-l eastus \
--subnet backendSubnet \
--vnet-name PacktPrivateDNSVNet \
--image win2016datacenter
az vm create \
-n packtVM02 \
--admin-username test-user \
-g PacktPrivateDNSResourceGroup \
-l eastus \
--subnet backendSubnet \
--vnet-name PacktPrivateDNSVNet \
--image win2016datacenter
- 我们将在
private.packtdns.comDNS 区域中创建一个附加的 DNS。我们将在private.packt.comDNS 区域中创建一个相对名称为db的记录。该记录集的完全限定名称是db.private.packtdns.com。记录类型为 A,IP 地址为10.2.0.4:
az network dns record-set a add-record \
-g PacktPrivateDNSResourceGroup \
-z private.packtdns.com \
-n db \
-a 10.2.0.4
- 现在,我们可以测试私有区域的名称解析。我们将测试这两个虚拟机,因此需要为这两个虚拟机配置防火墙,以允许传入的 ICMP 数据包。使用 RDP 连接到这两个虚拟机,并以管理员权限打开 Windows PowerShell 窗口。输入以下命令:
New-NetFirewallRule –DisplayName “Allow ICMPv4-In” –Protocol ICMPv4
- 配置完这两个虚拟机后,从
PacktVM02输入以下命令在 PowerShell 中 pingPacktVM01:
ping PacktVM01.private.packtdns.com
您将看到类似以下截图的输出:

私有 DNS 输出
在这个演示中,我们使用 CLI 配置了一个私有 DNS 区域。
总结
在本章中,我们讲解了如何配置和管理 NSG 和 Azure DNS。我们介绍了 NSG 和 Azure DNS 的基础知识。您还学习了如何创建和配置 NSG。我们还讲解了如何使用 Azure DNS 创建公共和私有区域,以及如何向其添加 DNS 记录。
在下一章中,我们将通过讲解如何实现Azure 负载均衡器,来覆盖部署和管理虚拟网络目标的最后一部分。
问题
回答以下问题以测试你对本章内容的理解。你可以在本书最后的评估部分找到答案:
-
你可以将 NSG 分配给子网和 NIC 吗?
-
是
-
否
-
-
你可以使用 Azure DNS 购买域名并将其托管在那里吗?
-
是
-
否
-
-
无法从 Azure 门户配置私有 DNS 区域。
-
正确
-
错误
-
深入阅读
你可以查看以下链接,了解更多本章涉及的主题:
-
安全组:
docs.microsoft.com/en-us/azure/virtual-network/security-overview -
创建、修改或删除 NSG:
docs.microsoft.com/en-us/azure/virtual-network/manage-network-security-group -
什么是 Azure DNS?:
docs.microsoft.com/en-in/azure/dns/dns-overview -
DNS 区域和记录概述:
docs.microsoft.com/en-in/azure/dns/dns-zones-records -
快速入门:使用 Azure 门户创建 Azure DNS 区域和记录:
docs.microsoft.com/en-us/azure/dns/dns-getstarted-portal -
使用 Azure DNS 进行私有域名管理:
docs.microsoft.com/en-us/azure/dns/private-dns-overview
第十三章:实施 Azure 负载均衡器
在上一章中,我们覆盖了 部署和管理虚拟网络 目标的第四部分。我们讲解了 网络安全组(NSG)和 Azure DNS。您还学习了如何创建和配置 NSG,以及如何设置和配置 Azure DNS。
本章涵盖了这一目标的第五部分,也是最后一部分,讲解了如何使用 Azure 负载均衡器 配置内外部负载均衡器。在本章中,我们将重点介绍 Azure 负载均衡器的特性和功能。您将学习如何配置内部负载均衡器,如何创建健康探针以及如何配置负载均衡规则。本章的最后部分将讲解如何配置公共负载均衡器。
本章将覆盖以下主题:
-
Azure 负载均衡器
-
配置内部负载均衡器
-
创建健康探针
-
创建负载均衡规则
-
配置公共负载均衡器
技术要求
本章的源代码可以从 GitHub 仓库下载,地址为 github.com/PacktPublishing/Microsoft-Azure-Administrator-Exam-Guide-AZ-103/tree/master/Chapter13。
Azure 负载均衡器
Azure 负载均衡器是一个在传输层(OSI 网络参考模型的第四层)操作的负载均衡器。Azure 负载均衡器支持 传输控制协议(TCP)和 用户数据报协议(UDP),可用于负载均衡流量到您的虚拟机。它提供高吞吐量和低延迟,能够扩展到数百万个流,并支持各种入站和出站场景。
Azure 负载均衡器可以用于以下功能:
-
公共负载均衡器:传入的互联网流量会负载均衡到虚拟机。
-
内部负载均衡器:流量可以在虚拟网络中的虚拟机之间进行负载均衡。您还可以在混合场景中使用它,例如将流量引导到企业网络内部的负载均衡器。
-
端口转发:您可以通过入站 网络地址转换(NAT)规则将流量转发到特定虚拟机上的特定端口。
-
出站连接:您还可以通过在 Azure 负载均衡器上作为公共负载均衡器为虚拟网络中的虚拟机提供出站连接。
Azure 负载均衡器提供以下功能和能力:
-
负载均衡:流量可以通过规则从前端池分发到后端池。默认情况下,Azure 负载均衡器使用五元组哈希,该哈希由源 IP 地址、源端口、目标 IP 地址、目标端口和 IP 协议号组成,用于将流量映射到后端池中的可用服务器。
-
端口转发:可以创建入站 NAT 规则,将流量从负载均衡器前端 IP 地址的特定端口转发到 Azure 虚拟网络内部后端实例的特定端口。因此,采用与负载均衡相同的基于哈希的分配方式。这可用于远程桌面协议(RDP)和安全外壳协议(SSH)会话,连接到 VNet 内的虚拟机。多个内部端点可以映射到相同前端 IP 地址的不同端口。可以使用前端 IP 地址远程管理虚拟机,这样无需额外的跳板机。
-
自动重新配置:当实例规模扩大或缩小时,负载均衡器会自动重新配置自己。当虚拟机从后端池中添加或移除时,无需对负载均衡器进行额外操作。
-
健康探针:Azure 负载均衡器使用健康探针来判断后端池中虚拟机的健康状态。当探针未响应时,负载均衡器会停止向该实例发送新连接。为 HTTP、HTTPS 和 TCP 端点提供了不同的健康探针。
-
出站连接(SNAT):出站连接会自动转换为负载均衡器的公共前端 IP 地址。
Azure 负载均衡器有两种不同的定价层:
-
基础版:基础版负载均衡器免费使用,具备以下功能:
-
后端池大小:基础版支持最多 100 个实例在后端池内。
-
健康探针:TCP 和 HTTP。
-
可用性区域:不可用。
-
出站连接:支持单一前端,当配置多个前端时,会随机选择一个。默认的源网络地址转换(SNAT)在只有内部负载均衡器服务虚拟机、虚拟机规模集或可用性集时使用。
-
出站规则:不可用。
-
诊断:仅支持公共负载均衡器的 Azure 日志分析,后端池健康计数和 SNAT 耗尽警报。
-
HA 端口:不可用。
-
默认安全:默认开放;NSG 是可选的。
-
空闲时 TCP 重置:不可用。
-
多个前端:不可用。
-
管理操作:60-90+秒。
-
服务级别协议(SLA):不可用。
-
-
标准版:使用 Azure 负载均衡器的标准层会收费。费用依据规则数量和与资源相关的数据进行计算,这些数据包括传入和传出的流量:
-
后端池大小:标准层支持最多 1,000 个实例在后端池内。
-
健康探针:TCP、HTTP 和 HTTPS。
-
可用性区域:支持用于入站和出站连接的区冗余和分区前端,并支持跨区负载均衡。
-
出站连接:每个负载均衡规则的退出可以使用多个前端。基于池的出站 NAT 可以通过出站规则显式定义。出站场景必须显式创建,以便使用虚拟机、虚拟机规模集或可用性集的出站连接。虚拟网络服务端点可以在无需定义出站连接的情况下访问。公共 IP 地址和平台即服务(PaaS)必须通过出站连接来访问,若它们不可通过 VNet 服务端点访问。
-
出站规则:需要使用公共 IP 地址、公共 IP 前缀或两者来定义出站 NAT 配置。你还可以配置出站空闲超时和自定义 SNAT 端口分配。
-
诊断:Azure 负载均衡器支持 Azure Monitor,具有包括健康探测状态、出站连接健康(SNAT 成功和失败流量)、多维度度量以及活动数据平面测量等功能。
-
HA 端口:仅适用于内部负载均衡器的高可用端口。
-
默认安全:除非内部负载均衡器被 NSG 白名单列出,否则默认情况下,端点会对入站流量关闭。公共 IP 地址和负载均衡器端点也会被保护。
-
TCP 空闲重置:可以在任何规则的空闲超时上启用此选项。
-
多个前端:用于入站和出站连接。
-
管理操作:大多数操作在 30 秒内完成。
-
SLA:在两个健康虚拟机的情况下,数据路径的 SLA 为 99.99%。
-
配置内部负载均衡器
在此演示中,我们将通过 Azure 门户创建和配置一个负载均衡器。我们将通过一个基本的负载均衡器路由内部流量,将入站请求分发到多个虚拟机。对于这个演示,我们将创建一个负载均衡器、后端服务器以及基础定价层的网络资源。
创建 VNet
首先,我们将创建 VNet、后端服务器和测试虚拟机。为此,请按照以下步骤操作:
-
打开
portal.azure.com/访问 Azure 门户。 -
在左侧菜单中,选择创建资源|网络,然后选择虚拟网络。
-
添加以下值:
-
名称:
PacktLBVnet -
地址空间:
172.16.0.0/16 -
订阅:选择一个订阅
-
资源组:创建一个新的资源组并命名为PacktLoadBalancer。
-
位置:东部美国
-
子网名称:
PacktLBBackendSubnet -
子网地址范围:
172.16.0.0/24 -
DDoS 保护:基本
-
服务端点:禁用
-
防火墙:禁用:
-

VNet 设置
- 点击创建。
创建虚拟机
下一步是创建用于后端池和测试的虚拟机。为此,请按照以下步骤操作:
-
创建虚拟机时,选择左侧菜单中的创建资源,然后选择计算,再选择 Windows Server 2016 Datacenter。
-
在“创建虚拟机”面板的“基本”选项卡中,填写以下值:
-
订阅:选择一个订阅
资源组:
PacktLoadBalancer(在上一步创建)。 -
虚拟机名称:
PacktLBVM1。 -
区域:东部美国。
-
可用性选项:选择可用性集并创建一个新的,命名为
PacktLBAvailabilitySet。保持默认域并更新域设置。 -
镜像:Windows Server 2016 Datacenter。
-
大小:Standard DS1 v2。
-
凭据:为虚拟机指定用户名和密码。
-
公共入站端口:允许选择的端口|选择 RDP(3389)。
-
-
选择“网络”选项卡,选择我们在上一步创建的虚拟网络及其子网,并填写以下值:
- NIC 网络安全组:选择高级并创建一个新的网络安全组。保持新网络安全组的默认名称。
-
选择管理选项卡。在监控下,将启动诊断设置为关闭。
-
点击“审核 + 创建”按钮以创建虚拟机。
-
重复上述步骤,使用相同的设置创建第二个虚拟机
PacktLBVM2和第三个虚拟机PacktLBVMTest,并将它们放置在相同的订阅、资源组、可用性集以及相同的网络安全组中。
创建负载均衡器
现在我们可以按照以下步骤创建负载均衡器:
-
要创建基本负载均衡器,在顶部菜单中选择“创建资源”|“网络”|“负载均衡器”。
-
添加以下值:
-
订阅:选择一个订阅
-
资源组:
PacktLoadBalancer。 -
名称:
PacktLoadBalancer。 -
区域:东部美国。
-
类型:内部。
-
SKU:基础版。
-
虚拟网络:选择
PacktLBVNet。 -
子网:选择
PacktLBBackendSubnet。 -
IP 地址分配:静态。
-
私有 IP 地址:提供一个属于虚拟网络和子网地址空间的 IP 地址,例如
172.16.0.7。
-
-
点击“审核 + 创建”。然后点击“创建”:

创建负载均衡器
创建后端地址池
现在,虚拟机和 Azure 负载均衡器实例已创建并且网络配置完成,接下来是创建后端池,负载均衡器将使用该池将流量分配到虚拟机。后端池由网络接口卡(NICs)的 IP 地址组成。
我们将创建一个包含PacktLBVM1和PacktLBVM2的后端池:
-
打开在前一步中创建的负载均衡器资源,进入 Azure 门户。
-
在设置中,选择“后端池”,然后点击“添加”按钮:

创建后端池
-
添加以下值:
-
名称:
PacktLBBackendPool。 -
关联到:选择可用性集。
-
可用性集:选择
PacktLBAvailabilitySet。 -
选择“添加目标网络 IP 配置”,并将
PacktLBVM1和PacktLBVM2添加到后端池。
-
-
点击“确定”:

将虚拟机添加到后端池
创建健康探测
下一步是为负载均衡器创建健康探测。健康探测用于负载均衡器监控虚拟机的状态。根据健康检查的响应,探测将动态地添加或移除虚拟机,从负载均衡器的轮换中。
要创建健康探测,请执行以下步骤:
-
再次打开负载均衡器资源。
-
在“设置”下,选择“健康探测”,然后选择“添加”:

创建新健康探测
-
添加以下值:
-
名称:
PacktHealthProbe。 -
协议:HTTP。
-
端口:
80。 -
路径:
*/*. -
间隔:
15——这是探测尝试之间的秒数。 -
不健康阈值:
2—该值是连续探测失败的次数,超过该次数后虚拟机被视为不健康。
-
-
点击“确定”:

健康探测设置
创建负载均衡规则
负载均衡规则定义了流量如何分配到后端池中的虚拟机。当你创建一个新规则时,你需要定义传入流量的前端 IP 配置、接收流量的后端 IP 池以及所需的源和目标端口。
我们要创建的规则监听前端的 80 端口。该规则然后将网络流量发送到后端池,同样是端口 80。
要创建规则,请执行以下步骤:
-
再次打开负载均衡器资源。
-
在“设置”下,选择“负载均衡规则”,然后选择“添加”:

创建新规则
-
添加以下值:
-
名称:
PacktLoadBalancerRule -
前端 IP 地址:
LoadBalancerFrontEnd -
协议:TCP
-
端口:
`80` -
后端端口:
80 -
后端池:
PacktLBBackendPool -
健康探测:
PacktHealthProbe
-
-
点击“确定”:

配置规则
测试负载均衡器
为了正确测试虚拟机,我们将使用 PowerShell 在 PacktLBVM1 和 PacktLBVM2 虚拟机上安装 Internet 信息服务 (IIS)。然后,我们可以使用 PacktLBVMTest 虚拟机通过调用其私有 IP 地址来测试负载均衡器。
首先,我们需要获取负载均衡器的私有 IP 地址。执行以下步骤:
- 在负载均衡器的概览页面中,复制私有 IP 地址,如下所示:

获取私有 IP 地址
- 现在,我们需要使用 RDP 会话连接到
PacktLBVM1和PacktLBVM2虚拟机,并在其上安装 IIS 和一个测试网页。连接到这两台虚拟机,打开 PowerShell 控制台,并提供以下 PowerShell 脚本:
# Install IIS
Install-WindowsFeature -name Web-Server -IncludeManagementTools
# Remove default htm file
remove-item C:\inetpub\wwwroot\iisstart.htm
#Add custom htm file
Add-Content -Path "C:\inetpub\wwwroot\iisstart.htm" -Value $("Hello World from " + $env:computername)
- 接下来,使用 RDP 连接到
PacktLBVMTest虚拟机,打开浏览器会话,并导航到负载均衡器的私有 IP 地址。刷新浏览器几次,以查看负载均衡器将请求分配到两台虚拟机,如下图所示:

测试负载均衡器
配置公共负载均衡器
在本节中,我们将使用 Azure CLI 创建公共负载均衡器。您可以在 Azure 门户中访问 Azure Cloud Shell,并复制代码片段。
创建公共负载均衡器的完整脚本也可以从 GitHub 下载。请参考本章开头的技术要求部分中指定的位置。
创建负载均衡器
创建公共负载均衡器需要执行一系列步骤。在接下来的章节中,我们将创建包含所有必要组件的公共负载均衡器。
创建资源组
我们首先创建一个资源组,用于负载均衡器和其他资源,如下所示:
# Create a resource group
az group create \
--name PacktResourceGroupSLB \
--location eastus
创建公共 IP 地址
接下来,我们将为负载均衡器配置公共 IP 地址,以便从互联网访问它。标准负载均衡器只支持标准公共 IP 地址,如下所示的代码:
# Create a public IP address
az network public-ip create --resource-group PacktResourceGroupSLB --name PacktPublicIP --sku standard
创建负载均衡器
在接下来的章节中,我们将创建负载均衡器,并创建包括前端 IP 池、后端 IP 池、健康探针和负载均衡器规则等组件。
要创建负载均衡器,请添加以下代码:
# Create the Load Balancer
az network lb create \
--resource-group PacktResourceGroupSLB \
--name PacktLoadBalancer \
--sku standard
--public-ip-address PacktPublicIP \
--frontend-ip-name PacktFrontEnd \
--backend-pool-name PacktBackEndPool
创建健康探针
所有虚拟机实例都通过健康探针检查,以确定它们是否足够健康,可以向其发送网络流量。未通过健康检查的虚拟机实例会从负载均衡器中移除,直到探针检查表明它们已恢复健康。
要创建健康探针,请添加以下代码:
#Create the health probe
az network lb probe create \
--resource-group PacktResourceGroupSLB \
--lb-name PacktLoadBalancer \
--name PacktHealthProbe \
--protocol tcp \
--port 80
创建负载均衡器规则
负载均衡器规则定义了传入流量的前端 IP 配置和接收流量的后端 IP 池,以及所需的源和目标端口,如下所示:
#Create the Load Balancer rule
az network lb rule create \
--resource-group PacktResourceGroupSLB \
--lb-name PacktLoadBalancer \
--name PacktHTTPRule \
--protocol tcp \
--frontend-port 80 \
--backend-port 80 \
--frontend-ip-name PacktFrontEnd \
--backend-pool-name PacktBackEndPool \
--probe-name PacktHealthProbe
创建虚拟网络
现在,我们需要创建虚拟网络来部署虚拟机,使用以下代码:
#Create a virtual network
az network vnet create \
--resource-group PacktResourceGroupSLB \
--location eastus \
--name PacktVnet \
--subnet-name PacktSubnet
创建 NSG
接下来,我们将创建一个 NSG。标准负载均衡器要求后端的虚拟机具有放置在 NSG 中的网卡。我们需要创建 NSG 来定义虚拟网络的入站连接,如下所示:
az network nsg create \
--resource-group PacktResourceGroupSLB \
--name PacktNetworkSecurityGroup
创建一个 NSG 规则
要允许通过端口80的入站连接,请创建如下所示的 NSG 规则:
#Create a Network Security Group rule
az network nsg rule create \
--resource-group PacktResourceGroupSLB \
--nsg-name PacktNetworkSecurityGroup \
--name PacktNetworkSecurityGroupRuleHTTP \
--protocol tcp \
--direction inbound \
--source-address-prefix '*' \
--source-port-range '*' \
--destination-address-prefix '*' \
--destination-port-range 80 \
--access allow \
--priority 200
创建网卡
我们需要创建两个网络接口,并将它们与 NSG 和公共 IP 地址关联,如下所示:
#Create NICs
for i in `seq 1 2`; do
az network nic create \
--resource-group PacktResourceGroupSLB \
--name PacktNic$i \
--vnet-name PacktVnet \
--subnet PacktSubnet \
--network-security-group PacktNetworkSecurityGroup \
--lb-name PacktLoadBalancer \
--lb-address-pools PacktBackEndPool
done
创建后端服务器
接下来是创建后端服务器。我们将创建两台虚拟机,作为负载均衡器的后端服务器。我们还将安装NGINX(一个开源的高性能 HTTP 服务器和反向代理)来测试负载均衡器。
创建可用性集
要创建可用性集,请添加以下代码:
#Create an Availability set
az vm availability-set create \
--resource-group PacktResourceGroupSLB \
--name PacktAvailabilitySet
创建两个虚拟机
我们将创建两台安装了 NGINX 的虚拟机,并在这些 Linux 虚拟机上创建一个Hello World的 Node.js 应用程序。为此,我们需要创建一个名为cloud-init.txt的文件,并将配置粘贴到其中。以下cloud-init配置将安装所有所需的软件包,然后创建Hello World应用程序,并启动该应用程序。要创建cloud-init.txt文件,请添加以下行:
sensible-editor cloud-init.txt
选择一个编辑器并粘贴以下配置。首先,添加软件包:
#cloud-config
package_upgrade: true
packages:
- nginx
- nodejs
- npm
然后设置服务器:
write_files:
- owner: www-data:www-data
- path: /etc/nginx/sites-available/default
content: |
server {
listen 80;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
接下来,创建应用程序:
- owner: azureuser:azureuser
- path: /home/azureuser/myapp/index.js
content: |
var express = require('express')
var app = express()
var os = require('os');
app.get('/', function (req, res) {
res.send('Hello World from host ' + os.hostname() + '!')
})
app.listen(3000, function () {
console.log('Hello world app listening on port 3000!')
})
最后,运行应用程序:
runcmd:
- service nginx restart
- cd "/home/azureuser/myapp"
- npm init
- npm install express -y
- nodejs index.js
通过上述代码块,我们现在为虚拟机创建了cloud-init.txt文件。保存文件并退出编辑器。现在,我们可以继续创建两台虚拟机并应用配置,具体如下:
#Create two virtual machines
for i in `seq 1 2`; do
az vm create \
--resource-group PacktResourceGroupSLB \
--name myVM$i \
--availability-set PacktAvailabilitySet \
--nics PacktNic$i \
--image UbuntuLTS \
--generate-ssh-keys \
--custom-data cloud-init.txt \
--no-wait
done
测试负载均衡器
为了测试负载均衡器,我们需要获取其公共 IP 地址并将其粘贴到浏览器窗口中。等待虚拟机完全配置并运行。你可以在 Azure 门户中检查此状态。然后,要获取公共 IP 地址,请添加以下代码行:
#Obtain public IP address
az network public-ip show \
--resource-group PacktResourceGroupSLB \
--name PacktPublicIP \
--query [ipAddress] \
--output tsv
将此行代码的输出粘贴到浏览器窗口中,以查看 Azure 负载均衡器的实际操作:

测试公共负载均衡器
总结
在本章中,我们介绍了如何配置内部和外部负载均衡器。你还学会了如何配置负载均衡规则和健康探测。
在下一章中,我们将继续进行部署和管理虚拟网络目标的第五部分,讲解如何将本地网络与 Azure 虚拟网络集成。
问题
回答以下问题,以测试你对本章内容的理解。你可以在本书末尾的评估部分找到答案:
-
基本负载均衡器只能通过 Azure 门户创建吗?
-
是的
-
不
-
-
标准负载均衡器是否需要后端虚拟机中的网络接口卡(NIC)放置在 NSG 中才能正常工作?
-
是的
-
不
-
-
标准负载均衡器是否需要标准的公共 IP 地址才能正常运行?
-
是的
-
不
-
深入阅读
你可以查看以下链接,了解本章涵盖的主题的更多信息:
-
快速入门:使用 Azure CLI 创建负载均衡器以平衡虚拟机负载:
docs.microsoft.com/en-us/azure/load-balancer/quickstart-create-basic-load-balancer-cli -
快速入门:使用 Azure PowerShell 创建公共负载均衡器:
docs.microsoft.com/en-us/azure/load-balancer/quickstart-create-basic-load-balancer-powershell -
快速入门:使用 Azure 门户创建标准负载均衡器以负载均衡虚拟机:
docs.microsoft.com/en-us/azure/load-balancer/quickstart-load-balancer-standard-public-portal -
快速入门:使用 Azure PowerShell 创建标准负载均衡器:
docs.microsoft.com/en-us/azure/load-balancer/quickstart-create-standard-load-balancer-powershell
第五部分:身份管理
在本节中,你将学习如何在 Azure 中管理身份。
本节将涵盖以下章节:
-
第十四章,管理 Azure Active Directory
-
第十五章,实施和管理混合身份
-
第十六章,实施多因素身份验证
第十四章:管理 Azure Active Directory
在上一章中,我们讨论了如何使用 Azure 负载均衡器配置内部和外部负载均衡器。主要关注的是 Azure 负载均衡器的特性和功能,以及如何创建健康探测器和配置负载均衡规则。
本章介绍本书的最终目标:管理身份 目标. 在本章中,我们将介绍如何在 Azure Active Directory(Azure AD)中创建和管理用户和组。您将学习如何从 Azure 门户管理这些内容,以及如何在 Azure AD 租户中执行批量更新。您将学习如何为用户配置自助服务密码重置,以减少用户管理的工作量。我们还将介绍 Azure AD 加入以及如何管理已注册或加入 Azure AD 的设备。最后,我们将向 Azure AD 添加自定义域名。
本章将涵盖以下主题:
-
Azure AD
-
创建和管理用户和组
-
添加和管理来宾帐户
-
执行批量用户更新
-
配置自助服务密码重置
-
Azure AD 加入
-
管理设备设置
-
添加自定义域名
Azure AD
Azure AD 提供了一个来自云端的目录和身份管理解决方案。它提供传统的用户名和密码身份管理,以及角色和权限管理。此外,它还提供了更多企业级解决方案,例如多重身份验证(MFA)和应用程序监控、解决方案监控和警报。Azure AD 可轻松集成到您的本地 Active Directory 中,以创建混合基础架构。
Azure AD 提供以下定价计划:
-
免费:提供最基本的功能,例如支持多达 500,000 个对象、单点登录(SSO)、Azure B2B 用于外部用户、支持 Azure AD Connect 同步、自助服务密码更改、组和标准安全报告。
-
基础:不设对象限制,SLA 达到 99.9%,自助服务密码重置,公司品牌特性以及应用程序代理支持。
-
高级 P1:提供高级报告、多重身份验证、条件访问、自动注册移动设备管理(MDM)、云应用发现和 Azure AD 连接健康。
-
高级 P2:提供身份保护和特权身份管理。
若要详细了解不同定价计划和每个计划提供的所有功能,请参阅以下定价页面:azure.microsoft.com/en-us/pricing/details/active-directory/。
请注意,Azure AD 高级版是企业移动性和安全套件的一部分。
在下一节中,我们将在 Azure AD 租户内创建和管理用户和组。
创建和管理用户和组
在本次演示中,我们将创建和管理 Azure 门户中的用户和组。你也可以使用 PowerShell 和 CLI 来创建用户。
我们在本次演示中不会创建 Azure AD 租户。我假设你已经有一个租户。如果你需要创建一个 Azure AD 租户,可以参考以下教程:docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-create-new-tenant。
你也可以在一个订阅中创建多个 Azure AD 租户。这些目录可以用于开发和测试等目的。
在 Azure AD 中创建用户
我们将首先在 Azure 门户中从 Azure AD 租户中创建几个用户。因此,您需要执行以下步骤:
-
通过打开
portal.azure.com导航到 Azure 门户。 -
在左侧菜单中,选择Azure Active Directory。
-
在 Azure AD 的概览面板中,左侧菜单中选择 用户 | 所有用户。从顶部菜单中选择+ 新用户,如下所示:

创建新用户
-
我们将创建三个用户。添加以下值,如下截图所示:
-
名称:
PacktUser1。 -
用户名:用户名是用户登录 Azure AD 时输入的标识符。使用配置的域名,并将其添加到用户名的末尾。在我的例子中,这个用户名是
PacktUser1@sjoukjezaal.com。 -
个人资料:在这里,你可以为用户创建一个新个人资料。添加名、姓、职位和部门。然后,点击确定,如下所示:
-

为你的用户创建个人资料
-
-
组:你也可以从这里将用户添加到一个组中。我们将在接下来的演示中进行此操作,因此现在可以跳过这部分内容。
-
目录角色:在这里,你可以将用户分配为用户、全局管理员或有限管理员角色。选择用户,如下所示:
-

选择目录角色
-
点击创建。
-
重复这些步骤,创建
PackUser2和PacktUser3。
现在,我们已经在 Azure AD 租户中创建了几个用户,可以将它们添加到 Azure AD 中的一个组。
在 Azure AD 中创建组
若要从 Azure AD 租户中创建和管理组,必须执行以下步骤:
-
通过打开
portal.azure.com导航到 Azure 门户。 -
在左侧菜单中,选择Azure Active Directory。
-
在 Azure AD 的概览面板中,左侧菜单中选择 组 | 所有组。从顶部菜单中选择+ 新组,如下所示:

创建新组
-
添加以下值以创建新组:
-
组类型:安全组。
-
组名称:
PacktGroup。 -
成员类型:在这里,您可以选择三种不同的值。第一种是分配,您手动将成员分配到该组;第二种是动态用户,该组成员资格基于某些用户属性来确定。动态组成员资格消除了添加和移除用户的管理开销。最后一种是动态设备,此时组成员资格基于某些设备属性来确定。选择第一个选项:分配。
-
-
点击“成员”选项卡以向该组添加成员。选择我们在上一个演示中创建的三个用户账户,如下所示:

向组中添加用户
- 点击选择以添加成员,然后点击创建来创建该组。
我们现在已经在 Azure AD 中创建了一个新组,并将我们在上一个演示中创建的用户账户添加到该组中。在接下来的部分,我们将讲解如何添加和管理外部账户。
添加和管理外部账户
您还可以使用 Azure AD 企业对企业(B2B)功能添加外部用户账户。Azure AD B2B 是 Azure AD 上的一个功能,允许组织与外部用户安全地合作。要添加到 Azure B2B,外部用户不需要拥有已添加到现有 Azure AD 租户中的 Microsoft 工作或个人账户。各种账户都可以添加到 Azure B2B。
您无需在 Azure 门户中进行任何配置即可使用 B2B;此功能默认对所有 Azure AD 租户启用。执行以下步骤:
- 向 Azure AD 租户添加外部用户与添加内部用户类似。当您进入用户概览页面时,可以在顶部菜单中选择+ 新建外部用户,如下所示:

添加外部用户
- 然后,您可以提供一个电子邮件地址和一条个人消息,该消息会发送到用户的收件箱。此个人消息包括一个登录您租户的链接:

外部用户属性
-
点击邀请以将用户添加到您的 Azure AD 租户,并将邀请发送到用户的收件箱。
-
创建后,要管理外部用户,您可以从用户概览页面中选择它们。它们将具有一个用户类型,名为外部用户。只需选择列表中的用户,您将能够管理在顶部菜单中显示的该用户的设置,如下所示:

管理外部用户
在接下来的部分,我们将讲解如何通过 Azure 门户执行批量用户更新。
执行批量用户更新
执行批量用户更新与管理单个用户(内部和外部)类似。唯一不能为多个用户设置的属性是重置密码。这必须为单个用户执行。
要执行批量用户更新,您需要执行以下步骤:
-
再次进入用户概览面板。
-
你可以在概览面板中选择多个用户。从顶部菜单中,选择你想要配置的属性,如下所示:

执行批量用户更新
这就是批量更新用户的演示部分。在下一部分,我们将讲解如何为用户配置自助密码重置。
配置自助密码重置
通过为用户启用自助密码重置,他们能够自动更改密码,而无需拨打帮助台电话。这大大减少了管理开销。
可以通过 Azure 门户轻松启用自助密码重置。因此,你需要执行以下步骤:
-
通过打开
portal.azure.com,进入 Azure 门户。 -
在左侧菜单中,选择Azure Active Directory。
-
在 Azure AD 概览面板中,在左侧菜单下的管理中,选择密码重置,如下所示:

选择密码重置
- 在密码重置概览面板中,你可以通过选择全部来为所有用户启用自助密码重置,或者通过选择选定的为特定用户和组启用。为了演示,启用所有用户并点击顶部菜单中的保存,如下所示:

为所有用户启用自助密码重置
-
接下来,我们需要为用户设置不同的认证方法。为此,在管理下,选择认证方法。
-
在下一个面板中,我们可以设置重置密码所需的认证方法数量以及可供用户选择的认证方法,如下所示:

不同的认证方法
- 进行选择并点击保存。
如果你想在配置后测试自助密码重置,请确保使用没有管理员权限的用户账户。
我们现在已经为所有用户配置了自助密码重置功能,位于我们的 Azure AD 租户中。在下一部分,我们将管理 Azure AD 中的设备设置。
Azure AD Join
使用 Azure AD Join,你可以直接将设备加入 Azure AD,而无需将其加入本地的 Active Directory 来实现混合环境。虽然在某些场景下,混合 Azure AD Join 和本地 AD 仍然是优选方案,但 Azure AD Join 简化了设备添加,并使设备管理现代化。这有助于减少设备相关的 IT 成本。用户通过他们的设备访问公司资产。为了保护这些公司资产,你需要控制这些设备。这让管理员确保用户仅通过符合安全和合规标准的设备访问资源。
当你希望使用云设备管理解决方案来管理设备、现代化应用程序基础设施、简化地理分布用户的设备配置,并且你的公司正在采用 Microsoft 365 作为用户生产力套件时,Azure AD 加入是一个不错的解决方案。
管理设备设置
Azure AD 提供了确保用户从符合公司安全和合规标准的设备访问 Azure 资源的能力。设备管理是基于设备的条件访问的基础,通过它,你可以确保仅从已管理的设备访问你的环境中的资源。
设备设置可以从 Azure 门户进行管理。要管理设备设置,设备需要注册或加入 Azure AD。
要从 Azure 门户管理设备设置,必须执行以下步骤:
-
通过打开
portal.azure.com来导航到 Azure 门户。 -
在左侧菜单中,选择Azure Active Directory。
-
在 Azure AD 概述页面的“管理”下,选择“设备”,如下所示:

从菜单中选择设备
-
设备管理页面将会打开。在这里,你可以配置设备管理设置、定位设备、执行设备管理任务,并查看与设备管理相关的审计日志。
-
要配置设备设置,从左侧菜单中选择设备设置。在这里,你可以配置以下设置,如下图所示:
-
用户可以将设备加入 Azure AD:在这里,你可以设置哪些用户可以将他们的设备加入 Azure AD。此设置仅适用于 Windows 10 上的 Azure AD 加入。
-
在加入 Azure AD 的设备上添加额外的本地管理员:在这里,你可以选择哪些用户被授予设备的本地管理员权限。被选择的用户会自动被添加到 Azure AD 中设备管理员的角色。Azure AD 中的全局管理员和设备所有者默认被授予本地管理员权限(这是 Azure AD Premium 的选项)。
-
用户可以将他们的设备注册到 Azure AD:此设置需要配置,以允许设备注册到 Azure AD。这里有两个选项:无,即当设备没有加入 Azure AD 或是混合 Azure AD 加入时,不允许注册;以及所有,即所有设备都可以注册。如果你配置了 Microsoft Intune 或 移动设备管理(MDM) for Office 365 服务,则选择所有,无将不可用。
-
要求使用多因素身份验证来加入设备:在这里,你可以设置要求用户在注册设备时执行多因素身份验证。在启用此设置之前,必须为注册设备的用户配置多因素身份验证。
-
设备的最大数量:此设置允许您选择用户在 Azure AD 中可以拥有的最大设备数量:
-

设备设置概述
- 要查找您的设备,在管理下选择所有设备。在此概览中,您将看到所有已加入和已注册的设备,如下所示:

定位设备
- 您还可以从列表中选择不同的设备,以获取有关设备的更详细信息。在此,全球管理员和云设备管理员可以禁用或删除设备,如下所示:

设备信息
- 对于审计日志,在活动下,选择审计日志。从这里,您可以查看和下载不同的日志文件。您还可以创建过滤器以便在日志中进行搜索,如下所示:

审计日志
我们现在已经查看了所有已注册或加入 Azure AD 的设备的不同管理和配置选项。在接下来的部分,我们将介绍如何将自定义域添加到 Azure AD。
添加自定义域名
Azure 为每个在订阅中创建的 Azure AD 租户创建初始域名。该域名由租户名称组成,后跟 onmicrosoft.com(例如,packtpub.onmicrosoft.com)。您无法更改或删除初始域名,但可以向您的 Azure AD 租户添加自定义域名。
该自定义域名可以在第三方域名注册商处注册,注册后,您可以将其添加到 Azure AD 租户中。
要从 Azure 门户向 Azure AD 添加自定义域,您必须执行以下步骤:
-
打开
portal.azure.com进入 Azure 门户。 -
在左侧菜单中,选择Azure Active Directory。
-
在 Azure AD 概览面板中,选择管理下的自定义域名。要添加自定义域名,请选择顶部菜单中的+ 添加自定义域按钮,如下所示:

添加自定义域
- 在自定义域名字段中输入自定义域名(例如,
packtpub.com),然后选择添加域名,如下所示:

提供自定义域名
- 将自定义域名添加到 Azure AD 后,您需要在域名注册商的 DNS 设置中创建一个 TXT 记录。前往您的域名注册商并添加从复制的 TXT 文件中获取的 Azure AD DNS 信息。为您的域名创建此 TXT 记录验证了您对该域名的所有权。创建 TXT 文件后,点击验证,如下所示:

验证域名所有权
- 在验证您的自定义域名后,您可以删除验证 TXT 或 MX 文件。
我们现在已经为我们的 Azure AD 租户配置了自定义域名。你的用户现在可以使用这个域名登录他们可以访问的各种 Azure 资源。
总结
在本章中,我们介绍了管理身份目标的第一部分。我们讲解了 Azure AD 的各个方面。你已经学习了如何添加用户和组,如何添加来宾用户,以及如何在 Azure AD 中管理设备。我们还介绍了如何从 Azure 门户向 Azure AD 租户添加自定义域名。
在下一章中,我们将介绍本考试目标的第二部分。在本章中,我们将讨论如何实施和管理混合身份。
问题
请回答以下问题,以测试你对本章内容的理解。你可以在本书最后的评估部分找到答案:
-
如果你想使用 PowerShell 创建来宾用户,必须使用
New-AzureADMSInvitation命令集。-
是的
-
不是
-
-
如果你希望使用 Azure AD 加入你的设备,首先需要在混合环境中配置本地 AD 环境,并与 Azure AD 配合使用。
-
是的
-
不是
-
-
当你向 Azure AD 添加自定义域时,需要通过向你的域注册商的 DNS 设置中添加 TXT 记录来验证它。
-
是的
-
不是
-
进一步阅读
你可以查看以下链接,获取更多关于本章中介绍的主题的信息:
-
Azure Active Directory 文档:
docs.microsoft.com/en-us/azure/active-directory/ -
使用 Azure Active Directory 添加或删除用户:
docs.microsoft.com/en-us/azure/active-directory/fundamentals/add-users-azure-active-directory -
Azure Active Directory 版本 2 命令集用于组管理:
docs.microsoft.com/en-us/azure/active-directory/users-groups-roles/groups-settings-v2-cmdlets -
快速入门:使用 PowerShell 添加来宾用户:
docs.microsoft.com/en-us/azure/active-directory/b2b/b2b-quickstart-invite-powershell -
快速入门:自助密码重置:
docs.microsoft.com/en-us/azure/active-directory/authentication/quickstart-sspr -
如何:规划你的 Azure Active Directory 加入实施:
docs.microsoft.com/en-us/azure/active-directory/devices/azureadjoin-plan -
Azure Active Directory 中的设备管理是什么?
docs.microsoft.com/en-us/azure/active-directory/devices/overview -
使用 Azure Active Directory 门户添加您的自定义域名:
docs.microsoft.com/en-us/azure/active-directory/fundamentals/add-custom-domain
第十五章:实现和管理混合身份
在上一章中,我们介绍了如何管理 Azure Active Directory (Azure AD)。本章继续进行 身份管理 目标。在本章中,我们将介绍如何实施和管理混合身份。我们将安装和配置 Azure AD Connect,将本地 Active Directory 中的身份同步到 Azure AD。然后,您将学习如何管理 Azure AD Connect。在本章的最后部分,我们将深入探讨密码同步和密码回写。您将学习如何在 Azure AD Connect 和 Azure 门户中启用密码同步。最后,您将学习如何管理密码同步。
本章将涵盖以下主题:
-
Azure AD Connect
-
安装 Azure AD Connect
-
管理 Azure AD Connect
-
管理密码同步和密码回写
Azure AD Connect
Azure AD Connect 是一个服务,您可以用它将本地 Active Directory 身份与 Azure 同步。这样,您可以使用相同的身份在本地环境和云端进行身份验证,还可以访问其他 软件即服务 (SaaS) 应用程序。
Azure AD Connect 同步服务由两部分组成:Azure AD Connect 同步组件,它是安装在您本地环境中的独立服务器上的工具;以及 Azure AD Connect 同步服务,它是 Azure AD 的一部分。同步组件可以将数据从 Active Directory 和 SQL Server 同步到 Azure。此外,还有一个名为 Active Directory 联合服务 (ADFS) 的第三个组件,可以在涉及 ADFS 的场景中使用。为了监控本地身份基础架构和不同的 Azure AD 组件,您可以使用名为 Azure AD Connect Health 的工具。下图展示了 Azure AD Connect 的架构:

Azure AD Connect 架构
Azure AD Connect 提供支持,让用户可以使用相同的密码登录本地和云端资源。它提供了三种不同的身份验证方法:密码哈希同步方法、通过身份验证方法和联合单点登录(SSO)方法(结合 ADFS 使用)。
Azure AD 密码哈希同步
大多数组织仅需启用用户登录到 Office 365、SaaS 应用程序以及其他基于 Azure AD 的资源。密码哈希同步方法非常适合这些场景。
使用此方法时,用户密码的哈希值会在本地 Active Directory 和 Azure AD 之间同步。当用户的密码发生更改时,密码会立即同步,这样用户就能始终使用相同的凭据登录本地环境和 Azure。
这种身份验证方法还提供 Azure AD 无缝单一登录(SSO)。通过这种方式,用户在使用公司网络中的域加入设备时会自动登录。用户只需要在使用无缝 SSO 时输入用户名。要使用无缝 SSO,您无需在本地网络上安装额外的软件或组件。您可以通过组策略将此功能推送给用户。
Azure AD 通行身份验证
Azure AD 通行身份验证提供与 Azure AD 密码哈希同步相同的功能。用户可以使用相同的凭据登录 Azure 资源以及本地资源。不同之处在于,使用通行身份验证时,密码不会与 Azure AD 同步。密码是通过本地的 Active Directory 进行验证的,完全不会存储在 Azure AD 中。
这种方法适用于具有安全性和合规性限制的组织,且不允许将用户名和密码发送到本地网络以外的地方。通行身份验证要求在域加入的 Windows 服务器上安装代理,该服务器位于本地环境内。然后,代理监听密码验证请求,并仅从网络内部进行出站连接。它还支持多重身份验证(MFA)和 Azure AD 条件访问策略。
Azure AD 通行身份验证也提供 Azure AD 无缝 SSO。
在下一节中,我们将安装 Azure AD Connect 并将一些本地用户同步到 Azure。
安装 Azure AD Connect
Azure AD Connect 安装在安装并配置了 Active Directory 的本地服务器上。第一步是下载 Azure AD Connect。下载后,我们可以将其安装到域控制器上。
在本演示中,我已经在 Azure 中部署了一个 Windows Server 2016 虚拟机,并在其上安装并配置了 Active Directory。配置 Active Directory 超出了考试和本书的范围。确保在配置 Active Directory 域服务时,林名称与 Azure AD 中现有的已验证自定义域之一匹配。否则,当你在域控制器上安装 Azure AD Connect 时,会收到一条警告信息,提示未为用户启用 SSO。要在 Windows Server 2016 机器上安装 Active Directory,请参阅以下网站:blogs.technet.microsoft.com/canitpro/2017/02/22/step-by-step-setting-up-active-directory-in-windows-server-2016/。
因此,请按照以下步骤操作:
-
在下载 Azure AD Connect 之前,至少向本地 Active Directory 添加一个用户。
-
要下载 Azure AD Connect,您可以参考以下网站:
www.microsoft.com/en-us/download/details.aspx?id=47594。下载后将其存储在您的域控制器的本地磁盘上,并运行AzureADConnect.msi。 -
安装向导以欢迎屏幕开始。选中复选框以同意许可条款:

Azure AD Connect 欢迎屏幕
- 在下一个屏幕中选择使用快速设置:

使用快速设置安装 Azure AD Connect
- 在下一个屏幕上,提供 Azure AD 的全局管理员帐户的用户名和密码(此帐户必须是学校或组织帐户,不能是 Microsoft 帐户或其他类型的帐户),然后点击下一步:

提供全局管理员凭据
- 在连接到 AD DS 屏幕上,输入企业管理员帐户的用户名和密码,并点击下一步,如下所示:

输入企业管理员帐户
最后一屏将概述将要安装的内容,如下所示:

准备配置
-
点击安装。
-
这将把 Azure AD Connect 安装到您的域控制器上。配置后,用户帐户同步到 Azure AD 的过程将自动开始。
-
配置成功后,您将看到以下结果:

配置完成
- 点击退出关闭安装程序。
在本演示中,我们在本地域控制器上安装了 Azure AD Connect。在接下来的部分,我们将从 Azure 门户管理它。
管理 Azure AD Connect
在本地域控制器上安装和配置后,可以通过 Azure 门户管理 Azure AD Connect。要管理它,您需要按照以下步骤操作:
-
通过打开
portal.azure.com导航到 Azure 门户。 -
在左侧菜单中,选择Azure Active Directory。
-
在管理下,选择Azure AD Connect。在 Azure AD Connect 面板中,如下图所示,您可以看到同步已启用,最后一次同步发生在不到一小时之前,并且密码哈希同步已启用:

Azure AD Connect 设置
-
您还可以在用户登录下设置三种身份验证方法。在这里,您可以将身份验证方法设置为联合身份验证、无缝单点登录或直通身份验证。您可以在健康状况和分析下监控本地基础设施和同步服务的健康状态。
-
要检查用户是否已同步,您可以进入用户概览面板。在这里,您会看到已同步的用户,如下截图所示:

已同步的用户
Azure AD Connect 同步通过调度程序同步本地目录中的更改。有两个调度程序进程,一个用于密码同步,另一个用于对象/属性同步和维护任务。有关如何配置此功能或使用 PowerShell 创建自定义调度程序的更多信息,请参阅以下教程:docs.microsoft.com/en-us/azure/active-directory/hybrid/how-to-connect-sync-feature-scheduler。
在本次演示中,我们从 Azure 门户管理了 Azure AD Connect。在接下来的部分中,我们将详细介绍如何管理密码回写。
密码回写
密码回写用于将 Azure AD 中的密码更改同步回本地 Active Directory 环境。此设置作为 Azure AD Connect 的一部分启用,并提供了一种安全的机制,将密码更改从 Azure AD 发送回本地 Active Directory。
它提供以下功能和能力:
-
强制实施本地 Active Directory 密码策略:当用户重置密码时,会检查本地 Active Directory 策略,以确保密码满足密码要求后才会提交到目录。它会检查密码的复杂性、历史记录、密码过滤器、密码年龄以及本地 Active Directory 中定义的其他密码限制。
-
零延迟反馈:如果用户更改密码后,其密码不符合本地 Active Directory 策略要求,系统会立即通知用户。这是一个同步操作。
-
支持管理员从 Azure 门户重置密码时的密码回写:当管理员在 Azure 门户中重置密码时,密码会被写回到本地 Active Directory(当用户是联合身份认证或密码哈希同步时)。此功能不适用于 Office 管理门户。
-
无需任何入站防火墙规则:密码回写通过 Azure 服务总线与本地 Active Directory 通信,因此无需打开防火墙。所有通信均为出站,并通过
443端口进行。 -
支持通过访问面板和 Office 365 更改密码:当联合身份认证或密码哈希同步用户更改密码时,这些密码也会回写到本地 Active Directory。
在接下来的演示中,我们将启用密码回写。
管理密码回写
要启用密码回写,我们需要对本地域控制器上的 Azure AD Connect 配置以及 Azure 门户进行一些更改。
在 Azure AD Connect 中启用密码回写
要在 Azure AD Connect 中启用密码回写,我们需要执行以下步骤:
-
使用远程桌面(RDP)登录到本地域控制器,并再次启动 Azure AD Connect 向导。
-
在欢迎使用 Azure AD Connect页面上,选择配置,如下所示:

欢迎屏幕
- 在额外任务屏幕上,选择自定义同步 选项,并选择下一步,如下所示:

额外任务屏幕
- 提供 Azure AD 全局管理员凭据,并选择下一步,如下所示:

提供管理员凭据
- 在连接你的目录屏幕上,选择下一步,如下所示:

连接你的目录
- 在“域和 OU 筛选”屏幕上,再次选择下一步,如下所示:

域和 OU 筛选屏幕
- 在可选功能屏幕上,选中密码回写旁边的框,并选择下一步,如下所示:

启用密码回写
-
在准备配置页面上,选择配置。
-
配置完成后,选择退出。
我们现在已在域控制器上启用了密码回写。在接下来的部分中,我们也将在 Azure 门户中启用它。
在 Azure 门户中启用密码回写
要在 Azure 门户中启用密码回写,我们需要执行以下步骤:
-
通过打开
portal.azure.com导航到 Azure 门户。 -
在左侧菜单中,选择Azure Active Directory。
-
在管理下,选择密码重置,如下所示:

在 Azure 门户中重置密码
- 在密码重置窗格中,选择管理下的本地集成。将是否将密码回写到本地目录?选项设置为是,并将是否允许用户在不重置密码的情况下解锁账户?选项设置为是,如下所示:

启用密码回写
- 点击保存。
我们现在已经完全配置了 Azure AD Connect 和 Azure 门户中的密码回写。在接下来的部分中,我们将讨论如何管理密码同步。
密码同步
在本章的最后部分,我们将讨论密码同步。我们使用快速设置选项安装了 Azure AD Connect。如果使用此选项,则会自动启用密码哈希同步。
如果你使用自定义设置安装 Azure AD Connect,密码哈希同步将在用户登录屏幕上提供,并且你可以在此处启用,如下图所示:

在安装过程中启用密码哈希同步
概述
在本章中,我们涵盖了 管理身份 目标的第二部分。我们讲解了 Azure AD Connect,你已经学会了如何安装和管理它。此外,我们还讨论了如何启用密码回写和密码哈希同步。
在下一章中,我们将讨论本考试目标的第三部分也是最后一部分。本章将介绍如何在 Azure 中实现 多因素身份验证 (MFA)。
问题
请回答以下问题,以测试你对本章信息的理解。你可以在本书末尾的 评估 部分找到答案:
-
如果你在安装 Azure AD Connect 时使用快速设置,密码哈希同步默认是禁用的。
-
是的
-
不是
-
-
当你想启用密码同步时,只需在 Azure 门户内进行设置。
-
是的
-
不是
-
-
如果本地 Forest 名称与任何 Azure AD 自定义域名不匹配,则无法安装 Azure AD Connect。
-
是的
-
不是
-
进一步阅读
你可以查看以下链接,获取关于本章所涉及主题的更多信息:
-
什么是与 Azure Active Directory 的混合身份?:
docs.microsoft.com/en-us/azure/active-directory/hybrid/whatis-hybrid-identity -
什么是与 Azure AD 的联合身份?:
docs.microsoft.com/en-us/azure/active-directory/hybrid/whatis-fed -
什么是与 Azure AD 的密码哈希同步?:
docs.microsoft.com/en-us/azure/active-directory/hybrid/whatis-phs -
使用 Azure Active Directory 传递身份验证进行用户登录:
docs.microsoft.com/en-us/azure/active-directory/hybrid/how-to-connect-pta -
Azure AD Connect 同步:了解和自定义同步:
docs.microsoft.com/en-us/azure/active-directory/hybrid/how-to-connect-sync-whatis -
Azure AD Connect 用户登录选项:
docs.microsoft.com/en-us/azure/active-directory/hybrid/plan-connect-user-signin -
教程:启用密码回写:
docs.microsoft.com/en-us/azure/active-directory/authentication/tutorial-enable-writeback -
通过 Azure AD Connect 同步实现密码哈希同步:
docs.microsoft.com/en-us/azure/active-directory/hybrid/how-to-connect-password-hash-synchronization
第十六章:实施多重身份验证
在上一章中,我们介绍了身份管理目标的第二部分。您已经学习了如何安装 Azure AD Connect 并如何进行管理。
本章涵盖了本目标的最后一部分,也是本书的最后一章。在本章中,我们将重点介绍 Azure 中的多重身份验证 (MFA),以便您可以为 Azure 资源的注册和登录体验添加第二层安全性。我们将探讨不同的验证方法以及如何进行配置。我们还将配置欺诈警报,以便用户可以报告尝试欺诈访问其资源的行为。最后,我们将配置受信任的 IP 地址,以绕过 MFA。
本章将覆盖以下主题:
-
Azure MFA
-
配置 MFA 用户账户
-
配置验证方法
-
配置欺诈警报
-
配置绕过选项
-
配置受信任的 IP 地址
Azure MFA
MFA 是一种安全功能,需要多种身份验证方法。您可以使用它为用户登录添加额外的安全层。它启用了两步验证,用户首先使用他们知道的东西(如密码)登录,然后使用他们拥有的东西(如智能手机)或某些人体特征(如生物识别)进行验证。
Azure MFA 保持了用户的简便性,同时通过要求第二种身份验证形式提供额外的安全性,帮助保护数据和应用程序。它提供了管理员可以配置的多种方法,管理员可以决定是否对用户进行 MFA 挑战。
Azure MFA 是以下产品的一部分:
-
Azure Active Directory Premium 许可证:通过此许可证,您可以使用 Azure MFA 服务(云端)和 Azure MFA 服务器(本地)。后者更适用于已安装Active Directory 联邦服务(ADFS)的组织,并需要管理基础设施组件。
-
Azure Active Directory 全局管理员:MFA 功能的一个子集适用于 Azure 中的管理员账户。
-
Office 365 的 MFA:Office 365 用户可以使用 MFA 功能的一个子集。
使用 Azure MFA,您可以使用以下验证方法:
| 验证方法 | 描述 |
|---|---|
| 语音电话 | 向用户的注册电话拨打电话,用户需要输入 PIN 码进行验证。 |
| 短信 | 向用户的手机发送包含六位数验证码的短信。用户需要在登录页面填写此验证码。 |
| 移动应用通知 | 向用户的智能手机发送验证请求。必要时,用户将输入 PIN 码并选择验证。 |
| 移动应用验证代码 | 用户的智能手机上的移动应用将显示一个验证代码,每 30 秒刷新一次。用户将选择最新的代码并输入登录页面。 |
| 第三方令牌 | Azure MFA 服务器可以配置为接受第三方安全令牌。 |
在接下来的部分中,我们将为 Azure AD 租户启用 MFA,配置用户帐户、配置欺诈警报,并配置绕过选项。
本章中的演示将使用 Azure Active Directory Premium P2 许可证。
为 Azure AD 租户启用 MFA
以下是为你的用户、数据和应用程序启用 MFA 的三种不同选项:
-
使用条件访问策略:你可以使用条件访问策略来启用 MFA。可以在用户或应用程序级别启用此功能。你还可以使用条件访问策略为安全组或所有外部用户启用 MFA。此功能适用于高级 Azure AD 许可证。
-
在用户级别:此选项将在本章的下一部分中详细介绍。这是启用 MFA 的传统方法。使用此方法,用户每次登录时都需要执行 MFA。当设置了条件访问策略时,此方法会覆盖它们。
-
使用 Azure AD 身份保护:使用此选项,你将基于所有云应用程序的登录风险创建一个 Azure AD 身份保护风险策略。如果已创建条件访问策略,它也会被覆盖。此选项需要 Azure Active Directory P2 许可证。
为 MFA 配置用户帐户
Azure MFA 在 Azure AD 的用户级别启用。要为 Azure AD 中的用户帐户启用 MFA,请执行以下步骤:
-
通过打开
portal.azure.com/导航到 Azure 门户。 -
转到“所有服务”,然后输入
Azure Active Directory并打开 Azure AD 资源。 -
在 Azure AD 面板中,选择“管理”下的“用户”,如下所示:

Azure AD 用户设置
- 在“所有用户”面板中,在顶部菜单选择“多重身份验证”,如下所示:

选择多重身份验证
- 然后你将被重定向到多重身份验证门户。在那里,选择一个用户并点击屏幕右侧的“启用”,如下所示:

为用户启用 MFA
- 点击链接后,你将收到以下警告:

警告窗口
- 点击启用多重身份验证以激活此用户的 MFA。
现在我们已经为用户启用 MFA,我们可以查看如何配置验证方法。
配置验证方法
验证方法也在 Azure MFA 门户中配置,就像你在上一步为用户帐户启用 MFA 一样。请按以下步骤操作:
- 在仍然打开 MFA 门户的情况下,从顶部菜单中选择 服务设置,如下所示:

MFA 门户服务设置
- 在 验证选项 下,您可以选择希望为用户启用的方法。默认情况下,启用了所有验证选项,如下所示:

MFA 验证选项
- 如果您希望禁用某些选项,请取消勾选相应的复选框并单击 保存 按钮。
我们已经了解了如何配置用户在 Azure 中使用 MFA 时可以使用的验证方法。在接下来的部分中,我们将介绍如何配置受信任的 IP 地址。
配置受信任的 IP 地址
受信任的 IP 地址由 Azure AD 租户的管理员使用。此选项将为从受信任的 IP 地址(例如公司内网)登录的用户跳过 MFA。
受信任的 IP 地址可以通过 MFA 门户中的服务设置页面进行配置。按照以下步骤操作:
- 在前一个演示中仍保持服务器设置页面打开,在 受信任的 IP 地址 下,勾选名为 “跳过来自联合用户在我的内网的多重身份验证请求” 的复选框。然后,在列表中添加一个 IP 地址或一系列 IP 地址,如下所示:

受信任的 IP 地址设置
- 单击 保存 按钮以保存您的设置。
在接下来的部分中,我们将讲解如何在 Azure 门户中配置欺诈警报。
配置欺诈警报
使用欺诈警报功能,用户可以通过电话或移动应用报告欺诈性尝试访问其资源。这是 MFA 服务器(本地)功能。
欺诈警报通过 Azure 门户进行配置,在 Azure Active Directory 设置中。按照以下步骤操作:
-
通过打开
portal.azure.com来导航到 Azure 门户。 -
选择 所有服务,然后在搜索框中输入
Azure Active Directory并打开设置。 -
在 安全性 下,选择 MFA,如下所示:

Azure AD 中的 MFA
-
开始使用面板会自动打开。在 设置 下,选择 欺诈警报。
-
打开 欺诈警报 设置页面。在这里,您可以启用用户提交欺诈警报,如下所示:

启用提交欺诈警报
- 单击 保存 按钮以保存设置。
我们现在已经了解了如何允许用户提交欺诈警报。在接下来的部分中,我们将讲解如何配置跳过选项。
配置跳过选项
使用一次性跳过功能,用户可以进行一次身份验证并跳过 MFA。此设置是 临时 的,在指定的秒数后将自动过期。这可以在手机或移动应用无法接听电话或接收通知的情况下作为解决方案。
此设置也可以通过以下方式在 Azure 门户中的 Azure Active Directory 设置中配置:
-
通过打开
portal.azure.com导航到 Azure 门户。 -
选择“所有服务”,然后在搜索框中输入
Azure Active Directory并打开设置。 -
在“管理 MFA 服务器”下,选择“一次性绕过”,如下所示:

一次性绕过
-
在设置页面中,输入用户名,包括完整的域名,例如
username@domain.com。指定绕过应持续的秒数以及绕过的原因。 -
点击“添加”按钮。时间限制将立即生效。
我们现在已经讲解了如何进行一次身份验证并通过一次性绕过功能绕过 MFA。
总结
在本章中,我们讲解了如何通过配置 Azure 中的用户帐户来管理身份这一目标的最后部分。我们讨论了不同的身份验证方法,并为我们的用户启用了它。最后,我们查看了绕过 MFA 的多种方式,例如受信任的 IP 地址。
通过本章所学的知识,你应该能够通过 AZ-103 考试。不要忘了查看每章末尾的进一步阅读部分,因为那里有很多额外信息,考试中也可能涉及。
问题
回答以下问题,以测试你对本章内容的理解。你可以在本书末尾的评估部分找到答案:
-
你可以为特定的 IP 地址添加受信任的 IP 地址,以绕过 MFA 启用吗?
-
是的
-
不是
-
-
不能使用条件访问策略启用 MFA。
-
是的
-
不是
-
-
欺诈警报是否是 MFA 服务器(本地)功能的一部分?
-
是的
-
不是
-
进一步阅读
你可以查看以下链接,获取更多关于本章涉及主题的信息:
-
工作原理:Azure 多重身份验证:**
docs.microsoft.com/en-us/azure/active-directory/authentication/concept-mfa-howitworks -
规划基于云的 Azure 多重身份验证部署:
docs.microsoft.com/en-us/azure/active-directory/authentication/howto-mfa-getstarted -
配置 Azure 多重身份验证设置:
docs.microsoft.com/en-us/azure/active-directory/authentication/howto-mfa-mfasettings -
什么是 Azure Active Directory 中的条件访问?:
docs.microsoft.com/en-us/azure/active-directory/conditional-access/overview -
快速入门:使用 Azure Active Directory 条件访问要求特定应用启用 MFA:
docs.microsoft.com/en-us/azure/active-directory/conditional-access/app-based-mfa
第十七章:模拟测试问题
第一章,管理 Azure 订阅和资源组访问控制
-
你有一个名为
Subscription1的 Azure 订阅,其中包含两个名为ResourceGroup1和ResourceGroup2的资源组。你需要确保所有全局管理员都可以管理这两个资源组中的所有资源。你通过 Azure Active Directory 属性面板启用 Azure 资源的访问管理。此解决方案是否满足你的目标?-
是
-
否
-
-
你正在创建一个 Windows Server 虚拟机 (VM),计划将其作为未来部署的镜像。你需要确保其他管理员在你完成镜像之前无法对其进行任何更改。你应该怎么做?
-
编辑 基于角色的访问控制 (RBAC) 权限,在虚拟机级别设置。
-
在资源组级别编辑 RBAC 权限。
-
在虚拟机级别设置删除锁。
-
在资源组级别设置只读锁。
-
-
你确定组织内的业务单元将 Azure 资源分布在不同的 Azure 资源组中。你需要确保这些资源分配到正确的成本中心。你应该怎么做?
-
部署 Azure 策略
-
创建分类标签,并在资源级别分配它们
-
创建分类标签,并在资源组级别分配它们
-
使用查询获取正确的资源,并根据此结果创建报告
-
第二章,分析资源利用率和消耗情况
-
你有一个包含 8 个虚拟机的 Azure 订阅。你需要配置监控,并希望在 中央处理单元 (CPU) 或可用内存达到一定阈值时收到通知。通知需要通过电子邮件发送,并需要在公司问题追踪器中创建一个新问题。为满足这些要求,你需要创建的最小警报和操作组数量是多少?
-
八个警报和一个操作组
-
两个警报和两个操作组
-
一个警报和两个操作组
-
一个警报和一个操作组
-
-
你有两个 Azure 资源组,分别名为
ResourceGroup1和ResourceGroup2。ResourceGroup1资源组包含 20 个 Windows Server 虚拟机,所有虚拟机都连接到名为Workspace1的 Azure 日志分析工作区。你需要编写一个日志查询,收集所有具有以下属性的安全事件:所有安全级别除了 8,且事件 ID 为 4672。你应该如何编写查询?-
SecurityEvent | where Level == 8 | and EventID == 4672 -
SecurityEvent | where Level <> 8 | where EventID == 4672 -
SecurityEvent | where Level == 8 | summarize EventID == 4672 -
SecurityEvent | where Level <> 8 | and EventID == 4672
-
-
您的公司有一个应用程序,使用 Azure SQL 数据库存储信息。公司还部署了 System Center Service Manager。您需要在数据库 CPU 使用率达到 80%时配置一个警报。当此警报触发时,您希望管理员通过电子邮件和短信收到通知。您还需要在警报触发时自动在公司问题跟踪器中创建一个工单。您应该执行哪两个操作?
-
配置 System Center Service Manager 与 Azure 自动化集成
-
配置一个包含三项操作的操作组:一项用于电子邮件,一项用于短信,一项用于创建工单
-
配置 IT 服务管理连接器
-
配置两个操作组:一个用于电子邮件和短信,一个用于创建工单
-
第三章,基于角色的访问控制管理
-
您需要将一些全局管理员权限委派给您办公室的一个新云工程师。您决定使用 JSON 文件创建一个自定义角色,并使用以下 PowerShell cmdlet 添加该自定义角色:
New-AzureRmRoleDefinition -InputFile "C:\ARM_templates/customrole.json"。这样做是否正确?-
是的
-
否
-
-
您的公司有一个 Azure AD 租户和一个本地 AD,它们通过 Azure AD Connect 进行同步。您有一个名为
Packt_Main的订阅。帮助台管理员是Packt_HD组的成员。您需要授予帮助台组通过 Azure 门户重置用户密码的权限,同时使用最少的权限。应该怎么做?-
授予
Packt_HD组 Azure 管理员中的密码管理员角色 -
将密码重置权限委派给
Packt_HD组,在 Azure 目录用户和计算机中用户的组织单位(OU)上 -
将
Packt_HD组添加到域管理员用户组中 -
将
Packt_HD组授予Packt_Main订阅的所有者角色
-
-
您想在 Azure 门户中创建一个资源组管理员组。您需要为他们分配哪个 RBAC 角色,以便管理 Azure 订阅中的所有资源组?
-
贡献者
-
读取器
-
所有者
-
监控读取器
-
第四章,创建和配置存储帐户
-
您的公司正在开发一个.NET 应用程序,用于将信息存储在 Azure 存储帐户中。您需要确保信息以安全的方式存储。您要求开发人员在访问信息时使用共享访问签名(SAS)。您需要对存储帐户进行必要的配置,以遵循安全最佳实践。以下哪种说法是正确的?
-
您需要配置存储访问策略。
-
要撤销 SAS,您可以删除存储访问策略。
-
您应该将 SAS 开始时间设置为当前时间。
-
-
您的公司有一个应用程序,它需要将来自 Blob 存储的数据从热存取层移动到归档存取层,以降低成本。您需要创建哪种类型的存储帐户?
-
通用 V2 存储帐户
-
通用 V1 存储帐户
-
Azure 文件存储
-
Azure Blob 存储
-
-
你们公司想要部署一个存储账户。你需要确保在整个数据中心发生故障的情况下数据仍然可用。解决方案必须是最具成本效益的。你应该怎么做?
-
配置地理冗余存储。
-
配置本地冗余存储。
-
配置读取访问的地理冗余存储。
-
配置区域冗余存储。
-
第五章,导入和导出数据到 Azure。
-
你们公司开发了一个使用动态和静态内容的 web 应用程序。该应用程序部署在多个区域以实现最佳性能。用户抱怨该 web 应用程序的性能,并报告加载图片需要很长时间。你决定配置一个 内容分发网络(CDN)。你应该执行哪两项操作?
-
在 CDN 上实现自定义缓存规则。
-
在网站上实现跨源共享。
-
在 CDN 上实现通用的 web 交付。
-
在 CDN 上实现动态站点加速。
-
-
你们公司开发了一个使用动态和静态内容的 web 应用程序。该应用程序部署在多个区域以实现最佳性能。用户抱怨该 web 应用程序的性能,并报告加载图片需要很长时间。你决定配置一个 CDN。配置 CDN 的两种可能方式是什么?
-
配置一个单一的 Azure CDN Premium Verizon 端点,配置动态站点加速,并配置缓存规则。
-
配置一个单一的 Azure CDN Standard Akamai 端点,配置动态站点加速,并配置缓存规则。
-
配置一个单一的 Azure CDN Standard Verizon 端点,配置动态站点加速,并配置缓存规则。
-
配置一个单一的 Azure CDN Standard Microsoft 端点,配置动态站点加速,并配置缓存规则。
-
-
你们公司有大量数据存储在本地数据库和文件服务器中(120 TB)。这些数据需要上传到 Azure。上传到 Azure 的最快方式是什么?
-
使用 Azure Data Box。
-
使用 Azure Storage Explorer。
-
从 Azure 门户手动上传。
-
创建 Azure 文件共享。
-
第六章,配置 Azure 文件和实施 Azure 备份。
-
你们公司有八台本地文件服务器和一个 Azure 订阅,其中包含一个存储账户。你计划使用 Azure 文件共享同步以在混合配置中实现 Azure 文件共享。以下哪项陈述是正确的?
-
Azure 文件共享同步使用 IPSec 保护混合连接。
-
Azure 文件共享同步减少了本地文件服务器的存储占用。
-
Azure 文件共享同步为本地文件共享提供容错。
-
-
你正在配置 Azure 文件同步,将本地文件共享与 Azure 文件存储同步。为了确保服务在你的服务器上成功运行,必须完成哪些两个操作?
-
为管理员和用户禁用 Internet Explorer 增强安全性。
-
仅为管理员禁用 Internet Explorer 增强安全性
-
确保服务器上部署了 PowerShell 版本 5.1 或更高版本
-
确保在服务器上安装了 Azure AD Connect
-
-
你正在为 Azure 文件共享设置备份和恢复。要在 PowerShell 中创建备份策略,应该使用以下哪个 cmdlet?
-
New-AzRecoveryServicesBackupProtectionPolicy -
Get-AzRecoveryServicesBackupSchedulePolicyObject -
Get-AzRecoveryServicesVault -
Enable-AzRecoveryServicesBackupProtection
-
第七章,创建和配置 Windows 和 Linux 的 VM
-
你有一个名为
PacktResourceGroup1的 Azure 资源组,其中包含一个名为PacktVM1的 Linux VM。你需要自动化部署 30 台额外的 Linux 机器。这些 VM 应该基于PacktVM1VM 的配置。以下哪种解决方案能够实现目标?-
在 VM 自动化脚本刀片中,点击部署
-
在模板刀片中,点击添加
-
在资源组的策略刀片中,点击分配策略
-
-
你的公司有一台存储在资源组中的 VM。你需要在同一个资源组中部署更多的 VM。你计划使用 ARM 模板来部署它们。你需要使用 PowerShell 从原始 VM 创建模板。你应该使用哪个 cmdlet?
-
使用 Export-AzResourceGroup -
使用 Get-AzResourceGroupDeployment -
使用 Get-AzResourceGroupDeploymentOperation -
使用 Get-AzResourceGroupDeploymentTemplate
-
-
你在一个可用性集内部署了一台 Windows Server 2016 机器。你需要更改该 VM 的可用性集分配。你应该怎么做?
-
将 VM 迁移到另一个 Azure 区域
-
将 VM 分配到新的可用性集
-
从恢复点重新部署 VM
-
将 VM 移动到不同的可用性集
-
第八章,管理 Azure VM 和 VM 备份
-
你的公司有两个不同的 Azure 订阅,分别命名为
PacktSubscription1和PacktSubscription2,它们各自分配了不同的 Azure Active Directory。你在PacktSubscription1订阅中的一个资源组PacktResourceGroup1内部署了一个 VM。你想将该 VM 移动到PacktSubscription2中的另一个资源组。当你尝试移动 VM 时,出现了错误。最可能导致此错误的原因是什么?-
VM 已配置了托管磁盘
-
该 VM 是经典 VM
-
目标资源组位于不同的订阅中
-
订阅位于不同的 Azure AD 租户中
-
-
你需要使用 PowerShell 移动一个 VM。你应该使用哪个 cmdlet?
-
Set-AzVM -
Get-AzVM -
Update-AzVM -
Redeploy-AzVM
-
-
你在一个资源组中部署了一台 VM,想要增加一个额外的数据磁盘以扩展存储。你想使用 PowerShell 添加这个磁盘。你应该使用哪个 cmdlet?
-
Set-AzVMDataDisk -
New-AzVMDataDisk -
Add-AzVMDataDisk -
New-AzDisk
-
第九章,实施与管理虚拟网络
-
你的公司部署了两个 虚拟网络(VNets),
VNet1和VNet2。你需要将这两个虚拟网络连接在一起。最具成本效益的解决方案是什么?-
VNet 对 VNet
-
站点对站点连接
-
用户定义路由
-
VNet 对等连接
-
-
一个名为
PacktVM1的虚拟机已部署在名为PacktResourceGroup1的资源组中。该虚拟机连接到名为PacktVNet1的虚拟网络。你计划将PacktVM1虚拟机连接到一个额外的名为PacktVNet2的虚拟网络。你需要在PacktVM1虚拟机上创建一个额外的 网络接口,并将其连接到PacktVNet2虚拟网络。你应该使用哪两个 Azure 命令行界面(CLI) 命令?-
az vm nic add -
am vm nic create -
az network update -
az network nic create
-
-
你需要为一个名为
PacktVM1的 Windows Server 虚拟机分配一个静态 IPv4 地址,该虚拟机运行在名为PacktVNet1的虚拟网络中。你应该怎么做?-
修改与
PacktVM1虚拟机关联的虚拟网络接口的 IP 配置 -
编辑
PacktVNet1虚拟网络的地址范围 -
使用 WinRM 连接到
PacktVM1虚拟机并运行Set-NetIPAddresscmdlet -
使用远程桌面协议连接到
PacktVM1虚拟机,并编辑虚拟机的虚拟网络连接属性
-
第十章,集成本地网络与 Azure 虚拟网络
-
你正在管理组织的网络。本地基础设施由多个子网组成。最近增加了一个新分支机构。新办公室的网络设备被分配到
192.168.22.0/24子网。你需要配置 Azure VPN 网关,确保分支办公室中的所有网络设备也能从 Azure 网络访问。你应该使用哪个 PowerShell 命令?-
Add-AzureRmVirtualNetworkSubnetConfig -
Set-AzureRmLocalNetworkGateway -
Set-AzureRmNetworkInterface -
Add-AzureRmNetworkInterfaceIpConfig
-
-
你在一个 Azure 虚拟机上运行一个应用程序。你的本地网络通过 Azure VPN 网关连接到 Azure 虚拟网络。由于安全要求,应用程序不能直接暴露在互联网。市场部的用户应能够在旅行时使用公司笔记本访问该应用程序。你应该配置哪种连接方式?
-
ExpressRoute
-
点对点连接
-
站点对站点连接
-
VNet 对 VNet
-
-
你的组织在美国西部、西欧洲和澳大利亚东部地区部署了 Azure 资源。公司在这些地区有四个办公室。你需要通过私有通道提供所有本地网络与 Azure 中所有资源之间的连接。你为每个 Azure 区域配置了一个 VPN 网关,并为每个办公室配置了站点对站点 VPN,并连接到最近的 VPN 网关。然后你配置了虚拟网络对等连接。你需要确保用户拥有最低的流量延迟。这种解决方案是否能满足你的目标?
-
是的
-
否
-
第十一章,监控和故障排除虚拟网络
-
你有一台在 Azure 上部署的 Windows Server,且使用了 ExpressRoute 连接。经过两个月的正常使用后,突然收到用户反馈,他们在尝试连接服务器时遇到网络问题。你需要使用什么工具来监控到服务器的网络流量?
-
网络性能监视器
-
应用洞察
-
Azure 监控
-
网络观察器
-
-
你在多个 Azure 区域配置了多个虚拟网络。你的本地基础设施位于美国东部,并配置了四个子网。你在本地基础设施中遇到网络性能问题,决定使用网络性能监视器进行故障排除。你需要在所有本地服务器上安装 Log Analytics 代理吗?
-
是的
-
否
-
-
你的组织在美国西部、西欧和澳大利亚东部地区部署了 Azure 资源。公司在这些地区有四个办公室。每个办公室通过站点到站点 VPN 连接到最近的 Azure 区域。来自每个区域的虚拟网络通过虚拟网络对等连接进行连接。你需要监控这些网络之间的流量。你配置了 Azure Network Watcher 的连接故障排除功能。这个解决方案能达到你的目标吗?
-
是的
-
否
-
第十二章,Azure 安全组和 Azure DNS
-
你的公司计划发布一个新的 Web 应用。该应用将通过 Azure 中的 App Service 部署,并面向
packtpub.com域的所有用户。你已经购买了packtpub.com域名。你配置了packtpub.com的 Azure 域名系统 (DNS) 区域,并将其委托给 Azure DNS。你需要确保该 Web 应用能够通过packtpub.com域名访问。你决定使用 PowerShell 来实现这一目标。你应该使用哪个命令?-
New-AzDnsRecordSet -Name "packtpub.com" -RecordType "AAAA" -ZoneName "packtpub.com"-ResourceGroupName "MyAzureResourceGroup" -Ttl 600-DnsRecords (New-AzDnsRecordConfig -IPv4Address "<your web app IP address>")New-AzDnsRecordSet -ZoneName packtpub.com -ResourceGroupName PacktAzureResourceGroup-Name "applicationscs.azurewebsites.net" -RecordType "CNAME" -Ttl 600-DnsRecords (New-AzDnsRecordConfig -Value "packtpub.azurewebsites.net") -
New-AzDnsRecordSet -Name "@" -RecordType "A" -ZoneName "packtpub.com"-ResourceGroupName "MyAzureResourceGroup" -Ttl 600-DnsRecords (New-AzDnsRecordConfig -IPv4Address "<your web app IP address>")New-AzDnsRecordSet -ZoneName packtpub.com -ResourceGroupName PacktAzureResourceGroup-Name "@" -RecordType "txt" -Ttl 600-DnsRecords (New-AzDnsRecordConfig -Value "packtpub.azurewebsites.net") -
New-AzDnsRecordSet -Name "applicationscs.azurewebsites.net" -RecordType "AAAA" -ZoneName "packtpub.com"-ResourceGroupName "MyAzureResourceGroup" -Ttl 600-DnsRecords (New-AzDnsRecordConfig -IPv4Address "<your web app IP address>")New-AzDnsRecordSet -ZoneName packtpub.com -ResourceGroupName PacktAzureResourceGroup-Name "www.packtpub.com" -RecordType "AAAA" -Ttl 600-DnsRecords (New-AzDnsRecordConfig -Value "packtpub.azurewebsites.net")
-
-
你的公司计划发布一个新的 Web 应用,并希望它能够对
packtpub.com域的所有用户开放。你决定在 Azure 中配置一个 DNS 区域,并检查该域名是否仍然可用。你配置 Azure DNS 以支持这个 Web 应用的第一步应该做什么?-
在你的 Azure DNS 区域中创建一个授权开始记录,指向 Azure DNS 服务器
-
在 Azure 中配置一个正向 DNS 区域
-
在 Azure 中配置一个私有 DNS 区域
-
从第三方域名注册商处购买
packtpub.com域名
-
-
你设计了一个虚拟网络拓扑,具有以下特征:Web 子网:3 个 Web 前端虚拟机,应用子网:3 个应用服务器虚拟机,数据子网:3 个数据库服务器虚拟机。公司要求严格控制子网之间的网络流量,使用网络安全组(NSG)。你需要设计一个解决方案,尽量减少 NSG 规则的创建和维护。你应该怎么做?
-
启用每个 NSG 中的内建规则
-
将路由表绑定到每个子网
-
定义与每个应用层对齐的应用程序安全组
-
在每个 NSG 中启用虚拟网络 NSG 服务标签
-
第十三章,实施 Azure 负载均衡器
-
你已经部署了一个 Azure 负载均衡器,使用基础层,并对一个名为
PacktSet1的可用性集中的虚拟机进行负载均衡。现在,你需要对一个名为PacktSet2的可用性集中的虚拟机进行负载均衡。你应该怎么做?-
用在标准层创建的新负载均衡器替换现有的负载均衡器,并将此负载均衡器用于两个可用性集
-
编辑现有的负载均衡器,添加一个额外的后端池
-
编辑现有的负载均衡器,添加一个新的前端 IP 配置,将流量负载均衡到新的可用性集
-
部署第二个负载均衡器,使用基础层,并将此负载均衡器配置为将流量负载均衡到新的可用性集
-
-
你部署了一个 Azure 公共负载均衡器,将流量负载均衡到六台虚拟机。你希望通过公共负载均衡器使用远程桌面协议(RDP)远程访问 VM1。你应该怎么做?
-
设置一个前端 IP 配置,将公共 IP 地址映射到 VM1 的私有 IP 地址
-
配置一个入站网络地址转换规则,将传输控制协议(TCP)端口
3389映射到 VM1 -
配置一个新的内部负载均衡器,并将其配置为允许 TCP 端口
3386从互联网访问 VM1 -
配置一个负载均衡规则,使用 TCP 端口
3386将流量转发到 VM1
-
-
你部署了一个 Azure 内部负载均衡器,用于将流量负载均衡到内部公司门户。你希望确保用户仅查看门户的最新版本。你创建了一个名为
NewVersion.html的文件,并希望配置负载均衡器,只将流量引导到包含这些文件的虚拟机。你应该怎么做?-
创建一个新的健康探测,使用 HTTP 作为协议,并包含
NewVersion.html文件的路径。 -
创建一个新的健康探测,使用 TCP 作为协议,并包含
NewVersion.html文件的路径。 -
创建一个新的负载均衡规则,包含
NewVersion.html文件的路径。只有在该文件存在时,规则才会负载均衡流量。 -
使用
Set-AzureRmLoadBalancerProbeConfigPowerShell cmdlet 创建一个新的健康探测,使用 HTTP 作为协议,并包含NewVersion.html文件的路径。
-
第十四章,管理 Azure Active Directory
-
你被要求创建一组新的 Azure Active Directory (AD) 安全组,代表经理团队的完整层级结构。这包括被经理管理的人员。你需要使用最少的管理工作量来实现此请求。你应该怎么做?
-
使用直接报告规则创建新的组
-
为每个经理创建新的 Azure AD 组,并使用自定义脚本检测
ManagerID属性变化,必要时修改组成员资格 -
使用规则集创建动态组和 Azure AD,包括
ManagerID属性 -
创建多个 Azure AD 组,并将具有相同
ManagerID属性值的成员添加到每个组中
-
-
你需要为一位外部顾问授予访问权限,以访问你 Azure 订阅中的某些资源。你计划使用 PowerShell 添加该外部用户。你应该使用哪个 cmdlet?
-
New-AzADUser -
New-AzureADMSInvitation -
Get-AzADUser -
Get-AzureADMSInvitation
-
-
你需要为另一位管理员配置账号,该管理员负责管理你 Azure 订阅中的所有 基础设施即服务 (IaaS) 部署。你为用户在 Azure AD 中创建了一个新账户。你需要配置该用户账户,以满足以下要求:对所有 Azure IaaS 部署具有读写访问权限,对 Azure AD 具有只读访问权限,且无法访问 Azure 订阅元数据。该解决方案还必须最小化你未来的访问权限维护工作。你应该怎么做?
-
在资源级别为用户账户分配所有者角色
-
为用户账户分配全局管理员目录角色
-
在订阅级别为用户账户分配虚拟机操作员角色
-
在资源组级别为用户账户分配贡献者角色
-
第十五章,实现和管理混合身份
-
你被要求配置一个解决方案,使用户在登录 Office 365 应用时无需提供密码。你的公司还希望为某些用户配置基于云的两步验证。你应该怎么做?
-
启用密码哈希同步
-
启用直通认证
-
安装 Azure AD Connect
-
启用 Azure 多因素认证
-
-
你使用 Azure AD Connect 将所有 AD 域用户和组与 Azure AD 同步。因此,所有用户都可以使用 单点登录(SSO)访问应用程序。你应该重新配置目录同步,排除不应访问应用程序的域服务帐户和用户帐户。你应该怎么做?
-
重新运行 Azure AD Connect
-
停止同步服务
-
手动删除域服务和用户帐户
-
在 Azure AD 中配置条件访问规则
-
-
你的公司希望启用所有用户帐户使用 SSO 登录应用程序和 Office 365。公司拥有本地 AD,并使用智能卡认证。你需要部署什么解决方案以允许用户在不输入密码的情况下登录?
-
使用直通认证和 SSO 的 Azure AD Connect
-
使用密码哈希同步和 SSO 的 Azure AD Connect
-
使用密码哈希同步的 Azure AD Connect
-
活动目录联合服务
-
第十六章,实施多因素认证
-
你在 Azure AD 租户中部署了 多因素认证(MFA)。你不希望用户在使用 MFA 时在浏览器中输入额外的密码或代码。你应该提供哪两种方法?
-
拨打电话进行验证
-
发送短信至手机
-
通过移动应用程序进行通知
-
使用硬件令牌的验证代码
-
-
你的公司拥有一个 Azure AD 租户和一个通过 Azure AD Connect 同步的本地 AD。你的本地环境运行的是 Windows Server 2012 和 Windows Server 2016 混合服务器。你使用 Azure MFA 进行多因素认证。用户报告在使用公司设备时被要求使用 MFA。你需要关闭域加入设备的 MFA。你应该怎么做?
-
在 Azure AD Connect 上启用单点登录(SSO)
-
创建条件访问规则,允许用户在访问应用程序时使用 MFA 或域加入设备
-
在所有域加入设备上配置 Windows Hello for Business
-
将公司外部 IP 地址添加到 Azure MFA 受信任 IP 列表中
-
-
你的公司拥有一个 Azure AD 租户和一个通过 Azure AD Connect 同步的本地 AD。安全部门注意到来自多个公共 IP 地址的登录次数异常。你应该采取什么措施来减少这些登录?
-
启用 Azure AD 智能锁定
-
将所有公共 IP 地址添加到条件访问中,并使用位置阻止来拒绝所有登录尝试
-
创建条件访问规则,要求所有标记为中等风险及以上的风险登录使用 MFA
-
开启 Azure MFA 欺诈警报
-
第十八章:模拟测试答案
第一章,管理 Azure 订阅和资源组
-
1—是的,这符合您的目标。从 Azure Active Directory Properties blade 设置的访问管理确保分配给全局管理员角色的 Azure AD 用户对所有订阅资源拥有完全控制权。
-
4—您需要在资源组级别设置只读锁定。这将确保管理员和所有其他用户无法对为您的 VM 创建的所有不同 Azure 资源进行更改,例如对虚拟网络、磁盘等的更改。
-
2—您应该创建分类标签并将其分配到资源级别;因为 Azure 资源分布在不同的资源组上,您不能将其应用到资源组级别。
第二章,分析资源利用和消耗
-
4—您应该为此创建一个警报和一个操作组。一个警报可以包含多个基于指标的条件,一个操作组可以包含多个通知或补救步骤。因此,您可以在一个警报中创建 CPU 和内存的指标。您可以使用一个操作组发送电子邮件并在企业问题跟踪器中创建问题。
-
2—正确的查询应为
SecurityEvent | where Level <> 8 | where EventID == 4672。 -
2和3—您需要创建一个操作组,并配置IT 服务管理连接器(ITSMC)。此连接器将 System Center Service Manager 与 Azure 连接起来。
第三章,管理基于角色的访问控制
-
1—是的,这是使用 PowerShell 创建自定义角色的正确方式。
-
1—您应该授予
Packt_HD组在 Azure AD 中的密码管理员角色。该角色授予重置非管理员密码的权限,这是必需的最低权限。 -
3—您应该将所有者角色分配给资源组管理者组。
第四章,创建和配置存储账户
-
1—正确,您需要配置存储访问策略。 2—正确,要撤销 SAS,您可以删除存储访问策略。 3—错误,当将定时器设置为现在时,托管存储账户的服务器时钟可能存在差异。这可能会导致短时间内的访问问题。
-
1—您需要配置通用用途 V2 存储账户以在不同访问层之间移动数据。
-
4—您应该配置带有区域冗余存储(ZRS)复制的存储账户。这将在同一区域的三个不同区域之间进行同步数据复制。
第五章,将数据导入和导出到 Azure
-
1和4—您应该在 CDN 上实施自定义缓存和动态站点加速。动态站点加速在传递动态内容时提高性能。您可以为静态内容配置缓存规则。
-
2和3—你可以配置 Azure CDN 标准 Akamai 和 Azure CDN 标准 Verizon 终结点,配置动态网站加速,并配置缓存规则。动态网站加速在交付动态内容时能提升性能。你可以为静态内容配置缓存规则。你不应创建 Azure CDN 标准 Microsoft 终结点,因为它不支持动态网站加速。你也不应创建 Azure CDN 高级 Verizon 终结点,因为缓存是通过规则引擎而非缓存规则进行配置的。
-
1—你应该订购一个 Azure 数据盒。你可以将所有数据复制到该设备,并将其寄回微软。微软随后会直接从设备将这些数据上传到 Azure 数据中心。
第六章,配置 Azure 文件和实施 Azure 备份
-
2和3—Azure 文件共享同步通过使用云分层减少本地文件服务器的存储占用。这会在本地文件共享上生成热图,并将不常访问的文件归档到 Azure。它还为本地文件共享提供容错能力。如果文件服务器脱机,你可以轻松地将其文件共享恢复到另一个文件服务器。
-
1和3—你需要确保为管理员和用户禁用了 Internet Explorer 增强型安全性,并确保在服务器上部署了 PowerShell 5.1 或更高版本。
-
1—当你在 PowerShell 中创建新策略时,应该使用
New-AzRecoveryServicesBackupProtectionPolicycmdlet。Get-AzRecoveryServicesBackupSchedulePolicyObjectcmdlet 获取对基础策略项的引用。Get-AzRecoveryServicesVaultcmdlet 获取对恢复服务保险库的引用,Enable-AzRecoveryServicesBackupProtectioncmdlet 在创建后启用备份策略。
第七章,创建和配置 Windows 及 Linux 虚拟机
-
1和2—你可以从虚拟机的自动化脚本面板部署虚拟机的 ARM 模板,也可以从 Azure 门户的模板面板部署该模板。
-
1—你应该使用
Export-AzResourceGroupcmdlet。它将指定的资源组捕获为模板并保存为 JSON 文件。 -
3—你应该从恢复点重新部署虚拟机。虚拟机只能在初始部署时被分配到可用性集。
第八章,管理 Azure 虚拟机和虚拟机备份
-
4—你无法移动虚拟机,因为订阅位于不同的 Azure AD 租户中。移动虚拟机的先决条件之一是源订阅和目标订阅必须位于同一个 Azure AD 租户中。
-
1—你应该使用
Set-AzVMcmdlet,后跟-Redeploy方法。 -
3—
Add-AzVMDataDiskcmdlet 将数据磁盘添加到虚拟机。你可以在创建虚拟机时添加数据磁盘,也可以将数据磁盘添加到现有的虚拟机中。
第九章,实施和管理虚拟网络
-
4—VNet 对等连接是连接不同 VNets 的最具成本效益的解决方案。
-
1 和 4—你应该使用
az vm nic add来创建一个新的 NIC。然后你应该使用az network nic create将该 NIC 附加到PacktVM1。 -
1—你应该修改与
PacktVM1关联的虚拟网络接口的 IP 配置。
第十章,集成本地网络与 Azure 虚拟网络
-
2—你应该使用
Set-AzureRmLocalNetworkGatewaycmdlet。你需要重新配置本地网络网关来完成此操作。 -
2—你应该配置一个 Azure VPN 网关,以接受来自用户笔记本的点对站点 VPN 连接。
-
1—是的——因为你为每个区域配置了 VPN 网关,这种解决方案达到了目标。这将为用户提供最低的流量延迟。
第十一章,监控和排除虚拟网络故障
-
1—你应该使用 Network Performance Monitor 来监控网络流量。你也可以使用它来监控 ExpressRoute 连接上的网络流量。
-
2—你不需要在所有本地服务器上安装 Log Analytics 代理。你只需要在每个网络子网上安装代理,因此你至少需要安装四个代理。
-
2—不可以——网络监控器只能监控从 Azure 到本地网络的流量,而不能反向监控。你需要监控所有网络上的所有流量。
第十二章,Azure 安全组和 Azure DNS
-
2—你应该使用以下命令来添加 DNS:
New-AzDnsRecordSet -Name "@" -RecordType "A" -ZoneName "packtpub.com"-ResourceGroupName "MyAzureResourceGroup" -Ttl 600-DnsRecords (New-AzDnsRecordConfig -IPv4Address "<your web app IP address>")New-AzDnsRecordSet -ZoneName packtpub.com -ResourceGroupName PacktAzureResourceGroup-Name "@" -RecordType "txt" -Ttl 600-DnsRecords (New-AzDnsRecordConfig -Value "packtpub.azurewebsites.net") -
4—你应该先从第三方域名注册商处购买
packtpub.com域名,再进行其他操作。 -
3—你应该定义与每个应用程序层次结构对齐的 应用程序安全组(ASGs)。这将简化 Azure 中的网络管理,并使规则维护更加直接。
第十三章,实现 Azure 负载均衡器
-
1 和 4—你应该使用 Basic 层部署第二个负载均衡器,并使用该负载均衡器将流量路由到新的可用性集,或者删除旧的负载均衡器并使用 Standard 层创建一个新的负载均衡器。只有 Standard 层允许将流量路由到不同的可用性集。
-
2—你应该配置一个入站 网络地址转换 (NAT) 规则,将 TCP 端口
3389映射到 VM1。入站 NAT 规则用于将端口映射到 VM 的内部 IP 地址。 -
1—你应该创建一个新的健康探针,使用 HTTP 作为协议,并包括指向
NewVersion.html文件的路径。健康探针旨在测试端口或文件是否可以访问。
第十四章,管理 Azure Active Directory
-
1—你应该使用直接报告规则创建新的组。这将创建一个动态组,包含所有具有相同
ManagerID属性的成员。此规则还会相应地处理对组的更新。 -
2—你应该使用
New-AzureADMSInvitationcmdlet 通过 PowerShell 将外部用户添加到你的 Azure AD 租户。 -
4—你应该在资源组级别为用户账户分配 Contributor 角色。这将为用户提供在资源组级别的完整读/写访问权限,但不会授予用户在订阅或 Azure AD 级别的任何权限。
第十五章,实施和管理混合身份
-
2—你应该启用通过身份验证。这将为用户启用单一登录(SSO),并使公司能够使用 Azure MFA 实现双因素认证。
-
1—你应该重新运行 Azure AD Connect。这将执行 OU 筛选并刷新目录架构。
-
4—你应该部署 ADFS。使用该解决方案,用户可以通过 SSO 登录并使用智能卡认证。智能卡认证不支持 Azure AD Connect。
第十六章,实施多因素认证
-
1 和 3—两者,电话拨打和通过移动应用的通知都不需要用户在浏览器中输入代码。
-
2—你应该创建一个条件访问规则,以允许用户在访问应用程序时使用 MFA 或者域加入的设备。当使用域加入的设备时,规则不会强制要求 MFA。
-
3—你应该创建一个条件访问规则,要求对所有标记为中等风险及以上的风险登录进行 MFA 认证。Azure AD 可以根据一系列参数对所有登录尝试应用风险级别。你可以使用条件访问根据这些级别强制执行登录要求。
第十九章:评估
第一章,管理 Azure 订阅和资源组
-
不—你不能移动部署在可用性集内的使用托管磁盘的虚拟机。这是一个限制。
-
是—你可以通过 Azure 门户、PowerShell、CLI 和 REST API 创建资源组。
-
是—你可以通过 Azure 门户、PowerShell、CLI 和 REST API 删除资源组。
第二章,分析资源利用率和消耗
-
是—日志分析已集成在 Azure Monitor 中。然而,数据仍然存储在日志分析工作区内。
-
不—你不能使用 SQL。你需要使用 Kusto 查询语言查询数据。
-
不—操作组是唯一的收件人和操作集合,可以跨多个警报规则共享。
第三章,管理基于角色的访问控制
-
不—要分配权限给用户,你需要使用基于角色的访问控制。
-
是—你可以使用 Azure 策略检查你的 Azure 订阅中的所有虚拟机是否使用托管磁盘。
-
不—自定义策略是使用 JSON 创建的。
第四章,创建和配置存储帐户
-
不—你也可以下载适用于 Linux 和 macOS 的 Azure 存储资源管理器。
-
不—你也可以配置存储帐户,从本地网络访问。
-
不—你也可以稍后通过 Azure 门户、PowerShell 或 CLI 更改存储帐户的复制类型。
第五章,导入和导出数据到 Azure
-
是—磁盘需要加密,才能将数据复制到其中。
-
不—Azure CDN 默认不支持 CDN 端点主机名上的 HTTPS。
-
是—Azure 数据盒是一种物理设备,可以用于上传大量数据。该设备会被运送到 Azure,然后由 Microsoft 将数据上传到 Azure 数据中心。
第六章,配置 Azure 文件和实现 Azure 备份
-
是—Azure 备份也可以用于备份 Azure 文件。
-
是—Azure 备份支持备份由 MABS 和 DPM 保护的机器。
-
不—Azure 文件共享同步服务用于将本地文件共享的数据同步到 Azure。
第七章,创建和配置 Windows 和 Linux 虚拟机
-
是—你可以使用虚拟机规模集来自动化部署多个虚拟机。
-
是—通过使用可用性集,你可以将虚拟机分布在不同的故障和更新域中。
-
是—你可以使用资源提供程序,通过 ARM 模板在 Azure 中部署不同的工件。
第八章,管理 Azure 虚拟机和虚拟机备份
-
是—你可以使用 PowerShell 和 CLI 来移动、重新部署和调整 Windows 和 Linux 虚拟机的大小。你也可以通过 Azure 门户来移动它们。
-
不—你可以通过 Azure 门户、PowerShell 和 CLI 添加数据磁盘和网络接口。
-
不—自定义脚本扩展用于在部署后配置 Windows 机器。如果需要配置 macOS 机器,Chef 是更好的选择。
第九章,实现和管理虚拟网络
-
不—VNet 对等连接使用 Azure 的骨干基础设施;无需创建网关。
-
是的—通过定义用户自定义路由,您可以根据需求调整 VNet 中不同资源之间的路由。
-
不—只能将 IPv6 地址分配给外部负载均衡器。
第十章,集成本地网络与 Azure 虚拟网络
-
不—默认情况下,通过 ExpressRoute 电路的流量不会加密。然而,您可以创建一个加密 ExpressRoute 电路上流量的解决方案。
-
是的—点对站点 VPN 连接旨在通过互联网在单个客户端与虚拟网络之间建立安全连接。这种连接类型最适合需要在其他位置工作的员工。
-
是的—不允许将服务器托管在 NAT 后面。
第十一章,虚拟网络的监控与故障排除
-
不—Azure 网络监视器可以用于监控和诊断 Azure、本地环境和混合配置中的网络连接。
-
是的—IP 流验证可以用于验证出站连接。
-
是的—IP 流验证可以用于验证托管在 Azure 内的不同虚拟机之间的连接。
第十二章,Azure 安全组与 Azure DNS
-
是的—你可以将网络安全组与子网和网络接口同时关联。
-
不—您不能使用 Azure DNS 注册域名,但可以将现有域名重定向到 Azure DNS。
-
是的—截至写作时,私有 DNS 区域只能通过 PowerShell 和 CLI 进行配置。
第十三章,实现 Azure 负载均衡器
-
不—可以通过 Azure 门户、PowerShell 和 CLI 创建基本负载均衡器。
-
是的—对于标准负载均衡器,后端的虚拟机必须具备放置在网络安全组中的网络接口卡(NIC)。
-
是的—标准负载均衡器需要一个标准公共 IP 地址才能正常工作。
第十四章,管理 Azure Active Directory
-
是的—您需要使用
New-AzureADMSInvitation将来宾用户添加到 Azure AD 租户中。 -
不—可以在不将本地 Active Directory 连接到 Azure AD 的情况下使用 Azure AD Join。
-
是的—当您将自定义域添加到 Azure AD 时,需要通过向域注册商的 DNS 设置中添加 TXT 记录来验证该域。添加此记录后,您可以在 Azure 门户中验证域。
第十五章,实现与管理混合身份
-
不—如果在 Azure AD Connect 安装过程中使用 Express 设置,则默认启用密码哈希同步。
-
不—密码同步需要在本地域控制器和 Azure 门户中启用。
-
不—当本地森林名称与 Azure AD 自定义域名不匹配时,您仍然可以安装 Azure AD Connect,但在安装过程中会收到一个警告,提示您的用户未启用 SSO。
第十六章,实现多重身份验证
-
是的—受信任的 IP 地址用于绕过多重身份验证,对于某些 IP 地址,可以禁用 MFA。例如,您可以为从公司内网登录的用户禁用 MFA。
-
不——你可以使用条件访问策略来为用户和应用启用多因素认证(MFA)。
-
是的——欺诈警报只能在 MFA 服务器部署中启用。
第二十章:其他您可能感兴趣的书籍
如果您喜欢本书,您可能对 Packt 出版的其他书籍感兴趣:
Azure 中的实践云管理
Mustafa Toroman
ISBN: 978-1-78913-496-4
-
理解 IaaS 和 PaaS 的概念
-
学习 Azure 解决方案的设计模式
-
在 Azure 中设计数据解决方案
-
探索 Azure 的混合云概念
-
在云中实现 Azure 安全性
-
使用基于脚本的工具创建和管理 Azure 资源
Azure 中的实践 Linux 管理
Frederik Vos
ISBN: 978-1-78913-096-6
-
理解为什么 Azure 是处理开源工作负载的理想解决方案
-
掌握基本的 Linux 技能,学习如何在 Linux 环境中导航
-
在 Azure 环境中部署 Linux
-
使用配置管理来管理 Azure 中的 Linux
-
在 Azure 环境中管理容器
-
增强 Linux 安全性并使用 Azure 的身份管理系统
-
使用 Azure 资源管理器(ARM)和 Powershell 自动化部署
-
使用 Ansible 在 Azure 云环境中管理 Linux 实例
留下评论 - 让其他读者了解您的看法
请通过在您购买本书的网站上留下评论,与他人分享您对本书的想法。如果您是从 Amazon 购买的,请在本书的 Amazon 页面上留下真实的评论。这对其他潜在读者来说至关重要,因为他们可以看到并根据您的公正意见做出购买决策;同时我们也可以了解客户对我们产品的看法,作者也能看到他们与 Packt 合作创作的书籍的反馈。只需要几分钟时间,但对其他潜在客户、我们的作者和 Packt 来说都非常有价值。谢谢!


浙公网安备 33010602011771号