Microsoft AZ-500: 보안 상태 관리 및 거버넌스 — 학습 가이드
다음의 일부입니다: Microsoft Azure Security Engineer Associate AZ-500 — 학습 가이드. 검증된 답안으로 연습하기: Microsoft 시험 허브, 또는 다음에서 시간 제한 모의고사 풀기: ExamRoll.io.
정책 기반 거버넌스 및 랜딩 존
Azure Policy는 클라우드 드리프트(drift)에 대한 예방 및 교정 가드레일 시스템입니다. 주요 요소는 다음과 같습니다:
- 정의(Definition): 조건과 효과를 포함하는 규칙입니다. 일반적인 효과에는 Deny, Audit, Append, Modify, DeployIfNotExists, AuditIfNotExists, Disabled가 있습니다. 협상 불가능한 가드레일(예: NIC에 공용 IP 허용 안 함)에는 Deny를 사용합니다. 필요한 에이전트나 확장(예: 맬웨어 방지 또는 MDE)을 자동 설치하려면 DeployIfNotExists를 사용합니다.
- 이니셔티브(Initiative): 일관된 할당을 위해 매개 변수화된 정책 정의의 큐레이션된 집합입니다(예: Azure Security Benchmark 이니셔티브).
- 할당(Assignment): 먼저 관리 그룹에 범위를 지정한 다음, 특정 재정의를 위해 구독 또는 리소스 그룹에 범위를 지정합니다. 모니터링 후 강력한 필수 정책에 대해 “강제 모드(enforcement mode)“를 활성화합니다.
- 제외(Exemptions): Waiver(수용된 위험) 또는 Mitigated(보상 통제) 범주를 사용합니다. 재평가를 보장하기 위해 항상 만료 날짜를 설정해야 합니다.
- 수정 작업(Remediation tasks): 기존 리소스를 구성하기 위해 DeployIfNotExists 및 Modify에 필요합니다. 정책 할당의 관리 ID에 대상 범위에 대한 Contributor(필요에 따라 데이터 평면 포함) 권한을 부여합니다.
Windows VM에 맬웨어 방지 확장을 강제 적용하는 예제 정책 스켈레톤:
{
"properties": {
"displayName": "Deploy antimalware on Windows VMs",
"policyType": "Custom",
"mode": "Indexed",
"parameters": {},
"policyRule": {
"if": {
"allOf": [
{ "field": "type", "equals": "Microsoft.Compute/virtualMachines" },
{ "field": "Microsoft.Compute/virtualMachines/osProfile.windowsConfiguration", "exists": "true" }
]
},
"then": {
"effect": "DeployIfNotExists",
"details": {
"type": "Microsoft.Compute/virtualMachines/extensions",
"name": "IaaSAntimalware",
"roleDefinitionIds": ["/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"],
"deploymentScope": "resourceGroup",
"existenceCondition": { "field": "name", "equals": "IaaSAntimalware" },
"deployment": { "properties": { "mode": "incremental", "template": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "resources": [] } } }
}
}
}
}
}
랜딩 존 거버넌스는 상속 및 직무 분리를 체계화합니다:
- 관리 그룹(Management groups): 명확한 계층 구조(테넌트 루트 → 플랫폼 → Corp/Online → Prod/NonProd와 같은 환경)를 구축합니다. 상속을 극대화하고 구독별 드리프트를 최소화하기 위해 관리 그룹(MG) 수준에서 이니셔티브와 RBAC를 할당합니다. 권한 있는 역할을 검색하여 PIM에 온보딩합니다. PIM을 구성하려면 Global Administrator가 필요합니다.
- 구독 구성(Subscription organization): 환경 및 워크로드 중요도에 따라 분리하여 영향 반경과 예산을 격리합니다. 사전 할당된 이니셔티브 및 RBAC가 있는 아키타입(예: “Mission-Critical AKS”, “Data Platform”)을 사용합니다.
- 태그(Tags): 필수 태그(Owner, CostCenter, DataSensitivity, Environment)를 표준화하고 정규화를 위해 Modify/Append를 통해 강제 적용합니다. 프로덕션 환경에서 필수 태그가 누락된 경우 리소스 생성을 Deny합니다.
- 리소스 잠금(Resource locks): CanNotDelete는 중요한 공유 서비스를 보호하고, ReadOnly는 모든 PUT 작업을 방지합니다. 정책 강화 후에만 드물게 사용해야 합니다. VM 또는 해당 리소스 그룹에 대한 ReadOnly 잠금은 할당 취소된 VM의 시작을 막고 구성 변경을 차단합니다.
레거시 블루프린트 요구 사항의 경우, ARM/Bicep, Template Specs 및 이니셔티브 할당을 사용하는 “코드형 정책(policy-as-code)“을 채택하여 블루프린트와 유사한 일관된 배포를 대규모로 달성합니다.
보안 인벤토리, 클라우드 앱, 데이터 거버넌스 및 감사
대규모 인벤토리 및 규정 준수에는 Azure Resource Graph(ARG)와 Policy 규정 준수 보고서가 사용됩니다. ARG 쿼리는 수백만 개의 리소스에 대한 거의 실시간에 가까운 상태 뷰를 제공합니다:
securityresources
| where type =~ 'microsoft.security/assessments'
| where properties.status.code == 'Unhealthy'
| summarize unhealthy=count() by tostring(properties.displayName)
| order by unhealthy desc
리소스 상태를 태그와 조인하여 데이터 민감도에 따라 분류합니다:
resources
| where type == 'microsoft.compute/virtualmachines'
| project id, name, resourceGroup, subscriptionId, dataSensitivity = tostring(tags['DataSensitivity'])
| join kind=leftouter (
securityresources
| where type =~ 'microsoft.security/assessments'
| where properties.status.code == 'Unhealthy'
| summarize issues=count() by tolower(tostring(properties.resourceDetails.Id))
) on $left.id == $right['tolower_tostring_properties_resourceDetails_Id']
| project name, dataSensitivity, issues = coalesce(issues, 0)
| order by issues desc
Defender for Cloud Apps(MDCA)는 SaaS 위험을 관리합니다:
- 앱 검색: Cloud Discovery를 통해 방화벽/프록시 로그를 수집하거나 Defender for Endpoint와 통합하여 엔드포인트 기반 검색을 수행합니다. 위험 점수 및 사용량에 따라 앱을 분류하고, 승인/비승인으로 표시하여 조건부 액세스 및 프록시 차단을 유도합니다.
- 세션 제어: Conditional Access App Control을 사용하여 민감한 작업에 대한 세션을 프록시합니다. 위험한 세션이나 관리되지 않는 디바이스에 대해 다운로드 차단, 업로드 모니터링, 콘텐츠 수정 또는 워터마크 적용과 같은 실시간 정책을 적용합니다.
- 거버넌스 작업: Microsoft 365에서 파일을 격리하거나 레이블을 지정하고, OAuth 앱 동의를 철회하며, 외부 공유를 제거하고, 위험한 사용자를 일시 중단하고, 앱 소유자에게 알립니다. 반복적인 강제 조치를 자동화하여 구성 변경(드리프트)을 방지합니다.
Microsoft Purview는 거버넌스를 데이터로 확장합니다:
- 데이터 맵 및 검색: Azure Storage, SQL, Synapse 및 멀티클라우드 저장소를 등록하고 스캔하여 자산과 계보(lineage)를 검색합니다. 기본 제공 및 사용자 지정 분류자를 사용하여 분류합니다.
- 민감도 레이블 및 보호: 암호화 및 사용 권한이 포함된 레이블을 적용하고, 콘텐츠 및 컨텍스트에 따라 자동으로 레이블을 지정합니다. Microsoft 365에서 레이블 기반 액세스를 강제하고 DLP와 통합하여 데이터 반출을 방지합니다.
- 정책 연계: Purview 민감도를 태그(예: DataSensitivity)에 매핑하고 Azure Policy를 통해 보상 제어를 적용합니다(예: HighlyConfidential 저장소에 Private Endpoints 요구).
감사 추적은 변조 방지 기능이 있고 완전해야 합니다:
- Azure Activity Log: 구독 범위에서 컨트롤 플레인 작업을 기록합니다. 진단 설정을 통해 Log Analytics로 스트리밍하고 Storage에 보관합니다. 내부자 위협을 최소화하기 위해 구독 외부의 중앙 “Security-Logs” 구독에 장기 사본을 보관합니다.
- 리소스 진단 설정: 주요 공급자(Key Vault, Storage, SQL, AKS, Network Security Groups)에 대해 활성화하여 데이터 플레인 및 서비스 로그를 캡처합니다. 탐지를 위해 Log Analytics로, 보존을 위해 Storage로 라우팅합니다.
- 로그를 위한 변경 불가능한 스토리지: 시간 기반 보존 또는 법적 보존(WORM) 기능이 있는 Blob Storage를 사용합니다.
allowProtectedAppendWritesAll을 활성화하여 불변성이 적용되는 동안에도 진단 로그가 계속 추가될 수 있도록 합니다. 비용 관리를 위해 수명 주기 정책을 구성하되, 의무 보존 기간 내에는 절대 삭제하지 않습니다. 이는 규제 증거 및 인시던트 포렌식의 기반이 됩니다.
실제 문제 시나리오
글로벌 소매업체인 Contoso는 두 개의 새로운 프로덕션 구독을 온보딩하면서 보안 상태를 표준화하고, Azure Security Benchmark 규정 준수를 달성하며, 운영 마찰을 최소화하면서 7년 동안 변경 불가능한 로그를 보존해야 합니다.
- 관리 그룹 수준에서 거버넌스 수립
- Prod 관리 그룹을 생성하고 두 구독을 그 아래에 배치합니다.
- 근거: 상속을 통해 구독별 구성 변경(드리프트) 없이 일관된 정책, Defender 플랜 및 RBAC를 보장하고 구성 부채를 줄입니다.
- 보안 이니셔티브 및 Defender for Cloud 플랜 할당
- 스토리지 및 SQL의 공용 IP에 대해 Deny를 포함하는 Azure Security Benchmark 이니셔티브를 할당합니다. Prod MG에서 Defender for Servers Plan 2, Storage, SQL, Containers, Key Vault 및 DNS를 활성화합니다.
- 근거: 플랜은 고급 탐지 기능을 활성화하고, 이니셔티브는 제어를 가드레일로 구현합니다. MG 범위 할당은 균일한 강제 적용과 일관된 보안 점수 계산을 보장합니다.
- 정책 기반 자동화 및 예외 구현
- 필요한 곳에 MDE 및 Log Analytics 에이전트를 자동 설치하기 위해 DeployIfNotExists 정책을 추가하고, 기존 리소스에 대한 수정 작업을 생성합니다. 즉시 온보딩할 수 없는 레거시 VM에 대해서는 만료 기한이 있는 예외를 사용합니다.
- 근거: DeployIfNotExists는 가이드를 실행으로 전환합니다. 기간이 정해진 예외는 중요한 운영을 차단하지 않으면서 규정 준수 모멘텀을 유지합니다.
- 보안 점수 기반 수정 워크플로 구성
- Defender for Cloud에서 Logic App 워크플로를 생성하여, Prod 환경에서 3% 이상의 점수 영향이 있는 개선 조치가 비정상 상태가 될 경우 P1 티켓을 열고 리소스 소유자에게 자동으로 알립니다.
- 근거: 점수 영향은 측량 가능한 위험 감소에 맞춰 수정을 조정하며, 자동화는 수동 분류 없이 SLO를 강제 적용합니다.
- 변경 불가능한 감사 로그 중앙화
- 각 구독의 Activity Log와 주요 리소스(Key Vault, Storage, SQL, AKS)에서 진단 설정을 생성하여 중앙 Log Analytics 작업 영역과 7년 시간 기반 보존 정책 및
allowProtectedAppendWritesAll이 설정된 Storage 계정으로 보냅니다. - 근거: 중앙화는 탐지 및 규정 준수를 단순화합니다. 변경 불가능한 스토리지는 감사 및 포렌식에 필요한 부인 방지 기능을 제공합니다.
- SaaS 사용 및 이그레스(egress) 위험 관리
- 앱 검색을 위해 Defender for Cloud Apps를 Defender for Endpoint에 연결합니다. 비승인된 고위험 앱을 표시하고, 승인된 앱에 액세스하는 관리되지 않는 디바이스에 대해 Conditional Access App Control을 강제 적용합니다.
- 근거: 섀도우 IT 위험을 줄이고 관리되는 환경을 방해하지 않으면서 실시간 세션 제어를 강제합니다.
- Purview를 통한 데이터 거버넌스 내재화
- Contoso의 Storage 및 SQL 자산을 Purview에 등록하고, 스캔을 실행하며, 민감도 레이블을 자동으로 적용합니다. 레이블을 Environment 및 DataSensitivity 태그 정책에 매핑하여 HighlyConfidential 저장소에 Private Endpoints를 요구하도록 합니다.
- 근거: 데이터 인식 정책은 민감한 데이터가 발견된 위치에 네트워크 강화가 자동으로 적용되도록 보장하여, 데이터 거버넌스와 인프라 보안 간의 선순환 구조를 완성합니다.
← 키 관리 · 모든 도메인 · Microsoft Sentinel 및 보안 운영 →
이 문제 연습하기 → · ExamRoll.io에서 시간 제한 연습 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
시험 합격하기 →