0
0
Lập trình
Flame Kris
Flame Krisbacodekiller

Tự động thêm thẻ với Azure Policy cho quản lý hiệu quả

Đăng vào 7 tháng trước

• 7 phút đọc

Chủ đề:

KungFuTech

Tự động thêm thẻ với Azure Policy

Quản lý tài nguyên trong Azure có thể trở nên phức tạp một cách nhanh chóng, đặc biệt là khi nói đến quản lý chi phí, quản trị và tổ chức. Thẻ (tags) là trợ thủ đắc lực trong trường hợp này, cho phép bạn phân loại tài nguyên. Tuy nhiên, việc áp dụng chúng một cách thủ công rất tốn thời gian và dễ xảy ra lỗi. Bài viết này sẽ hướng dẫn bạn cách sử dụng Azure Policy để tự động thêm một thẻ và giá trị của nó vào các tài nguyên mới được tạo, giải thích một lỗi phổ biến (giống như tôi đã gặp phải!), và chỉ cho bạn cách áp dụng thẻ cho các tài nguyên hiện có.

Mục tiêu: Tự động áp dụng thẻ "Cost Center"

Hãy tưởng tượng bạn muốn mọi tài nguyên mới được tạo trong một Resource Group cụ thể tự động nhận thẻ Cost Center với giá trị là 000. Điều này giúp theo dõi chi phí và phân công trách nhiệm.

Chính sách trước đây của tôi: Một cạm bẫy phổ biến (và lý do tại sao nó không hoạt động)

Tôi đã cố gắng đạt được điều này bằng cách gán một chính sách, nghĩ rằng nó sẽ đơn giản thêm thẻ. Tuy nhiên, tôi đã gặp phải lỗi "Validation failed: Required information is missing or not valid" khi triển khai các tài nguyên mới.

Dưới đây là lý do mà cách tiếp cận trước đây của tôi có thể đã thất bại:

Vấn đề: Sử dụng chính sách "Deny" để gán thẻ

Gán chính sách của tôi, mặc dù có vẻ như đang thực thi một thẻ, thực tế lại có hiệu ứng "Deny".

  • Chính sách "Deny" hoạt động như thế nào: Một chính sách "Deny" hoạt động như một người gác cổng. Nó kiểm tra xem các điều kiện (ví dụ: "tài nguyên này có thẻ 'Cost Center' không?") có được đáp ứng trước khi tài nguyên được phép tạo hoặc cập nhật. Nếu điều kiện không được đáp ứng (tức là thẻ bị thiếu), việc triển khai sẽ bị chặn lại, và bạn sẽ nhận được một thông báo lỗi xác thực. Nó không thay đổi gì cả; nó chỉ nói "Không."

  • Tại sao nó không hoạt động cho việc tự động gán thẻ: Tôi muốn thẻ được thêm tự động, chứ không phải việc triển khai bị lỗi nếu nó bị thiếu. Một chính sách "Deny" rất tốt để đảm bảo tuân thủ (ví dụ: "KHÔNG bao giờ triển khai một VM mà không có thẻ 'Owner'"), nhưng không phải cho việc phục hồi tự động hay thêm thẻ.

Giải pháp: Hiệu ứng "Modify"

Để tự động thêm hoặc cập nhật thẻ, bạn cần sử dụng định nghĩa chính sách với hiệu ứng Modify. Hiệu ứng này can thiệp tích cực trong quá trình tạo/cập nhật tài nguyên để đảm bảo tuân thủ.

Các bước để tự động thêm thẻ sử dụng Azure Policy (Hiệu ứng Modify)

Tôi sẽ sử dụng định nghĩa chính sách tích hợp sẵn: "Inherit a tag from the resource group if it is missing."

  1. Điều hướng đến Azure Policy:

    • Trong cổng thông tin Azure, tìm kiếm và chọn "Policy."
  2. Xóa các chính sách xung đột (nếu có):

    • Nếu bạn có một gán chính sách "Deny" trước đó liên quan đến thẻ mà bạn đang cố gắng tự động thêm, bạn cần xóa nó trước.
    • Đi đến Assignments ở menu bên trái.
    • Tìm gán chính sách cũ của bạn (ví dụ: "Inherit the Cost Center tag...") và nhấp vào ... (dấu ba chấm) bên cạnh nó.
    • Chọn Delete assignment.
  3. Gán chính sách "Inherit a tag from the resource group if it is missing":

    • Quay lại dịch vụ Policy, đi đến Assignments và nhấp vào Assign policy.
    • Scope: Chọn Nhóm Quản lý, Đăng ký, hoặc Resource Group nơi sẽ tạo các tài nguyên mới. Điều này rất quan trọng để xác định nơi chính sách áp dụng.
    • Định nghĩa chính sách: Nhấp vào ... bên cạnh "Policy definition" và tìm kiếm Inherit a tag from the resource group. Chọn định nghĩa có tên "Inherit a tag from the resource group if it is missing".
    • Tham số: Đi đến tab "Parameters".
      • Đối với Tag Name, nhập Cost Center.
      • Đối với Tag value, bạn có thể để trống (nó sẽ kế thừa giá trị từ RG chính nó) hoặc chỉ định một giá trị mặc định như 000 nếu RG của bạn không có nó.
      • Cài đặt quan trọng: Đảm bảo Resource Group mà bạn đang xác định có thẻ Cost Center với giá trị 000. Chính sách kế thừa thẻ từ Resource Group.
    • Khôi phục (đối với các tài nguyên hiện có - sẽ thảo luận bên dưới): Tạm thời, bạn có thể để "Create a remediation task" không chọn. Chúng ta sẽ giải thích điều này trong phần tiếp theo.
    • Nhấp vào Review + create, sau đó Create.

