AZ-500 · LAB 01 ~45 phút Chương 01 Bắt buộc làm trước Cơ bản

Tạo Môi Trường Tenant Lab cho AZ-500

Chuẩn bị đầy đủ môi trường học tập bảo mật Azure: kiểm tra tenant, gán subscription, tạo resource group theo naming convention, bật audit log và sign-in log trong Microsoft Entra ID — nền tảng cho toàn bộ 50 lab còn lại.

🎯 Mục Tiêu Lab

Kiểm tra và xác nhận thông tin tenant Microsoft Entra ID hiện tại

Kiểm tra subscription đang gắn với tenant nào, xác nhận quyền Owner

Tạo resource group chuẩn theo naming convention AZ-500

Áp dụng naming convention nhất quán cho toàn bộ khóa học

Bật Audit Log và Sign-in Log trong Microsoft Entra ID

Thiết lập Budget Alert $50 để tránh phát sinh chi phí ngoài ý muốn

📋 Chuẩn Bị

Yêu cầu:
  • Azure subscription đang Active
  • Quyền Global Administrator hoặc Privileged Role Administrator trên tenant
  • Quyền Owner trên subscription lab
  • Azure CLI đã cài đặt (az version ≥ 2.50)
Lưu ý:
  • Lab này không tạo resource tốn tiền
  • Audit log yêu cầu Microsoft Entra ID P1/P2 để lưu log đầy đủ
  • Region mặc định dùng xuyên suốt: southeastasia
  • Giữ nguyên resource group lab01 cho các lab tiếp theo

🏗️ Kịch bản & Tài Nguyên

Bạn là Azure Security Engineer mới được giao nhiệm vụ thiết lập môi trường Azure Security Lab cho doanh nghiệp. Việc đầu tiên là xác nhận tenant, subscription, tạo cấu trúc resource group chuẩn và bật monitoring — đây là nền tảng Zero Trust cho toàn bộ khóa học.

Tenant
*.onmicrosoft.com
Resource Group
rg-az500-ch01-identity
Region
southeastasia (Singapore)

🧪 Các Bước Thực Hiện

1

Kiểm Tra Thông Tin Tenant Hiện Tại

Xác nhận tenant ID, domain và quyền hạn trước khi bắt đầu bất kỳ lab nào.

Cách 1 — Azure Portal
1. Truy cập https://portal.azure.com
2. Tìm kiếm "Microsoft Entra ID" → Overview
3. Ghi nhận: Tenant ID, Primary domain (*.onmicrosoft.com)
4. Menu trái → Properties → xem Tenant ID và Default directory
5. Menu trái → Users → xem tài khoản của bạn có role gì
6. Menu trái → Roles and administrators → tìm "Global Administrator"
   → xác nhận tài khoản của bạn nằm trong danh sách
Cách 2 — Azure CLI
# Đăng nhập (nếu chưa)
az login

# Xem thông tin tenant và subscription hiện tại
az account show --output json

# Xem tất cả subscription có quyền truy cập
az account list --output table

# Lấy tenant ID
az account show --query tenantId -o tsv

# Kiểm tra quyền hiện tại của tài khoản trên subscription
az role assignment list \
  --assignee $(az account show --query user.name -o tsv) \
  --output table
Kết quả (Output)
{
  "environmentName": "AzureCloud",
  "homeTenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "isDefault": true,
  "name": "Azure subscription 1",
  "state": "Enabled",
  "tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "user": {
    "name": "[email protected]",
    "type": "user"
  }
}
2

Tạo Resource Groups theo Naming Convention AZ-500

Tạo cấu trúc resource group chuẩn dùng xuyên suốt toàn bộ 12 chương. Format: rg-az500-<chapter>-<purpose>

Cách 1 — Azure Portal
1. Portal → Resource groups → + Create
2. Subscription: chọn subscription lab
3. Resource group name: rg-az500-ch01-identity
4. Region: (Asia Pacific) Southeast Asia
5. Tags:
   - owner: hoatranlab
   - env: lab
   - course: az500
   - chapter: ch01
