AZ-500 LAB 44 ~45 phút Chương 10 Data Protection

Resource Lock + Bảo Vệ Backup Vault

Tạo Recovery Services Vault, bật soft delete cho backup, cấu hình backup policy, áp CanNotDelete lock lên vault và resource group, kiểm tra thao tác xóa bị chặn, và thực hành quy trình gỡ lock đúng chuẩn.

🎯 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ị

Yêu cầu:
  • 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
So sánh 2 loại Resource Lock:
CanNotDelete — Có thể đọc và sửa resource, nhưng không thể xóa. Phù hợp cho vault, production DB.
ReadOnly — Chỉ có thể đọc, không thể sửa hoặc xóa. Cẩn thận — có thể gây lỗi cho operations bình thường.

🏗️ 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

1

Tạo Recovery Services Vault

Cách 1 — Portal
  1. 1.1Portal → Recovery Services vaults → + Create
  2. 1.2Resource group: rg-az500-lab44-backup → Vault name: rsv-az500-lab44 → Region: Southeast Asia
  3. 1.3Review + Create → Create → chờ deployment hoàn thành
Cách 2 — Azure CLI
Azure CLI— Bash / Cloud Shell
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}"
2

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.

Cách 1 — Portal
  1. 2.1Recovery Services Vault → Settings → Properties
  2. 2.2Security Settings → click Update → Soft delete: Enabled
  3. 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)
  4. 2.4Security Level sẽ chuyển từ BasicEnhanced → Save
Cách 2 — Azure CLI
Azure CLI— Bash / Cloud Shell
# 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}"
Output
{
  "softDeleteFeatureState": "Enabled",
  "softDeleteRetentionPeriodInDays": 14
}
3

Tạo Backup Policy

Cách 1 — Portal
  1. 3.1Recovery Services Vault → Manage → Backup policies → + Add
  2. 3.2Policy type: Azure Virtual Machine → Policy name: policy-az500-daily
  3. 3.3Backup schedule: Daily at 02:00 AM (UTC+7) → Retention: Daily 30 days, Weekly 4 weeks, Monthly 12 months
  4. 3.4Tiered backup: bật Archive tier nếu muốn lưu trữ dài hạn → OK
Cách 2 — Azure CLI
Azure CLI— Bash / Cloud Shell
# 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
4

Áp CanNotDelete Lock và kiểm tra

Cách 1 — Portal
  1. 4.1Recovery Services Vault → Settings → Locks → + Add
  2. 4.2Lock name: lock-no-delete-vault → Lock type: Delete → Notes: "Production backup vault — DO NOT DELETE" → OK
  3. 4.3Test xóa: vault → Overview → Delete → quan sát lỗi "ScopeLocked"
  4. 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
Cách 2 — Azure CLI
Azure CLI— Bash / Cloud Shell
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
Output khi xóa bị chặn bởi lock
(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.
5

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.

Cách 1 — Portal
  1. 5.1Vault → Settings → Locks → click Delete trên lock "lock-no-delete-vault"
  2. 5.2Lặp lại cho RG lock: RG → Locks → Delete "lock-no-delete-rg"
  3. 5.3Lưu ý: cần quyền Microsoft.Authorization/locks/delete — chỉ Owner có quyền này
Cách 2 — Azure CLI
Azure CLI— Gỡ lock và dọn dẹp
# 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

Lưu ý quan trọng: Phải gỡ lock TRƯỚC khi xóa. Nếu vault có backup items, phải xóa backup items và tắt soft delete trước.
Azure CLI
# 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

Vault tạo thành công

provisioningState: Succeeded, region Southeast Asia

Soft Delete: Enabled

softDeleteRetentionPeriodInDays: 14

Lock hoạt động

Xóa vault → lỗi ScopeLocked như mong đợi

Quy trình gỡ lock

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.

Lab 43: Azure Policy + Remediation Thư viện Labs Lab 45: Defender Secure Score
Zalo