Azure Policy
Azure Policy 정의를 작성하고 할당해 구독 또는 리소스 그룹 범위에서 명명 규칙, 허용되는 리소스 유형, 위치 제한을 자동으로 적용합니다.
Azure Policy은(는) CoddyKit의 무료 Cloud & IT Cert Prep 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cloud & IT Cert Prep 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cloud & IT Cert Prep 강의에는 총 4개의 강의가 포함되어 있습니다.
Azure Policy란 무엇인가요?
Azure Policy는 정책 정의라고 하는 규칙을 정의하고, 할당하고, 관리하여 Azure 리소스의 구성을 제어하거나 감사할 수 있게 해 주는 거버넌스 서비스입니다. 작업을 수행할 수 있는 사용자를 제어하는 RBAC와 달리 Azure Policy는 결과 리소스 구성이 어떤 상태여야 하는지를 제어합니다. 이름 지정 규칙, 승인된 리소스 유형, 필수 Security 구성과 같은 조직 표준을 적용할 때 사용합니다.
Policy 정의
정책 정의는 리소스에 대해 평가할 조건과 조건이 충족될 때 적용할 효과를 정의하는 JSON 문서입니다. Azure는 일반적인 시나리오를 다루는 수백 개의 기본 제공 정책 정의를 제공합니다. 기본 제공 정책이 요구 사항에 맞지 않으면 사용자 지정 정책 정의를 만들 수도 있습니다. 정책 정의는 재사용 가능한 객체이며, 적용되기 전에 범위에 할당해야 합니다.
// Example built-in policy: require a specific tag on all resources
// Policy definition logic (simplified):
{
'if': {
'field': 'tags[Environment]',
'exists': 'false'
},
'then': {
'effect': 'deny'
}
}Policy 효과
정책 정의의 효과는 정책 조건이 트리거될 때 어떤 일이 발생하는지 결정합니다. 주요 효과는 다음과 같습니다. Deny — 정책을 위반하는 리소스 생성 또는 업데이트를 차단합니다. Audit — 작업을 허용하지만 compliance 보고서에 경고를 기록합니다. Append — 생성 전에 리소스에 필수 필드(예: 태그)를 추가합니다. Modify — 기존 또는 새 리소스의 속성을 변경합니다. DeployIfNotExists — 조건이 충족되지 않으면 관련 리소스를 배포합니다(예: 모든 VM에 진단 확장을 배포).
Policy 할당
정책 할당은 특정 범위인 management group, 구독 또는 resource group에 정책 정의를 적용합니다. 해당 범위와 하위 범위에 있는 모든 리소스는 할당된 정책에 따라 평가됩니다. 할당에는 매개 변수를 포함할 수 있습니다. 예를 들어 허용되는 Azure 지역을 제한하는 정책에 매개 변수를 사용할 수 있으므로, 동일한 정의를 서로 다른 management group에 서로 다른 지역 List와 함께 할당할 수 있습니다.
# Assign a built-in policy to restrict allowed locations
az policy assignment create \
--name 'allowed-locations' \
--policy 'e56962a6-4747-49cd-b67b-bf8b01975c4c' \
--scope /subscriptions/<sub-id> \
--params '{"listOfAllowedLocations": {"value": ["eastus", "westeurope"]}}'
# List all policy assignments in a subscription
az policy assignment list \
--scope /subscriptions/<sub-id> \
--output tableInitiative 정의(Policy Set)
Initiative 정의(policy set이라고도 함)는 서로 관련된 여러 정책 정의를 하나의 할당 가능한 패키지로 묶습니다. 20개의 개별 정책을 할당하는 대신 하나의 initiative를 할당할 수 있습니다. Azure는 ISO 27001, NIST SP 800-53, Azure Security Benchmark 및 PCI DSS와 같은 compliance 프레임워크에 사용할 수 있는 기본 제공 initiative를 제공합니다. 예를 들어 CIS Microsoft Azure Foundations Benchmark initiative를 할당하면 구독을 대상으로 180개가 넘는 Security 제어 항목을 동시에 평가할 수 있습니다.
# Assign the Azure Security Benchmark initiative
az policy assignment create \
--name 'azure-security-benchmark' \
--policy-set-definition '1f3afdf9-d0c9-4c3d-847f-89da613e70a8' \
--scope /subscriptions/<sub-id>Compliance 보고
정책을 할당하면 Azure는 범위 내 모든 기존 리소스를 평가하고 compliance 보고서를 생성합니다. 보고서에는 전체 compliance 비율(compliant 리소스 수 / 전체 리소스 수), 각 리소스의 complianceState, 실패한 구체적인 정책 조건이 표시됩니다. 정책 initiative, 범위 또는 리소스 유형별로 필터링할 수 있습니다. NonCompliant 리소스에는 위반한 정확한 정책 규칙이 표시되므로 문제 해결 방향을 파악할 수 있습니다.
# Get policy compliance summary
az policy state summarize \
--subscription <sub-id> \
--output json
# List all non-compliant resources
az policy state list \
--filter 'complianceState eq NonCompliant' \
--output table문제 해결 작업
DeployIfNotExists 또는 Modify 효과가 있는 정책의 경우 Azure에서 문제 해결 작업을 만들어 기존 NonCompliant 리소스를 compliance 상태로 전환할 수 있습니다. 예를 들어 모든 VM에 Log Analytics 에이전트를 배포하는 DeployIfNotExists 정책에 대해 문제 해결 작업을 트리거하면, 현재 에이전트가 없는 기존 모든 VM에 에이전트를 설치할 수 있습니다. 새 리소스는 생성될 때 자동으로 문제를 해결하지만 기존 리소스에는 명시적인 문제 해결 작업이 필요합니다.
# Create a remediation task for existing non-compliant resources
az policy remediation create \
--name 'remediate-vm-logs' \
--policy-assignment 'deploy-vm-log-analytics' \
--resource-group myRGPolicy 예외
경우에 따라 특정 리소스를 정책에서 제외해야 할 정당한 이유가 있을 수 있습니다. 예를 들어 수정할 수 없는 Legacy 리소스나 변경 요청에 기록된 승인된 예외가 이에 해당합니다. 정책 예외를 사용하면 정책을 전체적으로 제거하지 않고 특정 리소스나 resource group을 정책 할당에서 제외할 수 있습니다. 예외에는 선택적 만료 날짜와 예외 사유를 기록하기 위한 범주(Waiver 또는 Mitigated)가 있습니다.
# Create a policy exemption for a specific resource group
az policy exemption create \
--name 'legacy-rg-exemption' \
--policy-assignment 'allowed-locations' \
--scope /subscriptions/<sub-id>/resourceGroups/legacyRG \
--exemption-category Waiver \
--expires-on '2027-01-01T00:00:00Z' \
--description 'Legacy workload pending migration'DeployIfNotExists: 대규모 구성
DeployIfNotExists는 가장 강력한 정책 효과 중 하나입니다. 필수 관련 리소스 없이 리소스가 생성되면(예: 진단 확장이 없는 VM) 정책이 ARM 템플릿 배포를 자동으로 트리거하여 누락된 구성 요소를 추가합니다. 이를 통해 Azure Policy를 자동 구성 관리 도구로 사용할 수 있습니다. 즉, 모든 VM에 항상 모니터링 에이전트가 있고, 모든 스토리지 계정에 항상 고급 위협 방지가 적용되며, 모든 SQL Database에 항상 감사 기능이 사용되도록 보장할 수 있습니다.
일반적인 Policy 사용 사례
조직은 다양한 거버넌스 시나리오에서 Azure Policy를 사용합니다. 위치 제한 — 데이터 주권을 위해 승인된 Azure 지역에서만 리소스를 허용합니다. 허용된 리소스 유형 — 비용이 높거나 승인되지 않은 서비스의 배포를 방지합니다. 태그 적용 — 모든 리소스에 CostCentre 및 Environment 태그를 요구합니다. SKU 제한 — Non-Production 구독에서 VM 크기를 비용에 적합한 계층으로 제한합니다. Security 기준 — 최소 TLS 1.2를 적용하고, 스토리지 계정의 공용 네트워크 액세스를 사용하지 않도록 설정하며, 프라이빗 엔드포인트를 요구합니다.
Azure Policy와 RBAC 비교
RBAC와 Azure Policy의 서로 다른 역할을 이해하는 것이 중요합니다. RBAC는 작업을 수행할 수 있는 사용자를 제어하며 Identity에 따라 작업을 허용하거나 거부합니다. Azure Policy는 리소스 구성이 어떤 상태여야 하는지를 제어하며, 작업을 수행하는 사람이 누구인지와 관계없이 속성을 평가하고 적용합니다. 제대로 관리되는 Environment에는 두 가지가 모두 필요합니다. RBAC는 권한이 부여된 사람만 리소스를 배포하도록 보장하고, Azure Policy는 해당 리소스가 구성 표준을 준수하도록 보장합니다.
빠른 확인
이 lesson에서 배운 Microsoft Azure Fundamentals (AZ-900) 개념을 이해했는지 확인해 보세요.
lesson 요약
이 lesson에서는 다음을 배웠습니다. Azure Policy는 모든 범위에서 리소스 구성을 제어하기 위한 조건과 효과를 정의합니다. Initiative 정의는 여러 정책을 하나의 할당 가능한 compliance 패키지로 묶습니다. 또한 DeployIfNotExists를 사용하면 누락된 구성 요소에 대해 대규모로 구성을 자동 적용할 수 있습니다. 다음에는 Azure 리소스를 보호하기 위한 리소스 태그와 리소스 잠금을 살펴보겠습니다.
자주 묻는 질문
“Azure Policy” 강의는 무료인가요?
네 — “Azure Policy” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cloud & IT Cert Prep 강의 전체를 잠금 해제할 수 있습니다. Cloud & IT Cert Prep 강의에는 총 4개의 강의가 포함되어 있습니다.
“Azure Policy”에서 뭘 배우나요?
Azure Policy 정의를 작성하고 할당해 구독 또는 리소스 그룹 범위에서 명명 규칙, 허용되는 리소스 유형, 위치 제한을 자동으로 적용합니다. 브라우저에서 직접 실행하는 실습 코드로 Cloud & IT Cert Prep을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Cloud & IT Cert Prep을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Cloud & IT Cert Prep은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“Azure Policy” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Cloud & IT Cert Prep 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Cloud & IT Cert Prep 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.