Последняя проверка: май 2026 г.
Разверните сервисы AWS для экзамена SC-100 с помощью чистого Terraform: пошаговое руководство с привязкой каждого блока к разделам экзамена. Код также совместим с OpenTofu.
К концу этой лабораторной работы вы подготовите, используя чистый Terraform, каркас Zero Trust для SC-100 — заглушку политики условного доступа через провайдер azuread, Microsoft Defender for Cloud + Sentinel, подключенные к единой рабочей области Log Analytics, назначение политики Azure, которое обеспечивает 'учетные записи хранения должны требовать HTTPS' для всей подписки, и Key Vault для уровня секретов архитектуры. Это домен SC-100 "Разработка стратегии и архитектуры Zero Trust" в пяти блоках.
Вставьте фрагменты кода в один файл main.tf, выполните terraform init, затем terraform apply шаг за шагом.
>= 1.5 или OpenTofu >= 1.6.az login).azuread для политики условного доступа.Лицензия Entra P1 — самая значительная; без существующей лицензии клиента $6/пользователь/месяц — это реальная стоимость. Foundational CSPM и лабораторные данные Sentinel по сути бесплатны.
Стандартное начало Azure + провайдер azuread для условного доступа.
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) — это примитив идентификации Zero Trust для SC-100: явная проверка — каждый запрос на доступ оценивается с учетом контекста (пользователь, устройство, местоположение, приложение, риск) перед предоставлением. Мы создаем политику в режиме "только отчетность", которая гласит: "для всех пользователей, обращающихся ко всем облачным приложениям, требовать MFA". Режим "только отчетность" означает, что политика регистрирует то, что произошло бы при ее принудительном применении — путь, рекомендованный SC-100, прежде чем переводить политику CA в состояние включена.
Настоящие архитектуры Zero Trust используют множество политик CA — на основе рисков, местоположения, соответствия устройств, управления сессиями. Эта заглушка демонстрирует форму; домен SC-100 "Разработка стратегии обеспечения безопасности привилегированного доступа" проверяет композицию многоуровневых политик.
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 — это уровень состояния безопасности (непрерывная оценка соответствия, рекомендации по безопасности); Sentinel — это уровень обнаружения (охота KQL, реагирование на инциденты). Вместе они представляют собой ответ Microsoft на вопрос: "как мне спроектировать наблюдаемость безопасности для среды 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 Разработка стратегии управления и соответствия — он обеспечивает применение правил ко всем ресурсам в определенной области. Мы назначаем встроенную политику Secure transfer to storage accounts should be enabled на уровне подписки с effect = Deny, что предотвращает создание любых новых учетных записей хранения, разрешающих HTTP. Экзамен проверяет различие между DenyAssignment против Audit: Deny предотвращает возникновение неправильной конфигурации; Audit лишь отмечает ее по факту.
Принцип Zero Trust, который это обеспечивает, — это шифрование при передаче по умолчанию — одна из повторяющихся тем экзамена SC-100. Реальные развертывания Zero Trust используют Инициативы политики (группы политик) для одновременного применения десятков элементов управления; это наименьшая демонстрируемая форма.
# 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, без обходных путей для ключей администратора, с включенной защитой от обратимого удаления и очистки. Мы развертываем хранилище с защитой от очистки отключенной для удобства очистки лаборатории; в продакшене каждое рекомендованное SC-100 хранилище имеет purge_protection_enabled = true для соответствия стандартным требованиям "требуется необратимое удаление".
С пятью блоками на месте (условный доступ для идентификации, Defender + Sentinel для оценки состояния безопасности и обнаружения, Политика Azure для защитных механизмов, Key Vault для секретов) каркас SC-100 Zero Trust сформирован. Каждый дополнительный архитектурный шаблон SC-100 (Privileged Identity Management для повышения привилегий "точно в срок", 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 (управление данными + риски + менеджер соответствия + риски инсайдерской деятельности + eDiscovery + Information Protection / DLP), центр соответствия Microsoft 365, инициативы политики Azure (группы политик, производственное решение SC-100), платный уровень CSPM-Plus Defender for Cloud (запросы графов активов, безагентное сканирование, анализ путей атаки), Azure Lighthouse для управления несколькими клиентами и весь опыт многооблачного Defender for Cloud (соединители AWS / GCP).
Мы придерживаемся примитивов Условный доступ + Defender + Sentinel + Azure Policy + Key Vault, потому что они являются основой, на которой строится каждая более сложная архитектура SC-100. PIM повышает членство в группах Entra, на которых основаны условия условного доступа. Defender XDR обогащает оповещения Defender for Cloud. Purview классифицирует данные, хранящиеся в защищенных Key Vault учетных записях хранения. Инициативы политики объединяют определенные здесь элементы управления в пакеты соответствия.
Для получения информации по каждой службе см. разделы Просмотр, Справочник и Editorial на этой странице сертификации.