שלום לכולם,
במאמר זה אני רוצה להראות איך אפשר להוריד נתוני צריכה מ-Azure לפי חודשים בצורה אוטומטית וללא צורך במתן הרשאות חזקות.
ב-25 לאפריל מיקרוסופט שיחררה אפשרות חדשה שמאפשרת לתת למשתמשים מסויימים בארגון יכולת לקרוא ולקבל נתוני צריכה מ-Azure מבלי להיות Administrator.
אפשרות זו אפשרה לתת לאנשי הכספים ו/או בעלי תפקידים את היכולת לראות את החיובים ללא צורך שאנשי ה-IT יתנו להם הרשאות דבר שכמובן מוריד את הסיכונים ומאפשר להגביל את המשתמשים בפעולות בחשבון.
כחלק מיכולות ה-(Role Base Access Control (RBAC התווסף לנו Role חדש בשם Biiling Reader שכשמו כן הוא, מאפשר קריאה בלבד לחיובים ב-Azure.
במאמר זה אראה לכם כיצד מפעילים את היכולת ובנוסף אראה איך בעזרת סקריפט ניתן לעבוד מול Invoice API ב- PowerShell ולהוריד בצורה אוטומטית את כל החשבוניות (נכון לכתיבת המאמר Invoice API ב-Public Preview).
תזכורת – במאמרים הקודמים דיברתי על יכולות Azure Role Base Access Control ואיך לבנות Role מותאם אישית.
להלן לינקים למאמרים הקודמים:
- מאמר הקדמה – Azure RBAC Intro.
- מאמר איך לבנות Role מותאם אישית – Create Custom Role.
הפעלת היכולת לצפייה/הורדת חשבוניות
נכנסים לפורטל Azure עם הרשאות אדמין, לוחצים על Subscriptions ובוחרים את ה-Subscription הרצוי.
בוחרים באפשרות Invoices
לוחצים עם Access to Invoice ומפעילים את האפשרות להורדת חשבוניות.
הערה: רק משתמשים בעלי הרשאות Owner, Contributer, Reader, User Access Administrator, Co-Administrator, Service Administrator ו-Billing Reader יכולים להוריד חשבוניות.
סקריפט להורדת חשבוניות בצורה אוטומטית
הסקריפט מאפשר להוריד ולשמור את כל החשבוניות של ה-Subscription כ-PDF לתיקייה ספציפית.
יש להשלים את הפרמטרים הבאים:
- ה-Subscription ID הרצוי.
- הנתיב לשמירת החשבוניות.
$subscriptionId = Read-Host 'Specify your Azure Subscription ID?'; $downloadDirectory = Read-Host 'Specify your download location (For Example:C:\Invoices)?' Login-AzureRmAccount $SubscriptionName = (Get-AzureRmSubscription -SubscriptionId:$subscriptionId).Name if ($SubscriptionName) { Set-AzureRmContext -SubscriptionId $subscriptionId $invoices = Get-AzureRmBillingInvoice -GenerateDownloadUrl foreach($invoice in $invoices) { Invoke-WebRequest -Uri $invoice.DownloadUrl -OutFile ($downloadDirectory + '\' + $SubscriptionNane + "-" + $invoice.InvoicePeriodStartDate.ToString("dd/MM/yyyy").Replace("/","") + "-" + $invoice.InvoicePeriodEndDate.ToString("dd/MM/yyyy").Replace("/","") + '.pdf'); } }
תהנו 🙂
Leave a Reply