Giờ đây, mỗi khi bạn tạo một tài nguyên mới trong phạm vi đã gán (Resource Group của bạn), nếu nó chưa có thẻ Cost Center, Azure Policy sẽ tự động thêm nó với giá trị từ Resource Group cha!

Khôi phục: Áp dụng thẻ cho các tài nguyên hiện có

Hiệu ứng Modify chủ yếu hoạt động trên các tài nguyên mới được tạo hoặc các tài nguyên được cập nhật. Vậy còn các tài nguyên đã tồn tại trong Resource Group của bạn và thiếu thẻ Cost Center thì sao?

Đây là nơi Nhiệm vụ Khôi phục trở nên quan trọng.

  1. Sau khi gán chính sách "Modify":
    • Đi đến Policy -> Remediation trong cổng thông tin Azure.
    • Nhấp vào + New remediation task.
    • Chọn chính sách bạn vừa gán (ví dụ: "Inherit a tag from the resource group if it is missing").
    • Chọn scope (Resource Group) bạn muốn nhắm đến.
    • Azure sẽ xác định các tài nguyên không tuân thủ trong phạm vi đó.
    • Nhấp vào Remediate.

Nhiệm vụ này sẽ kiểm tra tất cả các tài nguyên hiện có trong phạm vi đã chỉ định mà không tuân thủ (tức là thiếu thẻ Cost Center) và áp dụng thẻ cùng với giá trị kế thừa, đưa chúng về trạng thái tuân thủ.

Tóm tắt

  • Sử dụng hiệu ứng Modify để tự động thêm hoặc cập nhật thẻ.
  • Tránh các chính sách Deny nếu mục tiêu của bạn là tự động gán thẻ; chúng sẽ chặn các triển khai.
  • Đảm bảo tài nguyên cha (như Resource Group) cũng có thẻ nếu chính sách của bạn được thiết lập để "kế thừa" giá trị thẻ.
  • Sử dụng Nhiệm vụ Khôi phục để áp dụng các chính sách cho các tài nguyên hiện có, không tuân thủ.

Bằng cách tận dụng Azure Policy với các hiệu ứng đúng, bạn có thể thực thi chiến lược gán thẻ mạnh mẽ trong môi trường của mình, cải thiện quản trị và quản lý chi phí mà không cần can thiệp thủ công.

Thực hành tốt

  • Luôn kiểm tra và xác thực các chính sách trước khi áp dụng chúng ở quy mô lớn.
  • Theo dõi thường xuyên các tài nguyên để phát hiện và khắc phục kịp thời các vấn đề về tuân thủ.

Cạm bẫy phổ biến

  • Không kiểm tra các chính sách xung đột trước khi thêm chính sách mới.
  • Thiếu hiểu biết về cách các thẻ được kế thừa từ Resource Group.

Mẹo hiệu suất

  • Tối ưu hóa việc sử dụng thẻ để dễ dàng theo dõi chi phí theo nhóm và dự án.
  • Sử dụng mẫu thẻ nhất quán để đảm bảo dễ nhận diện và quản lý.

Câu hỏi thường gặp

  1. Có thể tự động thêm nhiều thẻ không?
    Có, bạn có thể tạo nhiều chính sách để thêm các thẻ khác nhau cho các tài nguyên.
  2. Chính sách có thể áp dụng cho tất cả các loại tài nguyên không?
    Có, chính sách Azure có thể áp dụng cho nhiều loại tài nguyên khác nhau.

Hy vọng rằng bài viết này đã giúp bạn hiểu rõ hơn về cách tự động thêm thẻ với Azure Policy và cải thiện quản lý tài nguyên của bạn!

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào