AZ-104 핸즈온 : Microsoft Entra ID ID 관리 P2 - Azure RBAC(Azure role-based access control) 1
클라우드 리소스에 대한 액세스 관리는 클라우드에서 가장 기본이 되고 중요한 기능이다. Azure RBAC(Azure role-based access control)은 중요한 도구로서 역할 한다.
Azure RBAC는 Azure Resource Manager를 기반으로 구축된 권한 부여 시스템으로, Azure 리소스에 대한 세부적인 액세스 관리를 제공한다.
Azure RBAC는 사용자, 그룹, 애플리케이션에 대해 세분화된 접근 권한을 부여함으로써 Azure 리소스의 보안과 관리를 효율적으로 수행할 수 있도록 지원한다. 이를 통해 조직은 “최소 권한 원칙”을 준수하며, 리소스에 대한 접근을 체계적으로 제어할 수 있다. “최소 권한 원칙”은 제로 트러스트의 핵심이 되는 주요 원칙 중 하나이다.
이번 글은 Azure 및 Microsoft Entra ID 역할에 대한 이론과 그에 따른 핸즈온으로 각각 나누워 게시 하도록 하겠다.
Azure Role의 이해
1. RBAC의 기본 개념
핵심 개념을 간단하게 설명하자면 "누가(Who), 무엇을(What), 어디에서(Where) 할 수 있는가?"를 정의 해주는 것이다. 각각은 다음을 의미한다.
- Who(누가): Entra ID 테넌트 내의 사용자, 그룹, 서비스 주체 등의 보안 주체.
- What(무엇을): 역할 정의(Role Definition)와 역할 할당(Role Assignment)을 통해 보안 주체에게 부여된 권한.
- Where(어디에서): 역할이 적용되는 범위(Scope)로, 관리 그룹, 구독, 리소스 그룹, 개별 리소스 등에서 설정 가능.
2. Azure 역할
2,1 보안 주체(Security principal)
Azure 역할을 사용하면 보안 주체(사용자, 그룹, 서비스 주체 또는 관리 ID)를 대상으로 Azure 구독 내 리소스(VM, VNET, Resource Group 등)에 대한 접근 제어를 할 수 있다.
Azure의 주요 기본 역할은 다음과 같다.
- Owner(소유자): 리소스에 대한 전체 접근 권한 및 다른 사용자에게 권한 위임 가능.
- Contributor(기여자): 리소스 생성 및 관리 가능,但 다른 사용자의 접근 권한은 관리 불가.
- Reader(읽기 권한자): 리소스 조회만 가능, 수정 불가.
- User Access Administrator(사용자 접근 관리자): 사용자 접근 권한 관리 가능, 리소스 자체는 관리 불가.
2.2 역할 정의
역할 정의는 권한의 모음을 말하며 일반적으로 역할이라 칭한다. 역할 정의에는 읽기, 쓰기, 삭제 등 수행할 수 있는 작업이 나열된다. 역할은 소유자와 같은 상위 수준일 수도 있고 가상 머신 리더와 같은 특정 수준일 수도 있다.
Azure에는 가상 머신 기여자 등과 같이 바로 사용할 수 있는 기본 제공 역할이 포함되어 있다. 더불어 조직의 특정 요구 사항을 충족하지 않는 경우 고유한 Azure 사용자 지정 역할을 만들 수 있다.
2.3 범위(Scope)
범위는 액세스가 적용되는 리소스 집합이다. 역할 할당은 계층적 구조(예: 관리 그룹 → 구독 → 리소스 그룹 → 리소스)에서 상속되며, 상위 범위에서 할당된 역할은 하위 범위까지 적용된다. 범위는 부모-자식 관계로 구조화됩니다. 이러한 범위의 모든 수준에서 역할을 할당할 수 있다.
2.4 역할 할당
역할 할당이란 특정 범위를 대상으로 사용자, 그룹, 서비스 주체 또는 관리 ID에 역할 정의를 첨부해주는 프로세스를 말한다.
3. Entra ID 역할
Entra ID 테넌트 자체 내에서 관리되는 ID 개체에 대한 액세스를 제공하기 위한 특수한 역할 집합을 의미한다. 이 역할은 Azure 리소스가 존재하는 Azure 구독이 아닌, 사용자나 애플리케이션 또는 디바이스와 같은 Entra ID 리소스에 대해 특정 작업을 수행할 수 있도록 역할을 할당할 수 있다.
주요 역할은 다음과 같다.
- Global Administrator(전역 관리자): Entra ID 테넌트 전체를 관리할 수 있는 최상위 권한.
- User Administrator(사용자 관리자): 사용자 및 그룹 관리 권한.
- Billing Administrator(청구 관리자): 빌링 관련 작업 수행 권한.
- Helpdesk Administrator(헬프데스크 관리자): 사용자 비밀번호 재설정 등 헬프데스크 기능 수행 권한.
일반적으로 역할은 Scope은 테넌트 전체에 적용되지만, 관리 단위(Administrative Unit)를 통해 세부적인 범위의 특정 그룹에만 적용이 가능하다.
Entra 관리 단위(Administrative units)
Entra ID 테넌트 내에서 사용자, 그룹, 디바이스 등의 ID 리소스를 논리적으로 분리하고 관리할 수 있는 컨테이너이다. 대규모 조직에서 ID 리소스를 논리적으로 분리하고, 관리 권한을 세분화하여 보안과 관리 효율성을 높이는 데 유용한 기능이다. 이를 통해 조직은 부서, 지역, 프로젝트별로 관리 책임을 분산하고, 과도한 권한 부여로 인한 보안 위험을 줄일 수 있다.
보다 자세한 내용은 여기를 참조한다.
Entra ID 역시 기본 제공 역할 외에 커스텀 역할 생성이 가능하다.
4. Azure 역할 vs Entra ID 역할 비교
- Azure 역할:
- 대상: Azure 구독 내 리소스(VM, VNET 등).
- 범위: 관리 그룹, 구독, 리소스 그룹, 개별 리소스.
- 주요 역할: Owner, Contributor, Reader, User Access Administrator.
- Entra ID 역할:
- 대상: Entra ID 테넌트 내 ID 리소스(사용자, 애플리케이션, 디바이스 등).
- 범위: 일반적으로 테넌트 전체, 단, 관리 단위로 세부 범위 설정 가능.
- 주요 역할: Global Administrator, User Administrator, Billing Administrator, Helpdesk Administrator.
기본적으로 Azure 역할과 Microsoft Entra 역할은 별개이다.
그러나 전역 관리자가 Azure Portal에서 Azure 리소스에 대한 액세스 관리 기능을 활성화 하여 액세스 권한을 높이면 특정 테넌트의 모든 구독에 대한 사용자 액세스 관리자 역할(Azure 역할)이 부여된다. 이 역할을 통해 다른 사용자에게 Azure 리소스에 대한 액세스 권한을 부여할 수 있게 해준다. 다음 핸즈온 세션에서 해당 시나리오를 구현해 보도록 하겠다.
다음 편에서 계속