נבדק לאחרונה: מאי 2026
בנו את שירותי AWS של בחינת AZ-305 עם Terraform פשוט — בלוק אחד בכל פעם, כאשר כל אחד מהם מקושר בחזרה לתחום במבחן. אותו הקוד עובד גם ב-OpenTofu.
עד סוף מעבדה זו תפרוס, באמצעות Terraform רגיל, את ליבת ארכיטקטורת הייחוס של AZ-305 — טופולוגיית רשת וירטואלית (VNet) מסוג 'רכזת-חישורים' (hub-spoke) (רכזת אחת, חישור אחד, מקושרים), Azure Front Door לכניסת HTTPS גלובלית, Key Vault לניהול סודות ותעודות עם הרשאת RBAC, ואת תשתית האבחון שכל תכנון של אדריכל מומחה מניח. כל בלוק קשור לתחום תכנון של AZ-305.
הכנס את הקטעים לקובץ main.tf יחיד, הפעל terraform init, ואז terraform apply צעד אחר צעד.
>= 1.5 או OpenTofu >= 1.6.az login).הערימה כולה כ-36 דולר לחודש במצב סרק. Front Door הוא מלכודת העלות – יש למחוק מייד אם אינכם בודקים באופן פעיל.
פתיחת Azure סטנדרטית. AZ-305 מצפה שתבחר בזוג eastus / westus עבור כל שאלה בנושא 'שני אזורים' — הם זוג האזורים הקנוני ב-AZ-305 לבדיקות השהיה ולתרחישי מעבר כשל בין אזורים.
terraform {
required_version = ">= 1.5"
required_providers {
azurerm = { source = "hashicorp/azurerm", version = "~> 4.0" }
random = { source = "hashicorp/random", version = "~> 3.6" }
}
}
provider "azurerm" {
features {
key_vault {
purge_soft_delete_on_destroy = true
}
}
}
resource "random_id" "suffix" {
byte_length = 3
}
data "azurerm_client_config" "current" {}
locals {
tags = {
Project = "certlabpro-az-305"
ManagedBy = "terraform"
}
}
resource "azurerm_resource_group" "main" {
name = "certlabpro-az-305-rg"
location = "eastus"
tags = local.tags
}טופולוגיית רכזת-חישורים (Hub-spoke) היא תכנון הרשת המומלץ של AZ-305: רשת וירטואלית מרכזית (hub VNet) מארחת שירותים משותפים (חומת אש, שער VPN, DNS), ורשתות וירטואליות משניות (spoke VNets) מארחות עומסי עבודה. החישורים מתקשרים עם הרכזת באופן דו-כיווני; תעבורה בין חישורים עוברת דרך הרכזת. הבחינה בודקת טופולוגיה זו ללא הרף מכיוון שהיא הבסיס לכל אזור נחיתה של Azure עם ריבוי עומסי עבודה.
אנו בונים את טופולוגיית רכזת-חישורים הפשוטה ביותר: VNet רכזת אחת (10.0.0.0/16), VNet חישור אחת (10.1.0.0/16), וקישוריות (peering) דו-כיוונית. תכנוני רכזת-חישורים אמיתיים מוסיפים את Azure Firewall ברכזת וטבלאות ניתוב next_hop_in_ip_address המכריחות תעבורת חישורים לעבור דרכו — נושא זה מכוסה באופן קונספטואלי אך מושמט כאן מטעמי עלות (Azure Firewall עולה כ-1 דולר לשעה במצב סרק).
resource "azurerm_virtual_network" "hub" {
name = "certlabpro-az-305-hub"
resource_group_name = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
address_space = ["10.0.0.0/16"]
tags = local.tags
}
resource "azurerm_subnet" "hub_shared" {
name = "shared"
resource_group_name = azurerm_resource_group.main.name
virtual_network_name = azurerm_virtual_network.hub.name
address_prefixes = ["10.0.1.0/24"]
}
resource "azurerm_virtual_network" "spoke" {
name = "certlabpro-az-305-spoke"
resource_group_name = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
address_space = ["10.1.0.0/16"]
tags = local.tags
}
resource "azurerm_subnet" "spoke_app" {
name = "app"
resource_group_name = azurerm_resource_group.main.name
virtual_network_name = azurerm_virtual_network.spoke.name
address_prefixes = ["10.1.1.0/24"]
}
resource "azurerm_virtual_network_peering" "hub_to_spoke" {
name = "hub-to-spoke"
resource_group_name = azurerm_resource_group.main.name
virtual_network_name = azurerm_virtual_network.hub.name
remote_virtual_network_id = azurerm_virtual_network.spoke.id
allow_forwarded_traffic = true
}
resource "azurerm_virtual_network_peering" "spoke_to_hub" {
name = "spoke-to-hub"
resource_group_name = azurerm_resource_group.main.name
virtual_network_name = azurerm_virtual_network.spoke.name
remote_virtual_network_id = azurerm_virtual_network.hub.id
allow_forwarded_traffic = true
}Key Vault הוא הפרימיטיב של AZ-305 לסודות ותעודות. שתי החלטות ארכיטקטוניות גדולות שהבחינה בודקת: RBAC לעומת Access Policies (RBAC הוא ברירת המחדל המודרנית; Access Policies מיושנות), ומחיקה רכה + הגנת טיהור (soft-delete מופעלת כברירת מחדל; הגנת טיהור (purge protection) הופכת את חלון המחיקה הרכה לבלתי ניתנת לביטול — נדרש עבור משטרי תאימות מסוימים).
אנו מפעילים הרשאת RBAC ומקצים את ישות Terraform הנוכחית כמנהל Key Vault, כך שמשאבי סוד/תעודה הבאים יעבדו. שאלות AZ-305 לגבי ״היישום אינו יכול לקרוא את סיסמת מסד הנתונים שלו״ מסתיימות ב-90% מהמקרים ב״מכיוון שהזהות המנוהלת לא היתה בעלת הרשאת Key Vault Secrets User על הכספת״.
resource "azurerm_key_vault" "main" {
name = "kv-az305-${random_id.suffix.hex}"
resource_group_name = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
tenant_id = data.azurerm_client_config.current.tenant_id
sku_name = "standard"
enable_rbac_authorization = true
soft_delete_retention_days = 7 # 7 minimum; 90 for purge protection in production
purge_protection_enabled = false # set true for production / compliance
public_network_access_enabled = true
tags = local.tags
}
resource "azurerm_role_assignment" "kv_admin_self" {
scope = azurerm_key_vault.main.id
role_definition_name = "Key Vault Administrator"
principal_id = data.azurerm_client_config.current.object_id
}Front Door היא התשובה של AZ-305 ל-מאזן עומסים גלובלי + WAF + CDN. הבחינה בודקת אותה מול שלוש חלופות: Application Gateway (שכבה 7 אזורית), Traffic Manager (מבוסס DNS, ללא מעבר תעבורה), ו-Load Balancer (שכבה 4 אזורית). Front Door היא התשובה הנכונה לכל תרחיש של 'משתמשים מבוזרים גלובלית + HTTPS + WAF + שמירה במטמון'.
אנו מקצים פרופיל Front Door + נקודת קצה (endpoint) + קבוצת מקורות (origin group) בסיסית. בפרודקשן הייתם מחברים Web App או Ingress של AKS כמקור; עבור המעבדה, צורת הטופולוגיה היא מה ששאלות AZ-305 בודקות. שכבת ה-Standard תומכת בתכונות האבטחה והניתוב שהבחינה מצפה להן (WAF, כללים מותאמים אישית, זיקת סשן); Premium מוסיפה מקורות Private Link לגישה פרטית לחלוטין לקצה האחורי.
resource "azurerm_cdn_frontdoor_profile" "main" {
name = "certlabpro-az-305-fd"
resource_group_name = azurerm_resource_group.main.name
sku_name = "Standard_AzureFrontDoor"
tags = local.tags
}
resource "azurerm_cdn_frontdoor_endpoint" "main" {
name = "certlabpro-az-305-${random_id.suffix.hex}"
cdn_frontdoor_profile_id = azurerm_cdn_frontdoor_profile.main.id
tags = local.tags
}
resource "azurerm_cdn_frontdoor_origin_group" "main" {
name = "app-origins"
cdn_frontdoor_profile_id = azurerm_cdn_frontdoor_profile.main.id
session_affinity_enabled = false
load_balancing {
sample_size = 4
successful_samples_required = 3
}
health_probe {
path = "/"
request_type = "HEAD"
protocol = "Https"
interval_in_seconds = 30
}
}תחום עיצוב אחסון נתונים ואינטגרציה של AZ-305, יחד עם עיצוב המשכיות עסקית, תלויים שניהם בקיום יכולת צפייה (observability) סביב חלקי הארכיטקטורה. אנו יוצרים סביבת עבודה של Log Analytics ומחברים אליה יומני גישה של Front Door ויומני ביקורת של Key Vault.
עם תשתית האבחון במקום, ארכיטקטורת הייחוס של AZ-305 מקבלת צורה: כניסה גלובלית (Front Door) ← רשת רכזת-חישורים ← חישור עומסי עבודה ← שכבת סודות (Key Vault) ← תשתית צפייה (Log Analytics). כל תוספת ארכיטקטונית נוספת (Application Gateway מאחורי Front Door, Cosmos DB בחישור, Logic Apps ברכזת) מתחברת לבסיס זה.
resource "azurerm_log_analytics_workspace" "main" {
name = "certlabpro-az-305-logs"
resource_group_name = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
sku = "PerGB2018"
retention_in_days = 30
tags = local.tags
}
resource "azurerm_monitor_diagnostic_setting" "key_vault" {
name = "diag"
target_resource_id = azurerm_key_vault.main.id
log_analytics_workspace_id = azurerm_log_analytics_workspace.main.id
enabled_log {
category = "AuditEvent"
}
metric {
category = "AllMetrics"
enabled = true
}
}
resource "azurerm_monitor_diagnostic_setting" "front_door" {
name = "diag"
target_resource_id = azurerm_cdn_frontdoor_profile.main.id
log_analytics_workspace_id = azurerm_log_analytics_workspace.main.id
enabled_log {
category = "FrontDoorAccessLog"
}
enabled_log {
category = "FrontDoorHealthProbeLog"
}
}terraform destroy מפרק הכל. פרופיל ה-Front Door הוא פריט החיוב הפועל 24/7 (כ-35 דולר לחודש). מחק מייד אם אינך בוחן אותו. ל-Key Vault יש כאן מחיקה רכה של 7 ימים (ניתן להגדרה עד 90); הגדרנו purge_soft_delete_on_destroy = true בספק כך שההשמדה בפועל מטהרת את הכספת במקום להשאיר את מרחב השמות שמור.
AZ-305 מכסה שטח ארכיטקטוני עצום — Application Gateway, Azure Firewall, VPN Gateway + ExpressRoute, Private Link / Private Endpoints, Azure Active Directory B2B / B2C, Conditional Access, Privileged Identity Management, AKS בקנה מידה ארכיטקטוני, Service Fabric, Azure API Management, פריסות זוגות רב-אזוריות, Cosmos / SQL / Storage עם שכפול גיאוגרפי, תכנוני BCDR (Site Recovery), ניהול עלויות בקנה מידה, תכנוני Landing Zone, ויוזמות Azure Policy.
אנו נצמדים לארבעת הפרימיטיבים הבסיסיים מכיוון שהם המצע שכל תכנון רב-רכיבי של AZ-305 מניח. App Gateway יושב ברכזת-חישורים משלב 2. AKS נפרס ל-VNet של החישור. Cosmos DB חושף נקודות קצה פרטיות אל החישור. Defender for Cloud קורא את סביבת העבודה של Log Analytics. ארכיטקטורה היא קומפוזיציה; מעבדה זו נותנת לכם את הצורות הבסיסיות.
לכיסוי של המשטחים שלא נפרסו, סעיפי העיון, המדריך והEditorial של דף הסמכה זה מכילים חומר קונספטואלי.