6. Review + Create → Create
Cách 2 — Azure CLI
# Tạo resource group cho Chương 01 - Identity
az group create \
  --name rg-az500-ch01-identity \
  --location southeastasia \
  --tags "owner=hoatranlab" "env=lab" "course=az500" "chapter=ch01"

# Tạo thêm RG cho các chương tiếp theo (chuẩn bị trước)
az group create \
  --name rg-az500-ch02-mfa \
  --location southeastasia \
  --tags "owner=hoatranlab" "env=lab" "course=az500" "chapter=ch02"

az group create \
  --name rg-az500-ch03-rbac \
  --location southeastasia \
  --tags "owner=hoatranlab" "env=lab" "course=az500" "chapter=ch03"

# Xác nhận danh sách RG đã tạo
az group list \
  --query "[?starts_with(name,'rg-az500')]" \
  --output table
Kết quả (Output)
Name                    Location        Status
----------------------  --------------  ---------
rg-az500-ch01-identity  southeastasia   Succeeded
rg-az500-ch02-mfa       southeastasia   Succeeded
rg-az500-ch03-rbac      southeastasia   Succeeded
3

Bật Audit Log và Sign-in Log trong Microsoft Entra ID

Audit log ghi lại mọi thay đổi cấu hình (tạo user, gán role...). Sign-in log ghi lại mọi đăng nhập thành công/thất bại. Đây là nguồn dữ liệu quan trọng cho bảo mật.

Cách 1 — Azure Portal
1. Portal → Microsoft Entra ID → Monitoring → Audit logs
   → Xác nhận log đang hiện (nếu có P1/P2 license)
   → Có thể filter theo Date range, Service, Category

2. Microsoft Entra ID → Monitoring → Sign-in logs
   → Xem các đăng nhập gần đây
   → Filter: Status = Failure → xem đăng nhập thất bại

3. (Tùy chọn nếu có Log Analytics):
   Microsoft Entra ID → Monitoring → Diagnostic settings
   → + Add diagnostic setting
   → Name: diag-entra-logs
   → Chọn: AuditLogs, SignInLogs
   → Destination: Send to Log Analytics workspace
   → Chọn workspace (tạo mới nếu chưa có)
   → Save
Cách 2 — Azure CLI / Microsoft Graph
# Xem audit log gần đây qua Microsoft Graph (cần permission AuditLog.Read.All)
az rest \
  --method GET \
  --url "https://graph.microsoft.com/v1.0/auditLogs/directoryAudits?\$top=5&\$orderby=activityDateTime desc" \
  --headers "Content-Type=application/json"

# Xem sign-in log gần đây
az rest \
  --method GET \
  --url "https://graph.microsoft.com/v1.0/auditLogs/signIns?\$top=5&\$orderby=createdDateTime desc" \
  --headers "Content-Type=application/json"

# Tạo Log Analytics Workspace (chuẩn bị cho Sentinel sau này)
az monitor log-analytics workspace create \
  --resource-group rg-az500-ch01-identity \
  --workspace-name law-az500-secops \
  --location southeastasia \
  --sku PerGB2018 \
  --retention-time 30
4

Thiết Lập Budget Alert và Naming Convention

Cách 1 — Azure Portal
1. Portal → Cost Management + Billing → Cost Management
2. Menu trái → Budgets → + Add
3. Name: budget-az500-lab-safety
   Amount: $50, Reset period: Monthly
4. Alert conditions: Actual cost ≥ 80% → nhập email
5. Save

Naming Convention AZ-500 (ghi nhớ):
┌─────────────────────────────────────────────────────┐
│  Resource Group:  rg-az500-<chapter>-<purpose>     │
│  User:            az500-<role>01                    │
│  Group:           GRP-AZ500-<Department>            │
│  VM:              vm-az500-<purpose>                │
│  VNet:            vnet-az500-<purpose>              │
│  Storage:         staz500<purpose><random4>         │
│  Key Vault:       kv-az500-<purpose>                │
│  Log Analytics:   law-az500-secops                  │
└─────────────────────────────────────────────────────┘
Cách 2 — Azure CLI
# Lấy subscription ID
SUBSCRIPTION_ID=$(az account show --query id -o tsv)
SCOPE="/subscriptions/$SUBSCRIPTION_ID"

