🎯 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ị
- 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)
- 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.
🧪 Các Bước Thực Hiện
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.
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
# Đă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
{
"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"
}
}
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>
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
# 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
Name Location Status ---------------------- -------------- --------- rg-az500-ch01-identity southeastasia Succeeded rg-az500-ch02-mfa southeastasia Succeeded rg-az500-ch03-rbac southeastasia Succeeded
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.
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
# 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
Thiết Lập Budget Alert và Naming Convention
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 │ └─────────────────────────────────────────────────────┘
# 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.
# 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
az account show trả về tenantId hợp lệ, state: Enabled
3 RG hiển thị trong Portal với provisioningState: Succeeded, tag đầy đủ
Microsoft Entra ID → Audit logs hiển thị hoạt động tạo RG
law-az500-secops visible trong Portal, sẵn sàng nhận log từ Sentinel
Budget $50 hiển thị trong Cost Management, cảnh báo email khi đạt 80%
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.