第一章:MCP AZ-104 考试概览与备考策略
考试目标与认证价值
AZ-104 是微软认证 Azure 管理员的核心考试,旨在验证考生在部署、管理与监控 Azure 基础设施方面的实际能力。通过该认证,IT 专业人员可证明其具备在企业级环境中配置虚拟网络、管理身份权限(Azure AD)、维护存储解决方案以及实施备份与恢复策略的专业技能。该认证是通往 Azure Solutions Architect 等高级角色的重要基础。
考试内容结构
AZ-104 考试涵盖五大核心领域,权重分布如下:
| 知识领域 | 占比 |
|---|
| 管理 Azure 身份与访问控制 | 20-25% |
| 管理 Azure 平台资源 | 15-20% |
| 实施与管理存储 | 15-20% |
| 部署与管理虚拟机 | 20-25% |
| 配置与管理虚拟网络 | 20-25% |
高效备考建议
- 使用 Microsoft Learn 平台完成官方学习路径,如“Manage Azure identities and governance”模块
- 在 Azure 免费账户中动手实践常见任务,例如创建资源组、配置 NSG 规则或部署 VM 扩展
- 定期模拟考试环境,推荐使用 MeasureUp 或 Whizlabs 提供的练习题
常用 CLI 操作示例
以下命令展示如何通过 Azure CLI 创建资源组并部署 Linux 虚拟机:
# 登录 Azure 账户
az login
# 创建资源组(指定区域)
az group create --name myResourceGroup --location eastus
# 创建基于 Ubuntu 的虚拟机
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image Ubuntu2204 \
--admin-username azureuser \
--generate-ssh-keys
# 开放 SSH 端口 22
az vm open-port --port 22 --resource-group myResourceGroup --name myVM
上述指令依次执行登录、资源初始化和虚拟机部署,适用于快速搭建测试环境。建议在沙箱环境中反复练习以熟悉参数逻辑。
第二章:Azure计算资源管理高频错题解析
2.1 虚拟机部署与规模集配置的常见误区
在虚拟机(VM)部署和虚拟机规模集(VMSS)配置过程中,开发者常因忽略自动化与一致性原则而导致资源浪费或扩展失败。
未启用自动缩放策略
许多团队手动设置实例数量,忽视了负载动态变化。正确的做法是定义基于CPU使用率的自动缩放规则:
{
"apiVersion": "2021-04-01",
"type": "Microsoft.Insights/autoscalesettings",
"properties": {
"enabled": true,
"targetResourceUri": "/subscriptions/{sub-id}/resourceGroups/{rg}/providers/Microsoft.Compute/virtualMachineScaleSets/myScaleSet",
"profiles": [{
"name": "Auto Scale based on CPU",
"capacity": { "minimum": "2", "maximum": "10", "default": "2" },
"rules": [{
"metricTrigger": {
"metricName": "Percentage CPU",
"statistic": "Average",
"timeGrain": "PT1M",
"timeWindow": "PT5M",
"threshold": 70,
"operation": "GreaterThan"
},
"scaleAction": { "direction": "Increase", "type": "ChangeCount", "value": "1" }
}]
}]
}
}
该配置确保当平均CPU超过70%持续5分钟时,自动增加1个实例,避免性能瓶颈。
镜像更新未纳入规模集升级策略
使用“手动”升级模式却未轮换实例,导致新镜像无法生效。应设置“滚动升级”并限制批次大小,确保服务不中断的同时完成全量更新。
2.2 容器实例与Azure Kubernetes服务的选择逻辑
在Azure云环境中,选择容器实例(ACI)还是Azure Kubernetes服务(AKS),需根据应用规模与运维复杂度进行权衡。
轻量级部署:Azure容器实例
适用于快速启动单个容器的场景。使用ACI可免去集群管理开销,适合测试或短期任务。
{
"name": "mycontainer",
"properties": {
"containers": [{
"name": "nginx",
"image": "nginx",
"ports": [{ "port": 80 }]
}],
"osType": "Linux",
"resources": { "requests": { "cpu": 1, "memoryInGB": 1.5 } }
}
}
该模板定义了一个Nginx容器请求1核CPU和1.5GB内存,适用于ACI的简单部署模型。
生产级编排:Azure Kubernetes服务
当应用需要自动伸缩、服务发现和高可用时,AKS成为首选。它支持多节点集群、负载均衡与滚动更新。
- ACI:适合开发、测试、突发任务
- AKS:适用于微服务架构与生产环境
2.3 磁盘加密与可用性集的实际应用陷阱
加密启用后的实例启动失败
在Azure或AWS等云平台中,对已加入可用性集的虚拟机启用磁盘加密时,常因扩展依赖顺序错误导致实例无法启动。典型表现为加密扩展在操作系统准备就绪前执行。
{
"type": "Microsoft.Compute/virtualMachines/extensions",
"name": "myVM/azureDiskEncryption",
"properties": {
"publisher": "Microsoft.Azure.Security",
"type": "AzureDiskEncryption",
"autoUpgradeMinorVersion": true,
"settings": {
"EncryptionOperation": "EnableEncryption"
}
}
}
上述配置需确保虚拟机已安装并初始化Guest Agent服务,否则加密进程将中断启动流程。
可用性集与加密密钥管理冲突
- 密钥保管库未启用“对部署启用”会导致资源创建失败
- 跨区域复制密钥时延迟引发解密超时
- 策略限制阻止系统分配身份访问密钥
2.4 自动化扩展策略的参数设置与验证方法
在自动化扩展策略中,合理配置参数是确保系统弹性响应的关键。常见的核心参数包括伸缩阈值、冷却时间、最小/最大实例数以及监控周期。
关键参数配置示例
- 伸缩阈值:如 CPU 使用率超过 70% 触发扩容;
- 冷却时间:设置为 300 秒,防止频繁伸缩;
- 实例边界:最小实例数为 2,最大为 10,保障稳定性与成本平衡。
策略验证方法
通过模拟负载测试验证策略有效性,结合监控指标进行闭环反馈。
threshold: cpu_utilization > 70%
cooldown: 300s
min_instances: 2
max_instances: 10
polling_interval: 60s
上述配置逻辑表明:每 60 秒检测一次 CPU 使用率,若持续超过 70%,则触发扩容流程,执行后进入 5 分钟冷却期,避免震荡。该策略可通过压力测试工具(如 JMeter)注入流量,观察实例动态调整行为是否符合预期。
2.5 备份与恢复操作中的典型错误分析
忽视备份完整性验证
许多管理员在执行备份后未进行完整性校验,导致恢复时才发现数据损坏。定期使用校验命令确认备份可用性至关重要。
恢复路径配置错误
常见的恢复失败源于目标路径配置不当。例如,在 PostgreSQL 中执行:
pg_restore --verbose --clean --no-owner --dbname=myapp_staging /backups/backup.dump
若未确保
myapp_staging 数据库存在或权限正确,将导致恢复中断。参数说明:
--clean 在还原前清理旧对象,
--no-owner 避免所有权设置冲突。
时间点恢复(PITR)误区
- 未启用 WAL 归档即尝试 PITR 恢复
- 误删 recovery.conf 或忽略 restore_command 配置
- 未标记恢复结束即重启数据库,造成二次损坏
第三章:网络与身份管理核心难题突破
3.1 虚拟网络对等连接与路由表配置实战
在多VPC架构中,虚拟网络对等连接实现跨网络互通。首先创建对等连接并接受请求:
aws ec2 create-vpc-peering-connection --vpc-id vpc-1a2b3c --peer-vpc-id vpc-4d5e6f
aws ec2 accept-vpc-peering-connection --vpc-peering-connection-id pcx-abc123
需在两端VPC的路由表中添加指向对等连接的路由规则,目标CIDR为对方子网,下一跳为对等连接ID。
路由表配置要点
- 确保路由条目覆盖对方子网范围
- 检查安全组和网络ACL是否允许通信流量
- 避免CIDR重叠导致路由冲突
典型应用场景
数据中心迁移、跨区域服务调用、多租户隔离环境互联均依赖精确的路由控制。
3.2 Azure防火墙与NSG规则优先级冲突解析
在Azure网络架构中,网络安全组(NSG)和Azure防火墙协同工作以保障资源安全,但二者规则优先级的叠加可能导致流量控制异常。
规则评估顺序机制
NSG在子网或网卡级别直接过滤流量,优先级范围为100–4096,数值越小优先级越高。Azure防火墙则位于虚拟网络边界,通过中心化策略执行应用级过滤,其规则优先级独立于NSG。
典型冲突场景
当NSG阻止某流量而防火墙允许时,若NSG规则优先级更高,流量将被提前拒绝,导致防火墙策略无法生效。
- NSG规则优先级:100–4096(值越小,优先级越高)
- Azure防火墙规则:基于集合与优先级数字(如100、200)
- 流量路径:客户端 → NSG → Azure防火墙 → 目标资源
{
"priority": 100,
"direction": "Inbound",
"access": "Allow",
"protocol": "TCP",
"destinationPortRange": "80"
}
上述NSG规则允许HTTP流量进入,若优先级为100,则高于其他高数值规则,确保先匹配。需确保NSG放行流量后,Azure防火墙可继续处理。
3.3 基于角色的访问控制(RBAC)权限分配陷阱
权限爆炸:角色冗余的典型问题
当系统中角色数量无节制增长时,容易出现“权限爆炸”。例如,为每个部门创建独立角色会导致大量重复权限配置。
- 角色定义缺乏抽象层级
- 权限粒度过于细化
- 未使用角色继承机制
代码示例:不合理的角色分配
roles:
- name: finance-viewer
permissions: [read:ledger]
- name: finance-editor
permissions: [read:ledger, write:ledger]
- name: hr-viewer
permissions: [read:employees]
# 更多类似角色...
上述配置未提取共性,导致维护成本高。应通过角色继承或权限组进行抽象。
推荐模型:分层角色结构
| 角色 | 继承自 | 附加权限 |
|---|
| admin | editor | manage:users |
| editor | viewer | write:data |
| viewer | - | read:data |
第四章:存储与监控服务典型考题精讲
4.1 存储账户冗余选项与访问密钥管理误区
冗余策略的选择影响数据持久性
Azure 存储账户提供多种冗余选项,包括 LRS、ZRS、GRS 和 GZRS。每种方案在成本、容灾能力和同步机制上存在差异。
| 冗余类型 | 数据复制范围 | 跨区域复制 | 恢复点目标 |
|---|
| LRS | 同一区域内的三个副本 | 否 | 数小时 |
| GRS | 主区域+次要区域各三副本 | 是 | 数小时 |
访问密钥管理常见错误
开发者常将存储密钥硬编码在配置文件中,导致安全风险。应使用 Azure Key Vault 托管密钥,并通过托管身份访问。
{
"connectionString": "DefaultEndpointsProtocol=https;AccountName=mystorage;
AccountKey=your-key;EndpointSuffix=core.windows.net"
}
上述连接字符串包含 AccountKey,若泄露可导致数据被非法读写。建议替换为 SAS 令牌或基于角色的访问控制(RBAC)。
4.2 Blob生命周期策略与跨区域复制配置实践
生命周期管理策略配置
通过定义生命周期规则,可自动将Blob数据在不同访问层间迁移或删除。例如,以下策略将在对象创建30天后转为归档层,90天后删除:
{
"rules": [
{
"name": "transition-to-archive",
"enabled": true,
"type": "Lifecycle",
"definition": {
"filters": {
"blobTypes": ["blockBlob"],
"prefixMatch": ["logs/"]
},
"actions": {
"baseBlob": {
"tierToArchive": { "daysAfterModificationGreaterThan": 30 },
"delete": { "daysAfterModificationGreaterThan": 90 }
}
}
}
}
]
}
该配置适用于日志类冷数据,有效降低存储成本。
跨区域复制机制
启用跨区域复制(CRR)前需在源和目标存储账户中开启Blob版本控制,并配置复制策略。下表列出关键参数:
| 参数 | 说明 |
|---|
| SourceAccount | 源存储账户,需启用变更通知 |
| DestinationAccount | 目标账户,必须位于不同区域 |
| ReplicationRules | 定义复制的容器与Blob前缀过滤 |
4.3 Azure Monitor日志查询与警报规则设计要点
在构建高效的监控体系时,Azure Monitor的日志查询与警报规则设计至关重要。合理的查询语句能精准提取关键指标,而科学的警报策略可有效减少误报。
日志查询最佳实践
使用Kusto查询语言(KQL)时,应优先过滤时间范围和关键字段以提升性能:
Heartbeat
| where TimeGenerated > ago(1h)
| where Computer contains "prod"
| summarize heartbeat_count = count() by Computer, _ResourceId
| where heartbeat_count < 3
该查询首先限定最近一小时数据,再按主机聚合心跳次数,识别可能失联的生产服务器,避免全表扫描。
警报规则设计原则
- 设置合理的评估频率与窗口大小,平衡实时性与资源消耗
- 利用动态阈值适应周期性负载变化
- 通过行动组实现多通道通知(邮件、短信、Webhook)
4.4 Log Analytics工作区数据源接入常见问题
数据类型不匹配
当自定义日志数据上传至Log Analytics工作区时,常见问题是字段类型被错误推断。例如,数值型字段被识别为字符串,影响查询效率。
{
"TimeGenerated": "2023-04-01T12:00:00Z",
"Duration": "123",
"Status": "Success"
}
上述JSON中,
Duration 应为整型,但因引号被识别为字符串。解决方案是在数据发送前确保类型正确,或使用Kusto查询语言在 ingestion-time 转换。
网络连接失败
数据源服务器若无法访问
*.ods.opinsights.azure.com,会导致数据传输中断。建议检查防火墙规则,并允许以下端口:
- HTTPS (443) 出站访问
- 代理配置需支持SNI
数据延迟监控
可通过以下Kusto查询验证最新数据到达时间:
Heartbeat
| summarize max(TimeGenerated) by Computer
若最大时间戳滞后超过5分钟,需排查代理健康状态或Workspace配额限制。
第五章:通过AZ-104后的职业发展路径建议
深化Azure技术栈,拓展专业方向
获得AZ-104认证后,管理员可进一步选择专项路径,如Azure安全工程师(AZ-500)、Azure解决方案架构师(AZ-305)或DevOps工程师(AZ-400)。例如,专注于安全领域时,可配置Azure Key Vault与条件访问策略:
{
"policy": "Require MFA for Admin Access",
"conditions": {
"userRisk": "mediumOrHigh",
"signInRisk": "high"
},
"accessControls": {
"grantControl": "requireMultiFactorAuth"
}
}
结合DevOps实践提升自动化能力
企业普遍采用CI/CD流水线部署资源。掌握Azure DevOps或GitHub Actions实现IaC(基础设施即代码)至关重要。以下为典型部署流程:
- 使用Azure CLI或PowerShell编写资源部署脚本
- 将脚本集成至Azure Pipelines的YAML配置
- 通过Service Principal实现安全身份认证
- 在非生产环境中执行阶段性验证
构建实际项目经验以增强竞争力
参与真实项目是突破职业瓶颈的关键。某金融客户案例中,管理员通过迁移本地Active Directory至Azure AD Domain Services,减少混合环境管理复杂度,并利用NSG规则实现子网级访问控制。
| 技能方向 | 推荐认证 | 平均薪资(USD) |
|---|
| 安全运维 | AZ-500 | 110,000 |
| 架构设计 | AZ-305 | 130,000 |
| DevOps工程 | AZ-400 | 125,000 |