第一章:MCP AZ-104 考试概述与备考策略
Azure Administrator Associate(AZ-104)是微软认证专业人员(MCP)体系中的核心认证之一,面向负责管理 Microsoft Azure 环境的 IT 专业人员。该考试重点评估考生在Azure计算、网络、存储、身份管理以及监控等方面的实践能力。通过AZ-104认证,证明持证者具备部署、管理和维护Azure资源的综合技能。
考试核心内容范围
- 管理Azure身份与访问(基于Azure AD和RBAC)
- 配置与管理虚拟网络和混合连接
- 部署和管理虚拟机及规模集
- 实施存储账户安全与数据复制策略
- 监控Azure资源并配置警报与诊断日志
高效备考建议
| 阶段 | 建议活动 |
|---|
| 准备期 | 完成Microsoft Learn模块,如“Manage Azure identities and governance” |
| 实践期 | 在Azure免费账户中动手练习VM部署、NSG配置等常见任务 |
| 冲刺期 | 模拟考试训练,推荐使用Whizlabs或MeasureUp题库 |
常用命令示例
在管理Azure资源时,Azure CLI是高频使用工具。以下命令用于创建资源组并部署Linux虚拟机:
# 创建资源组
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端口
az vm open-port --port 22 --resource-group myResourceGroup --name myVM
上述命令依次执行资源初始化、虚拟机部署与网络安全组配置,体现了实际管理中的典型操作流程。
graph TD
A[开始备考] --> B[学习官方文档]
B --> C[动手实验]
C --> D[模拟测试]
D --> E[参加正式考试]
第二章:Azure计算资源管理模拟题解析
2.1 虚拟机部署与规模集配置实战
在云环境中,虚拟机(VM)的自动化部署与弹性伸缩是保障应用高可用的核心能力。通过Azure或AWS等平台,可快速创建虚拟机实例并纳入规模集中统一管理。
规模集配置要点
- 实例镜像选择:确保使用标准化操作系统镜像,便于后续批量维护;
- 自动扩展策略:基于CPU使用率或队列长度动态调整实例数量;
- 负载均衡集成:所有实例自动注册至后端池,实现流量分发。
ARM模板片段示例
{
"type": "Microsoft.Compute/virtualMachineScaleSets",
"name": "myScaleSet",
"location": "[resourceGroup().location]",
"properties": {
"sku": {
"name": "Standard_DS2_v2",
"capacity": 3
}
}
}
该配置定义了初始容量为3台的规模集,使用Standard_DS2_v2规格,适用于中等负载场景,支持运行时动态调整capacity值以实现扩缩容。
2.2 容器化服务与Azure Kubernetes集成
在现代云原生架构中,容器化服务通过与Azure Kubernetes Service(AKS)深度集成,实现高效、弹性的应用部署与管理。
部署流程自动化
利用Azure CLI或Terraform可快速创建AKS集群。以下为通过CLI创建集群的示例:
az aks create \
--resource-group myResourceGroup \
--name myAKSCluster \
--node-count 3 \
--enable-addons monitoring \
--generate-ssh-keys
该命令创建包含3个节点的AKS集群,并启用监控附加组件。参数
--enable-addons用于激活Azure Monitor等服务,提升可观测性。
服务编排优势
- 自动扩缩容:基于CPU/内存使用率动态调整Pod数量
- 滚动更新:无缝发布新版本,保障服务连续性
- 健康检查:Kubelet定期探测Pod状态,确保高可用
通过YAML定义Deployment和Service,实现声明式配置,提升环境一致性。
2.3 应用服务的配置与访问控制
在微服务架构中,应用服务的配置管理与访问控制是保障系统安全与灵活性的核心环节。通过集中化配置中心,可实现环境隔离与动态更新。
配置文件结构示例
server:
port: 8080
spring:
profiles: production
datasource:
url: jdbc:mysql://prod-db:3306/app
username: ${DB_USER}
password: ${DB_PASSWORD}
上述YAML配置通过占位符引入环境变量,实现敏感信息外置化,提升安全性。
基于角色的访问控制(RBAC)
- 用户:系统操作者,如管理员、普通用户
- 角色:定义权限集合,如“read_only”、“admin”
- 权限:具体操作能力,如“GET /api/users”
通过策略规则绑定角色与权限,实现细粒度访问控制,降低越权风险。
2.4 Azure Functions无服务器架构应用
Azure Functions 是微软提供的事件驱动、按需执行的无服务器计算服务,适用于轻量级任务处理与微服务集成。
函数触发机制
支持多种触发器,如 HTTP、Blob 存储、队列和定时任务。以下为一个典型的 HTTP 触发函数示例(C#):
[FunctionName("HttpTrigger")]
public static async Task<HttpResponse> Run(
[HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
return new OkObjectResult("Hello from Azure Function!");
}
该函数通过
HttpTrigger 属性监听 GET/POST 请求,
AuthorizationLevel.Function 确保调用需提供有效密钥。参数
HttpRequest req 封装请求数据,
ILogger 用于写入日志。
典型应用场景
- 实时文件处理:上传 Blob 后自动压缩或转换格式
- API 后端微服务:快速暴露轻量 REST 接口
- 定时任务调度:每日凌晨清理过期数据
2.5 计算资源监控与成本优化实践
监控指标采集与告警策略
通过Prometheus采集CPU、内存、磁盘I/O等核心指标,结合Grafana实现可视化展示。关键服务设置动态阈值告警,避免资源过载。
# Prometheus配置片段
scrape_configs:
- job_name: 'node_exporter'
static_configs:
- targets: ['10.0.0.1:9100']
上述配置定期抓取节点资源数据,target指定监控主机地址,job_name用于标识采集任务类型。
成本优化手段
- 使用Spot实例运行非关键批处理任务,降低成本达70%
- 自动伸缩组根据负载动态调整实例数量
- 闲置资源每日扫描并触发释放流程
| 实例类型 | vCPU | 单价(USD/小时) |
|---|
| m5.large | 2 | 0.096 |
| c5.xlarge | 4 | 0.17 |
第三章:网络与存储核心考点精讲
3.1 虚拟网络设计与子网划分实战
在构建企业级云网络时,合理的虚拟网络设计与子网划分是确保安全性和可扩展性的基础。通过CIDR(无类别域间路由)进行精确的IP地址规划,可以有效利用地址空间。
子网划分示例
假设拥有一个
10.0.0.0/24 网络,需划分为4个子网:
网络地址:10.0.0.0/26
子网掩码:255.255.255.192
可用主机数:62(每个子网)
子网分配:
- 子网1: 10.0.0.0/26 → 前端服务
- 子网2: 10.0.0.64/26 → 后端应用
- 子网3: 10.0.0.128/26 → 数据库
- 子网4: 10.0.0.192/26 → 管理网络
该划分方式通过借用2位主机位实现4个子网,满足功能隔离需求。
私有子网规划建议
- 按业务模块划分子网,提升安全性
- 预留足够IP容量,支持未来扩容
- 结合NSG(网络安全组)实施访问控制
3.2 存储账户类型选择与数据复制策略
在构建高可用云存储架构时,合理选择存储账户类型是性能与成本平衡的关键。Azure 提供通用型 v2、Blob 存储等账户类型,其中通用型 v2 支持多层级(Hot/Cool/Archive)和多种复制策略。
数据复制选项对比
| 复制模式 | 跨区域容灾 | 成本 |
|---|
| LRS | 否 | 低 |
| GRS | 是 | 中 |
| ZRS | 部分 | 较高 |
代码配置示例
{
"sku": {
"name": "Standard_ZRS",
"tier": "Standard"
},
"kind": "StorageV2",
"location": "eastus",
"properties": {
"accessTier": "Hot"
}
}
该 JSON 配置创建一个区域冗余存储账户(ZRS),适用于对读取可用性要求较高的场景。Standard_ZRS 确保数据在本地区域内跨三个可用区复制,提升持久性至 99.999999999%。
3.3 网络安全组与Azure防火墙配置
网络安全组(NSG)基础配置
网络安全组用于控制 Azure 资源的入站和出站流量。每个 NSG 可包含多个规则,按优先级顺序评估。
- 规则优先级:数值越小,优先级越高
- 协议支持:TCP、UDP、ICMP 或任意
- 目标端口范围:可指定单个端口或范围(如 80 或 1024-2048)
通过ARM模板配置NSG
{
"name": "web-nsg",
"type": "Microsoft.Network/networkSecurityGroups",
"properties": {
"securityRules": [
{
"name": "Allow-HTTP",
"properties": {
"protocol": "Tcp",
"sourcePortRange": "*",
"destinationPortRange": "80",
"sourceAddressPrefix": "Internet",
"destinationAddressPrefix": "*",
"access": "Allow",
"priority": 100,
"direction": "Inbound"
}
}
]
}
}
上述 JSON 定义了一个允许来自互联网的 HTTP 流量进入的规则。priority 为 100,确保其在其他高优先级规则之后执行;access 设为 Allow 表示放行流量。
Azure 防火墙协同防护
Azure 防火墙提供第7层防护与FQDN过滤能力,常与 NSG 配合使用形成纵深防御体系。NSG 处理基础访问控制,防火墙则负责应用层检测与威胁防护。
第四章:身份、安全与治理能力训练
4.1 Azure AD用户与组管理实操
在Azure AD中,用户与组的管理是身份控制的核心环节。通过门户或PowerShell可高效完成批量操作。
使用PowerShell创建用户
New-AzADUser -DisplayName "Alice Chen" `
-UserPrincipalName "alice.chen@contoso.com" `
-MailNickname "alice" `
-Password (ConvertTo-SecureString "P@ssw0rd!" -AsPlainText -Force)
该命令创建新用户,
DisplayName 设置显示名称,
UserPrincipalName 为登录名,
Password 需转换为安全字符串。适用于自动化部署场景。
组管理常用操作
- 安全组:用于权限分配和访问控制
- Microsoft 365组:包含邮件功能,适用于团队协作
- 动态成员组:基于规则自动更新成员
角色分配示例
| 角色 | 权限范围 |
|---|
| Global Administrator | 全量管理权限 |
| User Administrator | 仅用户生命周期管理 |
4.2 基于角色的访问控制(RBAC)应用
在现代系统安全架构中,基于角色的访问控制(RBAC)通过将权限与角色绑定,简化了用户权限管理。系统管理员不再为每个用户单独分配权限,而是通过角色进行批量授权。
核心模型组成
- 用户(User):系统操作者
- 角色(Role):权限集合的逻辑分组
- 权限(Permission):对资源的操作权,如读、写、删除
策略配置示例
roles:
- name: admin
permissions:
- resource: "/api/users"
actions: ["read", "write", "delete"]
- name: viewer
permissions:
- resource: "/api/dashboard"
actions: ["read"]
该YAML配置定义了两个角色:admin可管理用户资源,viewer仅能读取仪表盘。通过角色赋给用户,实现灵活且可审计的权限控制。
权限验证流程
用户请求 → 系统查询用户角色 → 获取角色权限 → 检查是否允许操作 → 返回结果
4.3 密钥保管库与敏感信息保护
在现代应用架构中,敏感信息如数据库密码、API密钥和加密密钥必须与代码分离并安全存储。密钥保管库(Key Vault)服务提供集中化管理机制,实现访问控制、轮换策略和审计日志。
主流密钥保管库服务对比
| 服务 | 提供商 | 核心特性 |
|---|
| Azure Key Vault | Microsoft | 与Azure AD集成,支持HSM保护 |
| AWS Secrets Manager | Amazon | 自动轮换RDS凭证 |
| Hashicorp Vault | 开源/企业版 | 动态密钥生成,多云支持 |
通过SDK访问密钥示例
package main
import (
"context"
"fmt"
"os"
"github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/secrets"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
)
func getSecretFromVault() {
vaultURL := os.Getenv("VAULT_URL")
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
panic(err)
}
client, err := secrets.NewClient(vaultURL, cred, nil)
if err != nil {
panic(err)
}
resp, err := client.GetSecret(context.Background(), "db-password", "", nil)
if err != nil {
panic(err)
}
fmt.Println("Retrieved secret:", *resp.Value)
}
上述Go代码使用Azure SDK获取密钥保管库中的机密。通过
azidentity.NewDefaultAzureCredential实现无缝身份验证,支持环境变量、托管标识等多种方式。调用
GetSecret时传入密钥名称即可获取加密值,避免硬编码凭据。
4.4 Azure Policy与合规性治理实践
Azure Policy 是实现云环境合规性治理的核心服务,通过预定义或自定义策略规则,强制实施资源配置标准。策略可在管理组、订阅或资源组级别分配,确保跨组织的一致性。
内置策略与自定义策略
Azure 提供超过 150 个内置策略,如“仅允许特定地理位置部署资源”或“禁止公共 Blob 存储”。对于特殊合规需求,可编写自定义策略定义。
{
"if": {
"field": "location",
"notIn": ["eastus", "westeurope"]
},
"then": {
"effect": "deny"
}
}
该策略拒绝在非指定区域创建资源。其中
field 指定评估属性,
effect 定义执行动作,
deny 效果阻止不符合的部署。
合规性报告与持续监控
策略分配后,Azure Policy 自动扫描资源并生成合规性报告。通过 Azure Compliance Manager 可集成外部审计框架,如 ISO 27001 或 HIPAA,实现统一视图管理。
第五章:全真模拟题库与考试冲刺建议
高效使用模拟题库的策略
- 每日限时完成一套模拟题,模拟真实考试环境,提升时间管理能力
- 重点分析错题,归类错误原因(如概念混淆、粗心、超时等)并建立错题档案
- 优先刷历年高频考点题目,例如网络协议栈行为、路由选择算法和安全机制
典型题目解析示例
// 模拟TCP三次握手状态机判断
func checkTCPHandshake(step int) string {
switch step {
case 1:
return "SYN sent"
case 2:
return "SYN-ACK received"
case 3:
return "ACK sent, connection established"
default:
return "invalid step"
}
}
// 实际考试中常考察状态转换顺序与丢包处理机制
冲刺阶段时间规划表
| 时间段 | 任务内容 | 目标 |
|---|
| 考前14天 | 完成第一轮全真模拟(共5套) | 识别知识盲区 |
| 考前7天 | 重做错题 + 专项训练(如子网划分) | 巩固薄弱环节 |
| 考前3天 | 模拟考场环境进行最终测试 | 调整生物钟与答题节奏 |
实战技巧:标记与回溯机制
在线考试系统通常支持题目标记功能。建议:
- 遇到耗时超过2分钟仍无思路的题目,立即标记并跳过
- 完成所有可答题目后,统一返回处理标记题
- 利用排除法对不确定选项进行概率优化