Azure RBAC란?

완료됨

ID 및 액세스와 관련하여 퍼블릭 클라우드 사용을 고려하는 대부분의 조직은 두 가지를 우려할 것 입니다.

  1. 직원 퇴사 시 클라우드의 리소스에 대한 액세스 권한을 없애는 것을 보장하는 것.
  2. 자율성과 중앙 거버넌스 사이의 적절한 균형을 유지하는 것. 예를 들어 프로젝트 팀에게 클라우드의 가상 머신을 생성 및 관리하는 권한을 제공하면서 해당 VM이 다른 리소스와 커뮤니케이션하는 데 사용하는 네트워크를 제어하는 경우가 있습니다.

Microsoft Entra ID와 Azure RBAC(Azure 역할 기반 액세스 제어)가 함께 작동하여 이러한 목표를 간편하게 수행할 수 있습니다.

Azure 구독

먼저, 각 Azure 구독은 단일 Microsoft Entra 디렉터리와 연결되어 있다는 점을 기억합니다. 해당 디렉터리의 사용자, 그룹 및 애플리케이션은 Azure 구독에서 리소스를 관리할 수 있습니다. 구독은 SSO(Single Sign-On) 및 액세스 관리를 위해 Microsoft Entra ID를 사용합니다. Microsoft Entra Connect를 사용하여 온-프레미스 Active Directory를 클라우드로 확장할 수 있습니다. 이 기능을 통해 직원은 기존 회사 ID를 사용하여 Azure 구독을 관리할 수 있습니다. 온-프레미스 Active Directory 계정을 사용하지 않도록 설정하면 Microsoft Entra ID와 연결된 모든 Azure 구독에 대한 액세스 권한이 자동으로 상실됩니다.

Azure RBAC란?

Azure RBAC(Azure 역할 기반 액세스 제어)는 Azure에서 리소스에 대한 액세스를 세밀하게 관리하는 Azure Resource Manager 기반의 권한 부여 시스템입니다. Azure RBAC를 사용하면 사용자가 작업을 수행하는 데 필요한 정확한 액세스 권한을 부여할 수 있습니다. 예를 들어 Azure RBAC를 사용하여 한 명의 직원은 구독의 가상 머신을 관리하도록 하고, 다른 직원은 동일한 구독 내에서 SQL 데이터베이스를 관리하도록 할 수 있습니다.

다음 비디오는 Azure RBAC에 대해 자세히 설명합니다.

특정 범위에서 사용자, 그룹 및 애플리케이션에 적절한 Azure 역할을 할당하여 액세스 권한을 부여할 수 있습니다. 역할 할당의 범위는 관리 그룹, 구독, 리소스 그룹 또는 단일 리소스일 수 있습니다. 부모 범위에서 할당된 역할은 역할 내에 포함된 하위 범위에 대한 액세스를 부여합니다. 예를 들어 리소스 그룹에 액세스할 수 있는 사용자는 웹 사이트, 가상 머신 및 서브넷을 포함하여 그 안에 포함된 모든 리소스를 관리할 수 있습니다. 할당된 Azure 역할에 따라 해당 범위 내에서 사용자, 그룹 또는 애플리케이션이 관리할 수 있는 리소스가 결정됩니다.

다음 다이어그램은 클래식 구독 관리자 역할, Azure 역할 및 Microsoft Entra 역할이 높은 수준에서 어떻게 관련되어 있는지 보여 줍니다. 전체 구독 같이 더 큰 범위에 할당된 역할은 서비스 인스턴스 같은 자식 범위에서 상속됩니다.

Diagram that depicts how the classic subscription administrator roles, Azure roles, and Microsoft Entra roles are related at a high level.

앞의 다이어그램에서 구독은 하나의 Microsoft Entra 테넌트에만 연결됩니다. 하나의 리소스 그룹은 여러 개의 리소스가 있을 수 있지만, 단 하나의 구독에만 연결됩니다. 다이어그램에서는 명확하지 않지만, 리소스가 단 하나의 리소스 그룹으로 바인딩될 수 있습니다.

Azure RBAC로 어떤 작업을 할 수 있나요?

Azure RBAC를 사용하면 본인이 컨트롤하는 Azure 리소스에 대한 액세스 권한을 부여할 수 있습니다. Azure에서 개발, 엔지니어링, 마케팅 팀의 리소스 액세스 권한을 관리해야 한다고 가정해 보겠습니다. 여러분은 액세스 요청을 받기 시작했으며, Azure 리소스에 대한 액세스 관리의 작동 방식을 빠르게 알아볼 필요가 생겼습니다.

다음은 Azure RBAC를 사용하여 구현할 수 있는 몇 가지 시나리오입니다.

  • 한 사용자는 구독의 가상 머신을 관리하고 다른 사용자는 가상 네트워크를 관리하도록 허용
  • 데이터베이스 관리자 그룹이 구독하여 SQL 데이터베이스를 관리하도록 허용
  • 사용자가 가상 머신, 웹 사이트, 서브넷 등 리소스 그룹의 모든 리소스를 관리하도록 허용
  • 애플리케이션이 리소스 그룹의 모든 리소스에 액세스하도록 허용

Azure Portal의 Azure RBAC

Azure Portal의 여러 영역에서는 ID 및 액세스 관리라고도 하는 IAM(액세스 제어)이라는 창을 볼 수 있습니다. 이 창에서 해당 영역에 액세스할 수 있는 사용자와 그 역할을 볼 수 있습니다. 이 창을 사용하여 액세스 권한을 부여하거나 제거할 수 있습니다.

