הגדרת Azure TAG באמצעות PowerShell

האם אתם.ן מתייגים אובייקטים ומשאבים בשירות Azure? במידה ולא, הגיע הזמן לתייג אובייקטים ומשאבים בהתאם לדפוסים השונים שיש בארגון, וזאת בכדי לקבל תובנות על הסביבת Azure, ולכן מומלץ מאוד לתייג אובייקטים.

ישנם דרכים שונות לתייג אובייקטים בסביבת Azure, והמאמר הנוכחי מתמקד בהגדרת Azure TAG באמצעות PowerShell.

לפני שמתחילים עם תיוג אובייקטים בשירות Azure, צריך להכין או לבצע מיפוי של איך היינו רוצים לראות את התיוג שלנו, למשל, רשימה של תחומי ענין, כמו:

  • בעלי אחריות על הסביבה
  • האם הסביבה מנוטרת מבחינת אבטחה
  • האם יש SLA לסביבה
  • סוג הסביבה, האם ייצור או סביבה בדיקות
  • מהן העלויות Cost על האובייקטים
  • האם הסביבה מוגנת ומוקשחת (מטעמי אבטחת מידע)

תחילה ניצור אסטרטגיה גלובאלית ורק לאחר מכן נוכל להגדיר את תיוג באופן גורף.

המאמר Resource naming and tagging decision guide מספק מידע לגבי הדרכים שבהן כדאי לבנות את האסטרטגיה עם סוגי תיוג, כמו:

  • Functional
  • Classification
  • Accounting
  • Partnership
  • Purpose

azure-decision-guide-resource-tagging

מהן הדרכים להגדרת Azure TAG? ישנם מספר דרכים להגדרת תיוג בשירות Azure:

  • באופן ידני, ואולי מתאים למקרים ספציפיים בלבד (פחות מומלץ)
  • באמצעות Azure Policy עם הגדרה שאוכפת תיוג על אובייקטים
  • באמצעות PowerShell
  • על גבי Infrastructure as Code

אז מה צריך בשביך להתחיל לתייג? לקבל החלטה, לבנות מסמך קצר (או יותר נכון טבלה) של סוגי תיוג, מאפיינים ואובייקטים נדרשים לתיוג – ולתייג.

איך לתייג באמצעות PowerShell

ניתן לתייג אובייקטים עם PowerShell בדרכים שונות, החל מאובייקט ספציפי ועד כל האובייקטים אשר שייכים לאותו Resource Group, ובגלל שמדובר על PowerShell אז אין גבולות.

הגדרת Azure TAG

אז איך מתחילים לתייג באמצעות PowerShell?

כך נראה Resource Group ללא תיוג כלשהוא, וזאת כמובן דוגמה לאובייקט מסוג Resource Group שמכיל תחתיו עוד אובייקטים רבים של מכונות, רכיבי רשת ועוד שלל אובייקטים של Azure.

AzureTAG_PowerShell_2

  • תחילה נוודא שיש לנו PowerShell מודול של Az.Accounts
  • לאחר מכן נבצע לוגין לסביבה מתוך PowerShell ונוודא שאנו נמצאים מול החשבון (Subscription) הנדרש
Login-AzAccount
Get-AzSubscription 
Select-AzSubscription -Subscription “subscription id”

לאחר מכן נבדוק האם ישנו תיוג לאובייקטים קיימים באמצעות הפקודות הבאות

Get-AzTag
(Get-AzResource -ResourceGroupName “LAB”).Tags | fl

AzureTAG_PowerShell_1

לאחר מכן נגדיר תיוג ברמת Resource Group באמצעות הפקודות הבאות, וכדאי לשים לב לדגשים הבאים: הגדרת תיוג ברמת Resource Group, הגדרת TAG לשלושה מאפיינים ספציפיים והגדרת רק ברמת אותו Resource Group ללא אכיפה על האובייקטים שנמצאים תחתיו.

$resourceGroupName = “LAB”
$azureRGInfo = Get-AzResourceGroup -Name $resourceGroupName
Set-AzResourceGroup -Id $azureRGInfo.ResourceId -Tag @{ENV = “LAB”; Owner = “Elli Shlomo”; BusinessProcess = “CloudOPS_LAB” } 

אז מה עושים עם כל האובייקטים הנוספים אשר שייכים לאותו Resource Group? מוסיפים לפקודה הקודמת או מבצעים בנפרד הגדרת TAG לכלל האובייקטים השייכים לאותו Resource Group באמצעות הפקודות הבאות

$resourceGroupName = “LAB”
$azureRGInfo = Get-AzResourceGroup -Name $resourceGroupName
foreach ($item in $azureRGInfo) {
    Get-AzResource  -ResourceGroupName $item.ResourceGroupName | ForEach-Object { Set-AzResource  -ResourceId $PSItem.ResourceId -Tag $item.Tags -Force } 
}

AzureTAG_PowerShell_3

במידה וישנם המון אובייקטים באותו Resource Group, אז הפקודה תרוץ למשך מספר דקות עד שתבצע אכיפה של התיוג לכלל האובייקטים

AzureTAG_PowerShell_4

אם נריץ שוב את הפקודות לבדיקת מאפיינים התיוג שלי נוכל לראות כי ישנו תיוג לאובייקטים חדשים

2020-07-31_07h59_06

ואם נבצע בדיקה לגבי כלל האובייקטים הקיימים של אותו Resource Group נוכל לראות את התיוג עצמו

AzureTAG_PowerShell_7

ומתוך Azure Dashboard כולל בדיקה לגבי מאפיין מסוים

AzureTAG_PowerShell_8

AzureTAG

פקודות Azure TAG נוספות ניתן למצוא בגיטהאב אצלי

מאמרים נוספים בנושא Azure

 

You may also like...

השאר תגובה