# Tạo budget alert $50/tháng qua Azure CLI
az consumption budget create \
  --budget-name "budget-az500-lab-safety" \
  --amount 50 \
  --time-grain Monthly \
  --start-date "$(date +%Y-%m-01)" \
  --end-date "2026-12-31" \
  --resource-group rg-az500-ch01-identity \
  --category Cost

# Xác nhận budget đã tạo
az consumption budget list --output table

# Xem tóm tắt tài nguyên đã tạo trong lab này
echo "=== Lab 01 Summary ==="
echo "Tenant ID: $(az account show --query tenantId -o tsv)"
echo "Subscription: $(az account show --query name -o tsv)"
echo "Resource Groups:"
az group list --query "[?starts_with(name,'rg-az500')].[name,location]" -o table

🧹 Dọn Dẹp Tài Nguyên

Lab 01 không tạo resource tốn tiền. Giữ lại các resource group và Log Analytics Workspace cho các lab tiếp theo. Chỉ xóa nếu bạn không học tiếp.

Azure CLI — Chỉ chạy khi kết thúc toàn bộ khóa học
# XÓA KHI ĐÃ HOÀN THÀNH TOÀN BỘ KHÓA HỌC
# Xóa tất cả resource group AZ-500
for rg in $(az group list --query "[?starts_with(name,'rg-az500')].name" -o tsv); do
  echo "Deleting $rg..."
  az group delete --name "$rg" --yes --no-wait
done

📊 Kết Quả Đầu Ra Lab 01

Tenant ID xác nhận

az account show trả về tenantId hợp lệ, state: Enabled

Resource Groups tạo thành công

3 RG hiển thị trong Portal với provisioningState: Succeeded, tag đầy đủ

Audit Log hoạt động

Microsoft Entra ID → Audit logs hiển thị hoạt động tạo RG

Log Analytics Workspace sẵn sàng

law-az500-secops visible trong Portal, sẵn sàng nhận log từ Sentinel

Budget Alert cài đặt

Budget $50 hiển thị trong Cost Management, cảnh báo email khi đạt 80%

Naming Convention đã áp dụng

Tất cả resource đặt tên theo chuẩn rg-az500-*, az500-*, GRP-AZ500-*

❓ Câu Hỏi Ôn Tập

1. Sự khác nhau giữa Azure Subscription và Microsoft Entra ID Tenant là gì?

Gợi ý: Tenant = thư mục danh tính (directory), Subscription = đơn vị thanh toán và quản lý resource. Một tenant có thể có nhiều subscription, một subscription chỉ trust một tenant.

2. Tại sao cần đặt Budget Alert ngay từ đầu khi học AZ-500?

Gợi ý: AZ-500 có nhiều lab tốn tiền như Azure Firewall, Bastion, AKS, Defender plans. Budget Alert cảnh báo trước khi vượt ngân sách.

3. Audit Log trong Microsoft Entra ID ghi lại loại hoạt động nào? Sign-in Log ghi lại gì khác?

Gợi ý: Audit Log = thay đổi cấu hình (tạo user, gán role, thay đổi policy). Sign-in Log = mọi lần đăng nhập (thành công/thất bại, MFA status, location, device).

4. Lệnh Azure CLI nào dùng để xem danh sách role đang được gán cho tài khoản hiện tại?

Gợi ý: az role assignment list --assignee <email> --output table

5. Tại sao nên gắn tag cho resource group ngay từ đầu trong môi trường lab?

Gợi ý: Phân loại chi phí, tìm kiếm nhanh, áp dụng Azure Policy, dọn dẹp tài nguyên theo tag sau mỗi lab.

Thư viện Labs Lab 02: Tạo User & Security Group
Zalo