엔터프라이즈 ID 및 액세스 설계
관리 그룹, 사용자 지정 역할, Privileged Identity Management를 사용해 대규모 RBAC 모델을 설계하고, 민감한 작업에 대한 적시 액세스를 적용합니다.
엔터프라이즈 ID 및 액세스 설계은(는) CoddyKit의 무료 Azure Fundamentals 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Azure Fundamentals 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Azure Fundamentals 강의에는 총 4개의 강의가 포함되어 있습니다.
엔터프라이즈 규모의 ID
엔터프라이즈 Azure 환경에서는 ID 및 액세스 관리가 수백 개의 구독, 수천 명의 사용자, 수십 개의 팀으로 확장되어야 하며, 각 팀마다 리소스 액세스 요구 사항이 다릅니다. 잘 설계된 ID 모델은 과도한 권한 부여(사용자에게 필요 이상으로 많은 액세스 권한이 부여되는 경우)와 불충분한 권한 부여(사용자가 업무를 수행할 수 없는 경우)를 모두 방지합니다. 그 기반은 Microsoft Entra ID와 Azure RBAC, 그리고 Privileged Identity Management (PIM)과 같은 거버넌스 도구입니다.
RBAC 기본 개념 다시 보기
Azure 역할 기반 액세스 제어(RBAC)는 다음 세 가지 구성 요소를 통해 액세스 권한을 부여합니다.
- 보안 주체 — 누구에게 부여할 것인지(사용자, 그룹, 서비스 주체 또는 관리 ID)
- 역할 정의 — 무엇을 허용할 것인지(허용된 작업 집합, 예: 'Contributor')
- 범위 — 어디에 적용할 것인지(관리 그룹, 구독, 리소스 그룹 또는 개별 리소스)
이 세 요소를 결합하면 역할 할당이 생성됩니다. 역할은 계층 구조를 따라 상속되므로 관리 그룹에 할당된 역할은 그 아래의 모든 구독에 적용됩니다.
# Assign the Reader role at a management group level:
az role assignment create \
--assignee 'user@company.com' \
--role 'Reader' \
--scope '/providers/Microsoft.Management/managementGroups/LandingZones'기본 제공 역할과 사용자 지정 역할 비교
Azure는 일반적인 시나리오를 다루는 100개 이상의 기본 제공 역할(Owner, Contributor, Reader 및 서비스별 역할)을 제공합니다. 대부분의 엔터프라이즈 사용 사례에서는 기본 제공 역할만으로 충분합니다. 하지만 기본 제공 역할 중 어느 것도 필요한 권한과 일치하지 않는 경우, 예를 들어 VMs를 읽을 수는 있지만 삭제할 수는 없는 역할이 필요한 경우에는 최소 권한 원칙에 따라 필요한 권한만 정확하게 포함하는 사용자 지정 역할을 만들 수 있습니다.
# Create a custom role:
az role definition create --role-definition '{
"Name": "VM Operator",
"Description": "Can start and stop VMs but cannot create or delete them",
"Actions": [
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/powerOff/action",
"Microsoft.Compute/virtualMachines/read"
],
"NotActions": [],
"AssignableScopes": ["/subscriptions/<subscription-id>"]
}'그룹 기반 액세스 할당
가능하면 개별 사용자 대신 Entra ID 그룹에 역할을 할당해야 합니다. 그룹에 역할을 할당하면 모든 구성원이 해당 역할을 상속합니다. 그러면 여러 범위의 역할 할당을 수정하지 않고 그룹에 사용자를 추가하거나 그룹에서 사용자를 제거하는 것만으로 액세스를 추가하거나 제거할 수 있습니다. 이렇게 하면 관리 부담이 크게 줄어들고 같은 업무를 수행하는 팀 구성원 간에 액세스 권한을 일관되게 유지할 수 있습니다.
# Create a group and assign a role to the group:
az ad group create \
--display-name 'ProductionContributors' \
--mail-nickname 'prod-contributors'
az role assignment create \
--assignee '<group-object-id>' \
--role 'Contributor' \
--scope '/subscriptions/prod-subscription-id'Privileged Identity Management (PIM)
Privileged Identity Management (PIM)은 Azure 리소스와 Entra ID 역할에 대해 Just-In-Time(JIT) 권한 액세스를 제공하는 Entra ID 서비스입니다. 사용자가 영구적인 Owner 또는 전역 관리자 액세스 권한을 보유하는 대신, 권한 있는 역할의 적격 사용자가 되어 높은 수준의 액세스 권한이 필요할 때 활성화를 요청해야 합니다. 활성화 시 MFA, 사유 입력 및 지정된 승인자의 승인이 필요할 수 있습니다.
# Workflow with PIM:
# 1. Security team makes 'alice@company.com' eligible for 'Owner' on prod subscription
# 2. Alice requests activation via PIM portal or myaccess.microsoft.com
# 3. Alice provides justification: 'Emergency patching for CVE-2026-1234'
# 4. Manager approves the request (optional step)
# 5. Alice receives Owner access for 4 hours, then access expires automatically
# 6. All activation events are logged in Entra ID audit logs엔터프라이즈에서 PIM의 이점
PIM은 엔터프라이즈 환경에 다음과 같은 여러 보안 이점을 제공합니다.
- 공격 표면 감소 — 침해될 수 있는 영구 관리자 계정이 존재하지 않습니다.
- 감사 추적 — 모든 활성화 기록에 타임스탬프, 사유 및 승인자가 포함됩니다.
- 액세스 검토 — 관리자가 어떤 사용자를 계속 적격 사용자로 유지할지 정기적으로 확인할 수 있습니다.
- 시간 제한 액세스 — 승인된 액세스도 자동으로 만료되므로, 높은 수준의 권한이 잊힌 채 유지되는 것을 방지합니다.
RBAC 모델 설계
잘 설계된 엔터프라이즈 RBAC 모델은 일반적으로 다음과 같은 계층을 포함합니다.
- 관리 그룹 수준 — 거버넌스 팀에 광범위한 보기 권한 제공 및 정책 할당
- 구독 수준 — 하나의 구독을 관리하는 애플리케이션 팀에 팀 수준의 Contributor 액세스 제공
- 리소스 그룹 수준 — 서비스별 역할 제공(예: Blob 액세스만 필요한 애플리케이션에 Storage Blob Contributor 역할 제공)
- 리소스 수준 — 세분화된 제어가 필요한 예외적인 경우에만 사용
서비스 주체 및 관리형 ID
애플리케이션과 자동화 프로세스는 Azure에 인증할 때 사용자 계정을 사용해서는 안 됩니다. 대신 다음을 사용하세요.
- 서비스 주체 — 클라이언트 ID와 비밀 또는 인증서를 사용하는 Entra ID의 애플리케이션 등록입니다. CI/CD 파이프라인 및 온-프레미스 자동화에 사용됩니다.
- 관리형 ID — Azure에서 호스팅되는 리소스(VM, App Service, AKS)를 위한 자동 관리 자격 증명입니다. 관리하거나 교체할 비밀이 없습니다.
서비스 주체와 관리형 ID에는 필요한 최소 RBAC 역할을 할당하세요.
# Assign a role to a managed identity:
az role assignment create \
--assignee-object-id '<managed-identity-object-id>' \
--assignee-principal-type ServicePrincipal \
--role 'Storage Blob Data Contributor' \
--scope '/subscriptions/<sub-id>/resourceGroups/<rg>/providers/Microsoft.Storage/storageAccounts/<account>'리소스 액세스를 위한 조건부 액세스
Entra ID의 조건부 액세스 정책은 인증 결정에 지능형 제어를 추가합니다. Azure 리소스 관리에서는 관리자 액세스(Azure 포털, CLI)를 다음 조건에서만 허용하도록 요구할 수 있습니다.
- 규정을 준수하는 디바이스(Intune에서 관리)
- 명명된 위치(회사 네트워크 또는 VPN)
- MFA 이후(권한 있는 작업에 항상 적용)
조건부 액세스와 PIM을 결합하면 Azure 관리 액세스를 위한 매우 강력한 보안 태세를 구축할 수 있습니다.
액세스 검토
Entra ID 액세스 검토를 사용하면 관리자가 사용자에게 부여된 액세스가 여전히 필요한지 정기적으로 확인할 수 있습니다. 검토는 리소스 소유자 또는 관리자에게 위임할 수 있으며, 이들은 각 사용자에 대해 '예, 이 사람에게는 여전히 액세스가 필요합니다' 또는 '아니요, 이 액세스를 제거합니다'라고 답합니다. 액세스 검토는 분기별로 예약할 수 있으며, 더 이상 승인되지 않은 액세스의 제거를 자동화하여 시간이 지남에 따라 불필요한 액세스가 누적되는 것을 방지합니다.
비상 액세스 계정
모든 기업은 최소 두 개의 비상 액세스(브레이크 글래스) 계정, 즉 조건부 액세스 또는 MFA 요구 사항으로 보호되지 않는 전역 관리자 계정을 유지해야 합니다(대신 하드웨어 FIDO2 키를 사용합니다). 이 계정은 Entra ID 또는 MFA 시스템을 사용할 수 없고 일반 관리자 계정에 액세스할 수 없을 때만 사용됩니다. 비상 액세스 계정 사용 시 즉시 보안 경고가 발생해야 하며 엄격하게 감사해야 합니다.
빠른 확인
이 단원에서 다룬 Microsoft Azure Fundamentals (AZ-900) 개념의 이해도를 확인해 보세요.
단원 요약
이 단원에서 배운 내용은 다음과 같습니다. 엔터프라이즈 RBAC는 관리 그룹, 구독 및 리소스 그룹 범위에서 그룹 기반 할당을 사용합니다. Privileged Identity Management는 상시 관리자 역할을 없애기 위한 적시 액세스를 제공합니다. 또한 애플리케이션 인증에는 사용자 계정 대신 관리형 ID 및 서비스 주체를 사용해야 합니다. 축하합니다. AZ-900 학습 과정의 엔터프라이즈 아키텍처 및 거버넌스 섹션을 완료했습니다!
자주 묻는 질문
“엔터프라이즈 ID 및 액세스 설계” 강의는 무료인가요?
네 — “엔터프라이즈 ID 및 액세스 설계” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Azure Fundamentals 강의 전체를 잠금 해제할 수 있습니다. Azure Fundamentals 강의에는 총 4개의 강의가 포함되어 있습니다.
“엔터프라이즈 ID 및 액세스 설계”에서 뭘 배우나요?
관리 그룹, 사용자 지정 역할, Privileged Identity Management를 사용해 대규모 RBAC 모델을 설계하고, 민감한 작업에 대한 적시 액세스를 적용합니다. 브라우저에서 직접 실행하는 실습 코드로 Azure Fundamentals을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Azure Fundamentals을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Azure Fundamentals은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.
“엔터프라이즈 ID 및 액세스 설계” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Azure Fundamentals 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Azure Fundamentals 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- Cloud Adoption Framework 개요
- Azure 랜딩 존
- 허브 앤 스포크 네트워크 토폴로지
- 엔터프라이즈 ID 및 액세스 설계