Przejdź do treści
Wróć na blog

Tagowanie zasobów w skali 100 000 obiektów

Jak wygląda egzekwowanie standardu tagowania w dużym tenancie Azure i dlaczego sama Azure Policy nie wystarcza.

2 min czytania
  • FinOps
  • PowerShell
  • Governance

Standard tagowania zwykle powstaje na wczesnym etapie adopcji chmury i przez pierwsze miesiące działa. Problem ujawnia się wtedy, gdy środowisko przekracza kilkadziesiąt tysięcy zasobów, a odpowiedzialność za nie rozkłada się na kilkanaście zespołów.

Dlaczego sama polityka nie wystarcza

Azure Policy dobrze radzi sobie z jednym scenariuszem: zablokowaniem utworzenia zasobu bez wymaganego tagu. Nie rozwiązuje natomiast trzech sytuacji, które w dużym tenancie występują zawsze:

  1. Zasoby istniejące przed wprowadzeniem polityki. Tryb deny nie działa wstecz, a masowa remediacja wymaga świadomej decyzji o wartościach domyślnych.
  2. Zasoby tworzone przez usługi. Węzły klastrów, dyski zarządzane czy adresy publiczne powstają automatycznie i często omijają logikę dziedziczenia tagów.
  3. Tagi poprawne składniowo, ale bezwartościowe. owner: it przechodzi walidację i nie niesie żadnej informacji przy rozliczeniu kosztów.

Podejście, które się sprawdza

W praktyce skuteczny okazuje się model dwuwarstwowy: polityka blokuje nowe naruszenia, a cykliczna automatyzacja PowerShell zajmuje się stanem faktycznym.

$resources = Search-AzGraph -Query @"
Resources
| where isnull(tags['CostCenter']) or tags['CostCenter'] == ''
| project id, name, type, resourceGroup, subscriptionId
"@ -First 1000

$resources | Group-Object subscriptionId |
    Select-Object Name, Count | Sort-Object Count -Descending

Użycie Azure Resource Graph zamiast iterowania po subskrypcjach ma znaczenie praktyczne: zapytanie obejmujące cały tenant wykonuje się w sekundach, podczas gdy przejście przez Get-AzResource w każdej subskrypcji potrafi trwać godzinami i napotyka limity API.

Raportowanie zamiast egzekwowania na siłę

Automatyczne uzupełnianie brakujących tagów wartością domyślną daje pozorny porządek. Skuteczniejsze okazuje się cykliczne raportowanie do właścicieli subskrypcji: lista zasobów bez przypisania, ich koszt miesięczny i termin uzupełnienia danych. Koszt widoczny przy nazwisku właściciela działa lepiej niż jakakolwiek polityka techniczna.

Wniosek

Governance tagów w dużej skali to proces, a nie konfiguracja. Polityka zabezpiecza przyszłość, automatyzacja porządkuje przeszłość, a raportowanie utrzymuje stan — brak którejkolwiek z tych trzech warstw powoduje, że standard degraduje się w ciągu kilku kwartałów.