第一章:AZ-104考试概述与核心能力要求
AZ-104 是微软 Azure 管理员认证的核心考试,旨在验证考生在部署、管理及监控 Azure 环境方面的实际操作能力。该认证面向具备一定云基础的 IT 专业人员,要求掌握资源管理、虚拟网络配置、身份安全控制以及备份与恢复策略等关键技能。
考试目标概览
AZ-104 考核内容涵盖多个技术维度,主要包括:
- 管理 Azure 身份和治理,如通过 Azure Active Directory 和 RBAC 控制访问权限
- 配置和管理虚拟网络,包括 VNet 对等互连、网络安全组(NSG)规则设置
- 部署和管理虚拟机及其扩展,支持 Windows 和 Linux 工作负载
- 实现存储解决方案,例如 Blob 存储生命周期管理与文件共享配置
- 备份与监控,利用 Recovery Services 保管库和 Azure Monitor 实现高可用性保障
核心命令示例
在日常管理中,Azure CLI 是高效执行任务的重要工具。以下命令用于创建资源组并部署虚拟网络:
# 创建资源组
az group create --name MyResourceGroup --location eastus
# 创建虚拟网络
az network vnet create \
--resource-group MyResourceGroup \
--name MyVNet \
--address-prefix 10.0.0.0/16 \
--subnet-name default \
--subnet-prefix 10.0.1.0/24
上述命令首先定义资源的地理区域,随后配置具有子网划分的虚拟网络,为后续部署 VM 或应用服务奠定基础。
能力权重分布
| 技能领域 | 权重占比 |
|---|
| 管理 Azure 身份和治理 | 25–30% |
| 实施和管理存储 | 15–20% |
| 部署和管理 Azure 计算资源 | 20–25% |
| 配置和管理虚拟网络 | 20–25% |
| 监控和备份 Azure 资源 | 10–15% |
第二章:Azure计算资源管理模拟题解析
2.1 虚拟机部署与规模集配置实战
在Azure环境中,虚拟机部署可通过门户、CLI或ARM模板实现。使用Azure CLI可快速创建单个虚拟机实例:
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image Ubuntu2204 \
--size Standard_B2s \
--admin-username azureuser \
--generate-ssh-keys
上述命令创建基于Ubuntu 22.04的虚拟机,采用Standard_B2s规格,适用于轻量级工作负载。参数
--generate-ssh-keys自动配置SSH认证,提升安全性。
对于高可用场景,推荐使用虚拟机规模集(VMSS),支持自动横向扩展。通过以下JSON片段定义规模集容量策略:
| 属性 | 说明 |
|---|
| sku.capacity | 初始实例数量,如设置为3则启动3台VM |
| overprovision | 是否启用超额配置,加快扩容速度 |
结合自动缩放规则,可根据CPU使用率动态调整实例数,实现资源效率与性能的平衡。
2.2 可用性区域与容灾策略设计
在分布式系统架构中,可用性区域(Availability Zone, AZ)是实现高可用性的核心单元。通过跨多个AZ部署关键组件,系统可在单个区域故障时自动切换流量,保障业务连续性。
多区域部署策略
典型的容灾设计采用“主-备”或“主-主”模式。主-主模式通过全局负载均衡器将请求分发至不同AZ,提升资源利用率与响应速度。
数据同步机制
为确保数据一致性,常采用异步复制与仲裁日志技术。以下为基于Raft协议的节点配置示例:
type RaftConfig struct {
ElectionTimeout time.Duration // 选举超时时间,建议150-300ms
HeartbeatInterval time.Duration // 心跳间隔,通常为ElectionTimeout的1/3
EnableSnapshot bool // 启用快照以减少日志体积
}
该配置确保在多数节点存活的前提下,集群可快速完成领导者选举并维持数据冗余。参数需根据网络延迟调优。
故障切换流程
| 步骤 | 操作 |
|---|
| 1 | 监控系统检测主节点失联 |
| 2 | 触发选举协议选出新领导者 |
| 3 | DNS/负载均衡更新路由指向新主 |
| 4 | 客户端重连并恢复服务 |
2.3 Azure Kubernetes服务(AKS)集群管理
集群创建与配置
通过Azure CLI可快速部署AKS集群。以下命令创建一个包含三个节点的集群:
az aks create \
--resource-group myResourceGroup \
--name myAKSCluster \
--node-count 3 \
--enable-addons monitoring \
--generate-ssh-keys
该命令中,
--node-count指定工作节点数量,
--enable-addons启用日志监控插件,提升运维可观测性。
节点自动伸缩
AKS支持集群自动伸缩器(Cluster Autoscaler),根据负载动态调整节点数量。需预先设置最小和最大节点数:
- 最小节点数保障基础服务能力
- 最大节点数防止资源过度消耗
升级与维护
AKS提供受控的版本升级路径,支持逐级更新控制平面与节点池,确保业务连续性。定期维护窗口可自动化执行安全补丁更新。
2.4 磁盘加密与安全性合规实践
在企业级存储架构中,磁盘加密是保障数据静态安全的核心手段。通过全盘加密(Full Disk Encryption, FDE)或文件级加密,可有效防止物理设备丢失导致的数据泄露。
主流加密技术对比
- LUKS:Linux平台广泛使用的磁盘加密标准,支持多密钥管理;
- BitLocker:Windows系统集成的加密方案,与TPM芯片深度集成;
- dm-crypt:基于内核的加密层,常与LUKS配合使用。
加密配置示例
# 使用cryptsetup初始化LUKS加密卷
cryptsetup luksFormat /dev/sdb1
# 打开加密卷并映射为逻辑设备
cryptsetup open /dev/sdb1 encrypted_data
# 创建文件系统并挂载
mkfs.ext4 /dev/mapper/encrypted_data
mount /dev/mapper/encrypted_data /mnt/secure
上述命令依次完成设备加密、解密映射与挂载。其中
luksFormat会销毁原有数据,需谨慎操作;
cryptsetup open通过密码或密钥文件解锁设备。
合规性要求对齐
| 标准 | 要求 | 实现方式 |
|---|
| GDPR | 个人数据保护 | 静态数据加密+访问审计 |
| ISO 27001 | 信息安全控制 | 加密策略+密钥生命周期管理 |
2.5 自动化扩展与监控告警设置
弹性伸缩策略配置
在高并发场景下,系统需根据负载自动调整资源。Kubernetes 中可通过 HorizontalPodAutoscaler 实现基于 CPU 使用率的自动扩缩容。
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: web-app-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: web-app
minReplicas: 2
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70
该配置表示当 CPU 平均使用率超过 70% 时,Deployment 将自动扩容副本数,最多至 10 个,确保服务稳定性。
监控与告警集成
通过 Prometheus 采集指标,并结合 Alertmanager 设置多级告警规则,支持邮件、企业微信等通知方式,实现故障秒级响应。
第三章:网络与存储服务应用题剖析
3.1 虚拟网络规划与子网划分实战
在构建企业级云环境时,合理的虚拟网络规划是保障系统安全与性能的基础。子网划分不仅能提升网络效率,还可通过隔离机制增强安全性。
子网划分设计原则
建议根据业务模块划分子网,如Web层、应用层和数据库层分别部署在不同子网中,并通过安全组和网络ACL进行访问控制。
CIDR与子网计算示例
以
10.0.0.0/24 网络为例,需划分为4个子网:
# 划分 /26 子网,每个支持62台主机
Subnet 1: 10.0.0.0/26 → 10.0.0.1 ~ 10.0.0.62
Subnet 2: 10.0.0.64/26 → 10.0.0.65 ~ 10.0.0.126
Subnet 3: 10.0.0.128/26 → 10.0.0.129 ~ 10.0.0.190
Subnet 4: 10.0.0.192/26 → 10.0.0.193 ~ 10.0.0.254
上述划分方式利用固定长度子网掩码(FLSM),确保各子网容量一致,适用于规模对称的架构场景。其中,
/26 表示前26位为网络位,剩余6位用于主机寻址,可容纳
2^6 - 2 = 62 个可用IP。
子网资源配置对比
| 子网名称 | CIDR | 可用主机数 | 用途 |
|---|
| web-subnet | 10.0.0.0/26 | 62 | 前端服务器 |
| app-subnet | 10.0.0.64/26 | 62 | 应用服务 |
| db-subnet | 10.0.0.128/26 | 62 | 数据库实例 |
3.2 Azure DNS与私有链接服务配置
在Azure环境中,私有链接服务(Private Link)结合Azure DNS实现内部资源的安全访问。通过将私有终结点映射到私有DNS区域,可确保流量始终保留在Azure骨干网内。
私有DNS区域配置示例
{
"name": "privatelink.database.windows.net",
"type": "Microsoft.Network/privateDnsZones",
"properties": {
"zoneType": "Private"
}
}
该模板定义了一个专用于数据库私有链接的DNS区域,名称必须匹配私有链接服务的FQDN格式。
关键配置步骤
- 创建私有DNS区域并关联虚拟网络
- 为私有终结点自动生成A记录
- 启用自动注册功能以减少手动维护
通过正确配置DNS解析链路,可实现从虚拟网络内无缝访问PaaS服务的私有实例,同时避免公网暴露。
3.3 存储账户冗余机制与数据访问策略
冗余机制类型
Azure 存储账户提供多种冗余选项以保障数据持久性。常见的包括 LRS、ZRS、GRS 和 GZRS,分别在本地、区域和跨区域层面实现副本复制。
- LRS(本地冗余):在同一数据中心内复制数据三次
- GRS(异地冗余):主区域LRS + 跨区域异步复制
- GZRS:结合 ZRS 与 GRS,提供最高可用性
数据访问策略配置
通过 Azure CLI 可设置存储账户的访问层级:
az storage account create \
--name mystorageaccount \
--resource-group mygroup \
--kind StorageV2 \
--access-tier Hot \
--enable-hierarchical-namespace true
上述命令创建一个启用了分层命名空间的通用 v2 存储账户,并将访问层级设为“热”,适用于频繁读写的场景。“冷”层级则适合长期存储且访问频率低的数据,可显著降低存储成本。
第四章:身份、安全与治理综合题解析
4.1 基于角色的访问控制(RBAC)策略实施
在现代系统安全架构中,基于角色的访问控制(RBAC)通过将权限与角色绑定,简化了用户权限管理。系统首先定义角色,再将角色分配给用户,最终实现细粒度的访问控制。
核心组件结构
- 用户(User):系统操作的主体
- 角色(Role):权限的集合
- 权限(Permission):对资源的操作权
- 资源(Resource):受保护的对象,如API接口或数据表
策略配置示例
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: default
name: pod-reader
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list"]
上述YAML定义了一个名为
pod-reader 的角色,允许在 default 命名空间中读取 Pod 资源。其中
verbs 指定可执行的操作类型,
resources 明确作用对象。
权限映射关系
| 用户 | 角色 | 权限 |
|---|
| alice | admin | create, read, update, delete |
| bob | viewer | read |
4.2 Azure密钥保管库与证书管理实战
在Azure环境中,安全地存储和管理加密密钥、密码及SSL证书是保障应用安全的核心环节。Azure密钥保管库(Key Vault)提供集中化的安全管理平台,支持RBAC权限控制与审计日志追踪。
创建密钥保管库实例
使用Azure CLI快速部署Key Vault:
az keyvault create \
--name "my-keyvault-prod" \
--resource-group "rg-security" \
--location "eastus" \
--enabled-for-deployment true
上述命令创建名为
my-keyvault-prod的保管库,启用虚拟机和应用部署访问权限。
--enabled-for-deployment确保资源可被云服务读取。
证书生命周期管理
通过门户或CLI导入或签发证书,系统自动集成App Service或AKS集群。下表展示常用操作映射:
| 操作 | Azure CLI 命令 |
|---|
| 导入证书 | az keyvault certificate import |
| 获取证书 | az keyvault secret show --name cert-name |
4.3 安全中心策略评估与合规整改
策略扫描与风险识别
安全中心通过定期扫描资源配置,识别偏离预设安全基线的实例。系统依据CIS、等保2.0等合规标准,自动生成风险项清单。
- 检测未启用日志审计的云服务器
- 识别暴露在公网的数据库实例
- 发现权限过宽的IAM策略
自动化合规修复示例
针对常见配置偏差,可通过脚本批量修复。以下为使用Terraform修正S3存储桶公开访问的代码:
resource "aws_s3_bucket_public_access_block" "example" {
bucket = aws_s3_bucket.example.id
block_public_acls = true
block_public_policy = true
ignore_public_acls = true
restrict_public_buckets = true
}
该配置确保S3存储桶拒绝任何公共访问策略,符合最小权限原则。参数
block_public_policy防止附加允许公网访问的策略,从根源阻断数据泄露风险。
4.4 资源锁与Azure Policy治理实践
在Azure环境中,资源锁与Azure Policy是实现治理控制的核心机制。资源锁用于防止对关键资源的意外删除或修改,支持“ReadOnly”和“CanNotDelete”两种模式。
资源锁配置示例
{
"properties": {
"level": "CanNotDelete",
"notes": "防止生产环境资源被误删"
}
}
该JSON定义了一个“CanNotDelete”级别的锁,应用于资源组或资源,确保即使具有写权限的用户也无法删除资源。
Azure Policy实施策略
- 审计虚拟机是否启用托管磁盘
- 强制所有资源打上合规标签
- 限制公网IP地址的创建
通过策略赋值,可在订阅级别统一执行合规性规则,结合Initiative实现多策略集合管理。
第五章:备考策略与高分通关建议
制定个性化学习计划
成功的备考始于科学的时间管理。建议使用甘特图或任务看板工具(如Jira或Trello)规划每日学习任务,确保覆盖所有考试大纲知识点。例如,将30天划分为三个阶段:基础夯实、专项突破、模拟冲刺。
高频考点实战训练
以下Go语言代码展示了如何通过并发测试提升系统性能理解能力,这在云计算认证考试中尤为关键:
package main
import (
"fmt"
"sync"
"time"
)
func main() {
var wg sync.WaitGroup
tasks := []string{"task-1", "task-2", "task-3"}
for _, task := range tasks {
wg.Add(1)
go func(t string) { // 并发执行模拟多线程处理
defer wg.Done()
fmt.Printf("Processing %s at %v\n", t, time.Now())
time.Sleep(500 * time.Millisecond)
}(task)
}
wg.Wait()
}
错题复盘与知识巩固
建立错题本是提分关键。可采用如下表格记录典型错误案例:
| 题目编号 | 错误知识点 | 正确解法 | 反思笔记 |
|---|
| Q207 | TCP三次握手状态迁移 | SYN → SYN-ACK → ACK | 混淆了服务端与客户端初始状态 |
| Q315 | Istio流量镜像配置 | mirrorPercent字段设置为20 | 未注意YAML缩进层级 |
全真模拟环境搭建
- 每周完成一次限时模拟考试,使用AWS Educate或Azure Sandbox创建真实操作环境
- 利用Wireshark抓包分析协议交互过程,加深网络层理解
- 结合Prometheus+Grafana监控实验集群资源使用,提升运维敏感度