🎯 Mục Tiêu Lab
Tạo Recovery Services Vault tại Southeast Asia
Bật Soft Delete và cấu hình Enhanced Soft Delete (immutable)
Tạo backup policy và liên kết với VM hoặc resource
Áp CanNotDelete lock lên Recovery Services Vault
Kiểm tra: thử xóa vault bị lock → quan sát lỗi
Hiểu sự khác nhau giữa CanNotDelete và ReadOnly lock
📋 Chuẩn Bị
- Quyền Owner trên subscription (cần để tạo/xóa lock)
- Azure CLI đã cài và az login thành công
- Hiểu cơ bản về Azure Backup và Recovery Services Vault
🏗️ Kịch Bản
Công ty yêu cầu Recovery Services Vault chứa backup dữ liệu production không bao giờ được xóa nhầm — kể cả bởi người có quyền Owner. Ngoài ra, backup data phải được bảo vệ khỏi ransomware bằng soft delete (dữ liệu bị xóa còn lưu 14 ngày). Bạn cần triển khai cả 2 lớp bảo vệ: Resource Lock (chặn xóa vault) và Soft Delete (bảo vệ backup items).
🧪 Các Bước Thực Hiện
Tạo Recovery Services Vault
- 1.1Portal → Recovery Services vaults → + Create
- 1.2Resource group:
rg-az500-lab44-backup→ Vault name:rsv-az500-lab44→ Region: Southeast Asia - 1.3Review + Create → Create → chờ deployment hoàn thành
RG="rg-az500-lab44-backup"
VAULT="rsv-az500-lab44"
LOCATION="southeastasia"
# Tạo resource group
az group create --name $RG --location $LOCATION \
--tags owner=hoatranlab env=lab module=az500
# Tạo Recovery Services Vault
az backup vault create \
--name $VAULT \
--resource-group $RG \
--location $LOCATION
# Xác nhận vault được tạo
az backup vault show \
--name $VAULT \
--resource-group $RG \
--query "{name:name, location:location, provisioningState:properties.provisioningState}"
Bật Soft Delete cho Backup Vault
Soft delete giữ lại backup data đã xóa trong 14 ngày — bảo vệ khỏi ransomware và xóa nhầm. Enhanced Soft Delete (Always-On) không thể tắt sau khi bật.
- 2.1Recovery Services Vault → Settings → Properties
- 2.2Security Settings → click Update → Soft delete: Enabled
- 2.3(Tùy chọn) Bật "Enhanced Soft Delete" → chọn "Always-On" nếu muốn immutable (cẩn thận: không thể tắt)
- 2.4Security Level sẽ chuyển từ Basic → Enhanced → Save
# Bật soft delete cho vault
az backup vault backup-properties set \
--name $VAULT \
--resource-group $RG \
--soft-delete-feature-state Enable
# Xác nhận trạng thái soft delete
az backup vault backup-properties show \
--name $VAULT \
--resource-group $RG \
--query "{softDeleteFeatureState:softDeleteFeatureState, softDeleteRetentionPeriodInDays:softDeleteRetentionPeriodInDays}"
{
"softDeleteFeatureState": "Enabled",
"softDeleteRetentionPeriodInDays": 14
}
Tạo Backup Policy
- 3.1Recovery Services Vault → Manage → Backup policies → + Add
- 3.2Policy type: Azure Virtual Machine → Policy name:
policy-az500-daily - 3.3Backup schedule: Daily at 02:00 AM (UTC+7) → Retention: Daily 30 days, Weekly 4 weeks, Monthly 12 months
- 3.4Tiered backup: bật Archive tier nếu muốn lưu trữ dài hạn → OK
# Xem các policy mặc định trong vault
az backup policy list \
--vault-name $VAULT \
--resource-group $RG \
--output table
# Tạo custom backup policy từ JSON
cat > /tmp/backup-policy.json << 'EOF'
{
"eTag": null,
"location": "southeastasia",
"properties": {
"backupManagementType": "AzureIaasVM",
"instantRpRetentionRangeInDays": 2,
"schedulePolicy": {
"schedulePolicyType": "SimpleSchedulePolicy",
"scheduleRunFrequency": "Daily",
"scheduleRunTimes": ["2026-01-01T19:00:00Z"]
},
"retentionPolicy": {
"retentionPolicyType": "LongTermRetentionPolicy",
"dailySchedule": {
"retentionTimes": ["2026-01-01T19:00:00Z"],
"retentionDuration": {"count": 30, "durationType": "Days"}
},
"weeklySchedule": {
"daysOfTheWeek": ["Sunday"],
"retentionTimes": ["2026-01-01T19:00:00Z"],
"retentionDuration": {"count": 4, "durationType": "Weeks"}
}
}
}
}
EOF
az backup policy create \
--name "policy-az500-daily" \
--vault-name $VAULT \
--resource-group $RG \
--policy @/tmp/backup-policy.json \
--backup-management-type AzureIaasVM
Áp CanNotDelete Lock và kiểm tra
- 4.1Recovery Services Vault → Settings → Locks → + Add
- 4.2Lock name:
lock-no-delete-vault→ Lock type: Delete → Notes: "Production backup vault — DO NOT DELETE" → OK - 4.3Test xóa: vault → Overview → Delete → quan sát lỗi "ScopeLocked"
- 4.4Thêm lock lên Resource Group: RG → Locks → + Add → Delete lock → lúc này xóa cả RG cũng bị chặn
VAULT_ID=$(az backup vault show \
--name $VAULT --resource-group $RG \
--query id -o tsv)
# Áp CanNotDelete lock lên vault
az lock create \
--name "lock-no-delete-vault" \
--resource-group $RG \
--resource-name $VAULT \
--resource-type "Microsoft.RecoveryServices/vaults" \
--lock-type CanNotDelete \
--notes "Production backup vault - DO NOT DELETE"
# Áp lock lên resource group (lớp bảo vệ ngoài)
az lock create \
--name "lock-no-delete-rg" \
--resource-group $RG \
--lock-type CanNotDelete \
--notes "Contains production backup vault"
# Test: thử xóa vault (sẽ thất bại)
az backup vault delete \
--name $VAULT \
--resource-group $RG \
--yes 2>&1 | head -3
# Xem danh sách locks
az lock list --resource-group $RG --output table
(ScopeLocked) The scope '/subscriptions/.../resourceGroups/rg-az500-lab44-backup/
providers/Microsoft.RecoveryServices/vaults/rsv-az500-lab44' cannot perform
delete operation because following scope(s) are locked:
'/subscriptions/.../resourceGroups/rg-az500-lab44-backup/providers/
Microsoft.RecoveryServices/vaults/rsv-az500-lab44'.
Please remove the lock and try again.
Quy trình gỡ lock đúng chuẩn
Khi cần xóa resource được lock (ví dụ khi dọn dẹp lab), cần gỡ lock theo đúng quy trình — không phải ai cũng có quyền, cần approval.
- 5.1Vault → Settings → Locks → click Delete trên lock "lock-no-delete-vault"
- 5.2Lặp lại cho RG lock: RG → Locks → Delete "lock-no-delete-rg"
- 5.3Lưu ý: cần quyền Microsoft.Authorization/locks/delete — chỉ Owner có quyền này
# Gỡ lock trên vault trước
az lock delete \
--name "lock-no-delete-vault" \
--resource-group $RG \
--resource-name $VAULT \
--resource-type "Microsoft.RecoveryServices/vaults"
# Gỡ lock trên resource group
az lock delete \
--name "lock-no-delete-rg" \
--resource-group $RG
# Xác nhận không còn lock
az lock list --resource-group $RG --output table
# Bây giờ mới có thể xóa resource group
az group delete --name $RG --yes --no-wait
🧹 Dọn Dẹp Tài Nguyên
# Bước 1: Gỡ lock (xem Bước 5 ở trên)
az lock delete --name "lock-no-delete-vault" \
--resource-group $RG --resource-name $VAULT \
--resource-type "Microsoft.RecoveryServices/vaults"
az lock delete --name "lock-no-delete-rg" --resource-group $RG
# Bước 2: Tắt soft delete (nếu cần xóa vault ngay)
az backup vault backup-properties set \
--name $VAULT --resource-group $RG \
--soft-delete-feature-state Disable
# Bước 3: Xóa resource group
az group delete --name rg-az500-lab44-backup --yes --no-wait
📊 Kết Quả Đầu Ra Lab 44
provisioningState: Succeeded, region Southeast Asia
softDeleteRetentionPeriodInDays: 14
Xóa vault → lỗi ScopeLocked như mong đợi
Gỡ lock → xóa thành công → hiểu rõ cơ chế 2 lớp bảo vệ
❓ Câu Hỏi Ôn Tập
1. Resource Lock có thể ngăn Owner xóa resource không? Ai có thể gỡ lock?
Gợi ý: Có, lock ngăn cả Owner. Chỉ user có permission Microsoft.Authorization/locks/delete mới gỡ được — thường là Owner hoặc custom role có quyền này.
2. ReadOnly lock khác CanNotDelete thế nào? Tại sao không dùng ReadOnly cho vault?
Gợi ý: ReadOnly chặn mọi ghi — backup sẽ fail vì không ghi được backup data. CanNotDelete chỉ chặn xóa, backup vẫn chạy bình thường.
3. Soft delete bảo vệ khỏi ransomware thế nào? 14 ngày retention có nghĩa gì?
Gợi ý: Kẻ tấn công xóa backup items, nhưng data vẫn còn trong "soft deleted" state 14 ngày. Có thể undelete trong 14 ngày đó để khôi phục.
4. Enhanced Soft Delete (Always-On) nguy hiểm khi nào? Tại sao cần cẩn thận?
Gợi ý: Không thể tắt sau khi bật. Nếu bật trong subscription trial/test và hết hạn, việc dọn dẹp vault sẽ rất phức tạp vì không disable được soft delete.