다음은 리소스 그룹의 액세스 제어(IAM) 창을 보여주는 예입니다. 이 예에서는 Alain에게 이 리소스 그룹의 백업 운영자 역할이 할당되었습니다.

Screenshot of the Azure portal showing the Access control Role assignment pane with the Backup operator section highlighted.

Azure RBAC는 어떻게 작동하나요?

사용 권한이 적용되는 방식을 제어하는 역할 할당을 만들어 Azure RBAC를 사용하는 리소스에 대한 액세스를 제어할 수 있습니다. 역할 할당을 만들려면 보안 주체, 역할 정의, 범위라는 세 가지 요소가 필요합니다. 이러한 요소는 "누구", "무엇", "어디"로 간주할 수 있습니다.

1. 보안 주체(누구)

보안 주체는 액세스 권한을 부여할 사용자, 그룹 또는 애플리케이션을 가리키는 고급스러운 이름입니다.

An illustration showing security principal including user, group, and service principal.

2. 역할 정의(수행할 수 있는 작업)

역할 정의는 권한 컬렉션입니다. 역할이라고도 합니다. 역할 정의에는 읽기, 쓰기 및 삭제와 같이 역할이 수행할 수 있는 권한이 나열됩니다. 역할은 소유자처럼 대략적일 수도 있고 Virtual Machine 기여자처럼 구체적일 수도 있습니다.

An illustration listing different built-in and custom roles with zoom-in on the definition for the contributor role.

Azure에는 사용할 수 있는 기본 제공 역할이 여러 개 있습니다. 네 가지 기본 제공 역할은 다음과 같습니다.

  • 소유자 - 액세스 권한을 다른 사용자에게 위임할 수 있는 권한을 포함하여 모든 리소스에 대한 전체 액세스 권한 보유
  • 기여자 - 모든 유형의 Azure 리소스를 만들고 관리할 수 있지만 다른 사용자에게 액세스 권한을 부여할 수는 없음
  • 읽기 권한자 - 기존 Azure 리소스를 볼 수 있음
  • 사용자 액세스 관리자 - Azure 리소스에 대한 사용자의 액세스 관리

기본 제공 역할이 조직의 특정 요구 사항을 충족하지 않는 경우 사용자 지정 역할을 만들면 됩니다.

3. 범위(어디)

범위는 액세스 권한이 적용되는 대상입니다. 이러한 기능은 누군가를 단일 리소스 그룹에 대해서만 웹 사이트 기여자로 지정하려는 경우에 유용합니다.

Azure는 여러 수준(관리 그룹, 구독, 리소스 그룹 또는 리소스)에서 구독을 지정할 수 있습니다. 범위는 부모-자식 관계로 구조화되어 있습니다. 상위 범위에서 액세스 권한을 부여하는 경우 해당 권한은 하위 범위에 상속됩니다. 예를 들어 구독 범위에서 그룹에 기여자 역할을 할당할 경우 구독의 모든 리소스 그룹 및 리소스에서 해당 역할을 상속합니다.

An illustration showing a hierarchical representation of different Azure levels to apply scope. The hierarchy, starting with the highest level, is in this order: Management group, subscription, resource group, and resource.

역할 할당

누구, 무엇, 어디를 결정했으면 이러한 요소를 결합하여 액세스 권한을 부여할 수 있습니다. 역할 할당은 액세스 권한을 부여하기 위해 특정 범위에서 보안 주체에게 역할을 바인딩하는 프로세스입니다. 액세스 권한을 부여하려면 역할 할당을 만듭니다. 액세스 권한을 철회하려면 역할 할당을 제거합니다.

다음 예에서는 마케팅 그룹에서 판매 리소스 그룹 범위에서 기여자 역할이 할당되는 방법을 보여줍니다.

An illustration showing a sample role assignment process for Marketing group, which is a combination of security principal, role definition, and scope. The Marketing group falls under the Group security principal and has a Contributor role assigned for the Resource group scope.

Azure RBAC는 허용 모델입니다.

Azure RBAC는 허용 모델입니다. 즉, 역할이 할당되면 Azure RBAC는 읽기, 쓰기 또는 삭제와 같은 특정 작업을 수행하도록 허용합니다. 따라서 하나의 역할 할당이 리소스 그룹에 대한 읽기 권한을 부여하고, 다른 역할 할당이 동일한 리소스 그룹에 대한 쓰기 권한을 부여할 경우 사용자는 해당 리소스 그룹에 대한 읽기 및 쓰기 권한을 가집니다.

Azure RBAC에는 NotActions라는 권한이 있습니다. NotActions를 사용하여 허용되지 않는 권한 세트를 만들 수 있습니다. 역할이 부여하는 액세스 권한(유효 사용 권한)은 Actions 작업에서 NotActions 작업을 빼서 계산됩니다. 예를 들어, 참가자 역할에는 ActionsNotActions 모두가 있습니다. Actions의 와일드카드(*)는 컨트롤 평면에서 모든 작업을 수행할 수 있음을 의미합니다. 그런 다음 NotActions에서 다음 작업을 제외하여 유효한 사용 권한을 컴퓨팅할 수 있습니다.

  • 역할 및 역할 할당 삭제
  • 역할 및 역할 할당 만들기
  • 테넌트 범위에서 호출자에게 사용자 액세스 관리자 액세스 권한 부여
  • 청사진 아티팩트 만들기 또는 업데이트
  • 청사진 아티팩트 삭제