נבדק לאחרונה: מאי 2026
בנו את שירותי AWS של בחינת SC-100 עם Terraform פשוט — בלוק אחד בכל פעם, כאשר כל אחד מהם מקושר בחזרה לתחום במבחן. אותו הקוד עובד גם ב-OpenTofu.
עד סוף מעבדה זו תצייד, באמצעות Terraform פשוט, את שלד אבטחת אפס אמון (Zero Trust) של SC-100 — מדיניות גישה מותנית (Conditional Access) מקוצרת דרך ספק ה-azuread, Microsoft Defender for Cloud + Sentinel מחוברים לסביבת עבודה אחת של Log Analytics, הקצאת מדיניות Azure Policy שאוכפת 'חשבונות אחסון חייבים לדרוש HTTPS' בכל המנוי, ו-Key Vault עבור שכבת הסודות של הארכיטקטורה. זהו תחום ה-SC-100 תכנון אסטרטגיית וארכיטקטורת Zero Trust בחמישה בלוקים.
גרור את קטעי הקוד לקובץ main.tf אחד, הפעל terraform init, ולאחר מכן terraform apply צעד אחר צעד.
>= 1.5 או OpenTofu >= 1.6.az login).azuread עבור מדיניות הגישה המותנית (Conditional Access).רישיון Entra P1 הוא העלות המשמעותית — ללא רישיון דייר (tenant) קיים, $6 למשתמש לחודש הוא סכום ממשי. Foundational CSPM ונתוני Sentinel במעבדה הם למעשה בחינם.
פתיחת Azure סטנדרטית + ספק ה-azuread עבור גישה מותנית (Conditional Access).
terraform {
required_version = ">= 1.5"
required_providers {
azurerm = { source = "hashicorp/azurerm", version = "~> 4.0" }
azuread = { source = "hashicorp/azuread", version = "~> 3.0" }
}
}
provider "azurerm" {
features {
key_vault {
purge_soft_delete_on_destroy = true
}
}
}
provider "azuread" {}
data "azurerm_client_config" "current" {}
data "azurerm_subscription" "current" {}
locals {
tags = {
Project = "certlabpro-sc-100"
ManagedBy = "terraform"
}
}
resource "azurerm_resource_group" "main" {
name = "certlabpro-sc-100-rg"
location = "eastus"
tags = local.tags
}גישה מותנית (Conditional Access) היא פרימיטיב הזהות של SC-100 Zero Trust: אימות מפורש — כל בקשת גישה מוערכת מול הקשר (משתמש, מכשיר, מיקום, אפליקציה, סיכון) לפני שהיא מאושרת. אנו יוצרים מדיניות במצב דיווח בלבד (report-only) שאומרת 'עבור כל המשתמשים הניגשים לכל יישומי הענן, דרוש MFA'. מצב דיווח בלבד פירושו שהמדיניות מתעדת מה היה קורה אם הייתה נאכפת — הנתיב המומלץ על ידי SC-100 לפני העברת מדיניות גישה מותנית למצב מופעל (enabled).
ארכיטקטורות Zero Trust אמיתיות מערמות מדיניות גישה מותנית רבות — מבוססות סיכון, מבוססות מיקום, מבוססות תאימות מכשירים, בקרת הפעלות (session-control). מדיניות מקוצרת זו היא התבנית; תחום ה-SC-100 תכנון אסטרטגיה לאבטחת גישה מועדפת (privileged access) בודק את הרכב המדיניות הרב-שכבתית.
resource "azuread_conditional_access_policy" "require_mfa_report" {
display_name = "certlabpro-sc-100-require-mfa-report-only"
state = "enabledForReportingButNotEnforced"
conditions {
client_app_types = ["all"]
users {
included_users = ["All"]
}
applications {
included_applications = ["All"]
}
}
grant_controls {
operator = "OR"
built_in_controls = ["mfa"]
}
}ה-SC-100 הערכת אסטרטגיות טכניות של ממשל, סיכון ותאימות (GRC) בודק את המטרה הכפולה של שני שירותים אלו: Defender for Cloud הוא שכבת ה-מצב האבטחתי (posture) (הערכת תאימות רציפה, המלצות אבטחה); Sentinel הוא שכבת ה-זיהוי (detection) (ציד איומים ב-KQL, תגובה לאירועים). יחד הם התשובה של מיקרוסופט לשאלה 'איך אני מתכנן נראות אבטחה עבור סביבת Zero Trust?'.
אנו מחברים את שניהם לסביבת עבודה אחת של Log Analytics — ארכיטקטורת הייחוס של SC-100 ליעילות עלות (נתונים נוחתים פעם אחת, שני השירותים קוראים מאותו מאגר).
resource "azurerm_log_analytics_workspace" "main" {
name = "log-sc100"
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_security_center_subscription_pricing" "cspm" {
tier = "Free" # Foundational CSPM
resource_type = "CloudPosture"
}
resource "azurerm_sentinel_log_analytics_workspace_onboarding" "main" {
workspace_id = azurerm_log_analytics_workspace.main.id
}Azure Policy הוא הפרימיטיב של SC-100 תכנון אסטרטגיה לממשל ותאימות — הוא אוכף כללים בכל משאב בטווח (scope) נתון. אנו מקצים את המדיניות המובנית Secure transfer to storage accounts should be enabled בטווח המנוי עם effect = Deny, מה שמונע יצירת חשבון אחסון חדש כלשהו המאפשר HTTP. הבחינה בודקת הבחנה זו של DenyAssignment לעומת Audit: Deny מונע את התרחשות התצורה השגויה; Audit רק מסמן אותה בדיעבד.
עקרון ה-Zero Trust שאותו הוא אוכף הוא הצפנה במעבר כברירת מחדל — אחד מהנושאים החוזרים בבחינת SC-100. פריסות Zero Trust אמיתיות משתמשות ביוזמות מדיניות (Policy initiatives) (קבוצות של מדיניות) כדי לאכוף עשרות בקרות בבת אחת; זוהי הצורה הקטנה ביותר שניתנת להדגמה.
# Look up the built-in policy definition by name.
data "azurerm_policy_definition" "storage_https" {
display_name = "Secure transfer to storage accounts should be enabled"
}
resource "azurerm_subscription_policy_assignment" "storage_https" {
name = "certlabpro-sc-100-storage-https"
display_name = "Storage accounts must require HTTPS"
description = "Enforces secure transfer (HTTPS-only) on all storage accounts in the subscription."
policy_definition_id = data.azurerm_policy_definition.storage_https.id
subscription_id = data.azurerm_subscription.current.id
# The built-in policy defaults to Audit; force Deny for Zero Trust enforcement.
parameters = jsonencode({
effect = {
value = "Deny"
}
})
}ארכיטקטורות Zero Trust מרכזות סודות בכספת מחוזקת — RBAC בלבד, ללא קיצורי דרך של מפתח אדמין, מחיקה רכה (soft-delete) + הגנת טיהור (purge protection) מופעלת. אנו מקצים את הכספת עם הגנת טיהור כבוי (off) לנוחות ניקוי המעבדה; בייצור, לכל כספת המומלצת על ידי SC-100 יש purge_protection_enabled = true כדי לעמוד בדרישות התאימות הסטנדרטיות של 'מחיקה בלתי ניתנת לשחזור נדרשת'.
כאשר חמשת הבלוקים ממוקמים (גישה מותנית (Conditional Access) לזהות, Defender + Sentinel למצב אבטחתי וזיהוי, Azure Policy למעקות בטיחות (guardrails), Key Vault לסודות), שלד ה-SC-100 Zero Trust מעוצב. כל תבנית ארכיטקטונית נוספת של SC-100 (Privileged Identity Management (PIM) להעלאת הרשאות בזמן אמת (just-in-time elevation), Microsoft Purview לסיווג נתונים, Defender XDR להגנה מאוחדת מפני איומים) נבנית על בסיס זה.
resource "azurerm_key_vault" "main" {
name = "kv-sc100-${substr(replace(uuid(), "-", ""), 0, 6)}"
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
purge_protection_enabled = false # set true in production for compliance
tags = local.tags
lifecycle {
ignore_changes = [name]
}
}
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
}terraform destroy הורס הכל. הערות:
https_traffic_only_enabled שלהם (המדיניות אוכפת יצירה; היא אינה מגדירה מחדש משאבים קיימים).purge_soft_delete_on_destroy = true בספק אכן מבצע טיהור מלא.SC-100 מכסה שטח ארכיטקטוני עצום שמעבדה זו אינה יכולה להכיל — Privileged Identity Management (PIM), Microsoft Entra Identity Protection, משטח האינטגרציה המלא של Microsoft Defender XDR, Microsoft Purview (ממשל נתונים + סיכון + מנהל תאימות + סיכון פנימי (Insider Risk) + גילוי אלקטרוני (eDiscovery) + הגנת מידע / DLP), מרכז התאימות של Microsoft 365, יוזמות Azure Policy (קבוצות של מדיניות, התשובה של SC-100 לייצור), שכבת ה-CSPM-Plus בתשלום של Defender for Cloud (שאילתות גרף נכסים, סריקה ללא סוכן, ניתוח נתיבי התקפה), Azure Lighthouse לניהול מרובה דיירים (multi-tenant), וחוויית Defender for Cloud המלאה בריבוי עננים (מחברי AWS / GCP).
אנו נצמדים לפרימיטיבים של Conditional Access + Defender + Sentinel + Azure Policy + Key Vault מכיוון שהם התשתית שעליה מורכבת כל ארכיטקטורת SC-100 מתקדמת יותר. PIM מעלה חברות בקבוצות Entra שמדיניות גישה מותנית תלויה בהן. Defender XDR מעשיר את התראות Defender for Cloud. Purview מסווג נתונים הנמצאים בחשבונות אחסון מאובטחים על ידי Key Vault. יוזמות מדיניות מאגדות את הבקרות שהגדרת כאן לחבילות תאימות.
לכיסוי שירות-אחר-שירות, ראה את הקטעים עיון, מדריך ו-Editorial בדף אישור זה.