Kiến thức Microsoft Azure

Bảo vệ tài nguyên Azure bằng khóa quản lý tài nguyên “Resource Manager Locks”

Khóa quản lý tài nguyên cung cấp một cách để quản trị viên khóa tài nguyên Azure để ngăn việc xóa hoặc thay đổi tài nguyên. Các khóa này nằm bên ngoài hệ thống phân cấp Kiểm soát truy cập dựa trên vai trò (RBAC) và khi được áp dụng sẽ hạn chế tài nguyên cho tất cả người dùng. Những điều này rất hữu ích khi bạn có một tài nguyên quan trọng trong đăng ký của mình mà người dùng không thể xóa hoặc thay đổi và có thể giúp ngăn chặn các thay đổi hoặc xóa ngẫu nhiên và độc hại.

Resource Manager Locks

Một điểm đặc biệt với Resource Group trên Azure khi cấp phát cho người dùng là rất dễ bị xóa khỏi. Việc này có thể do tai nạn trong lúc sử dụng. Việc này có thể hạn chế bằng việc khóa “Lock” lại, việc khóa này áp dụng cho: Subscription. Resource Group và Resource. “Lock” sẽ áp dụng cho cả các resource con bên trong.

Locks có 2 giá trị

  • Read-Only: Ngăn cản việc thay đổi trong Resource
  • Delete: Ngăn cản việc xóa

chỉ có người Admin và Chủ sở hữu mới có quyền tạo / xóa Management Locks

Quyền

Quyền thiết lập và xóa khóa yêu cầu quyền truy cập vào một trong các quyền RBAC sau:

– Microsoft.Authorization / *
– Microsoft.Authorization / lock / *

Theo mặc định, các hành động này chỉ có sẵn trên Chủ sở hữu và Quản trị viên quyền truy cập của người dùng được tích hợp trong Vai trò RBAC, tuy nhiên bạn có thể thêm chúng vào vai trò tùy chỉnh theo yêu cầu. Như đã đề cập, người dùng với các vai trò này vẫn phải chịu các khóa, nhưng rõ ràng họ có thể xóa chúng nếu được yêu cầu. Việc tạo và xóa khóa được theo dõi trong nhật ký Hoạt động Azure.

Người dùng cố gắng xóa hoặc thay đổi tài nguyên có khóa tại chỗ sẽ gặp lỗi sau:

Failed to delete storage account 'criticalstorageaccount1'. 
Error: The scope '/subscriptions/00000000-0000-0000-0000-00000000000/resourceGroups/lambdatoys/providers/Microsoft.Storage/storageAccounts/criticalstorageaccount1' cannot perform delete operation because following scope(s) are locked: '/subscriptions/00000000-0000-0000-0000-00000000000/resourceGroups/LambdaToys/providers/Microsoft.Storage/storageAccounts/criticalstorageaccount1'. 
Please remove the lock and try again.

Tạo khóa

Khóa có thể được tạo cả tại thời điểm tạo tài nguyên bên trong mẫu ARM hoặc sau đó bằng cách sử dụng cổng thông tin hoặc PowerShell.

Tạo khóa lúc tạo tài nguyên

Cách tốt nhất để đảm bảo rằng các ổ khóa được đặt đúng chỗ và bảo vệ tài nguyên của bạn là tạo chúng tại thời điểm chạy và định cấu hình chúng trong các mẫu ARM của bạn. Khóa là tài nguyên ARM cấp cao nhất, chúng không nằm bên dưới tài nguyên đang bị khóa. Chúng đề cập đến tài nguyên đang bị khóa, vì vậy điều này phải tồn tại trước tiên. Trong ví dụ dưới đây, chúng tôi đang tạo một tài khoản lưu trữ, sau đó thêm khóa để ngăn nó bị xóa. “Loại” được cung cấp sẽ dành riêng cho loại tài nguyên mà bạn đang cố gắng khóa.

"resources": [
    {
        "type": "Microsoft.Storage/storageAccounts",
        "name": "criticalstorageaccount1",
        "apiVersion": "2015-06-15",
        "location": "[resourceGroup().location]",
        "tags": {
            "displayName": "criticalstorageaccount1"
        },
        "properties": {
            "accountType": "Standard_LRS"
        }
    },
    {
        "name": "[concat('criticalstorageaccount1', '/Microsoft.Authorization/criticalStorageLock')]",
        "type": "Microsoft.Storage/storageAccounts/providers/locks",
        "apiVersion": "2015-01-01",
        "properties": {
            "level": "CannotDelete"
        }
    }
]

Cài đặt “cấp độ” có thể được thay đổi thành “Chỉ đọc” theo yêu cầu.

Thêm khóa

Khóa có thể được thêm vào tài nguyên hiện có thông qua cổng thông tin hoặc sử dụng PowerShell.

Cổng thông tin

  1. Tìm tài nguyên bạn muốn khóa và chọn nó. Trong thanh chính, nhấp vào biểu tượng “Ổ khóa”

  1. Nhấp vào Thêm
  2. Đặt tên và mô tả cho khóa, sau đó chọn loại, xóa hoặc chỉ đọc.

  1. Nhấn OK để lưu khóa, tài nguyên hiện đã được bảo vệ.
  2. Để xóa khóa, chỉ cần quay lại giao diện tương tự, chọn khóa và sau đó đi đến xóa

PowerShell

PowerShell sau có thể được sử dụng để thêm khóa vào tài nguyên hiện có. Một lần nữa, ResourceType sẽ khác nhau tùy thuộc vào tài nguyên mà bạn đang cố gắng khóa.

New-AzureRmResourceLock -LockLevel CanNotDelete -LockName criticalStorageLock -ResourceName criticalstorageaccount1 -ResourceType Microsoft.Storage/storageAccounts -ResourceGroupName CriticalStorageRG

Để loại bỏ một khóa, hãy sử dụng Remove-AzureRmResourceLock.

Remove-AzureRmResourceLock -LockName criticalStorageLock -ResourceName criticalstorageaccount1 -ResourceGroupName CriticalStorageRG -ResourceType Microsoft.Storage/storageAccounts

Tóm lược

Bằng cách sử dụng Nhật ký tài nguyên, bạn có thể đặt thêm một tuyến phòng thủ chống lại việc thay đổi và / hoặc xóa vô tình hoặc độc hại đối với các tài nguyên quan trọng nhất của bạn. Nó không hoàn hảo, vì quản trị viên của bạn vẫn có thể loại bỏ những ổ khóa này, nhưng làm như vậy đòi hỏi một nỗ lực có ý thức, vì mục đích duy nhất của việc gỡ khóa là để phá vỡ nó. Khi các khóa này nằm bên ngoài RBAC, bạn có thể áp dụng chúng và đảm bảo rằng chúng đang tác động đến tất cả người dùng của bạn, bất kể vai trò hoặc quyền tùy chỉnh nào mà bạn có thể đã cấp cho họ.

Nguồn: Tham khảo từ Internet

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *