Azure 역할 기반 액세스 제어

그룹 기반 액세스 권한 및 권한은 좋은 방법입니다. 개별 사용자가 아닌 그룹을 처리하면 액세스 정책의 기본 간소화되고, 팀 간에 일관된 액세스 관리를 제공하고, 구성 오류를 줄일 수 있습니다. 적절한 그룹에 사용자를 할당하고 사용자를 제거하면 특정 사용자의 권한을 최신 상태로 유지하는 데 도움이 됩니다. Azure RBAC(Azure 역할 기반 액세스 제어)는 사용자 역할을 중심으로 구성된 리소스에 대해 세분화된 그룹 기반 액세스 관리를 제공합니다.

ID 및 보안 전략의 일부로 권장되는 Azure RBAC 사례를 보려면 Azure ID 관리 및 액세스 제어 보안 모범 사례를 참조하세요.

Azure 역할 기반 액세스 제어 개요

Azure 역할 기반 액세스 제어를 사용하면 팀 내에서 업무를 분리하고 특정 Microsoft Entra 사용자, 그룹, 서비스 주체 또는 관리 ID에 대한 충분한 액세스 권한만 부여하여 작업을 수행할 수 있습니다. 모든 사용자에게 Azure 구독 또는 리소스에 대한 무제한 액세스를 제공하는 대신 각 리소스 집합에 대한 권한을 제한할 수 있습니다.

Azure 역할 정의는 해당 역할에 할당된 사용자 또는 그룹에 허용되거나 허용되지 않는 작업을 나열합니다. 역할의 범위는 이 정의된 권한이 적용되는 리소스를 지정합니다. 범위는 관리 그룹, 구독, 리소스 그룹 또는 리소스와 같은 여러 수준에서 지정할 수 있습니다. 범위는 부모/자식 관계에서 구성됩니다.

Azure RBAC scope hierarchy

특정 역할에 사용자 및 그룹을 할당하고 범위에 역할을 할당하는 방법에 대한 자세한 지침은 Azure Portal을 사용하여 Azure 역할 할당 추가 또는 제거를 참조하세요.

액세스 제어 전략을 계획할 때 사용자에게 작업을 수행하는 데 필요한 권한만 부여하는 최소 권한 액세스 모델을 사용합니다. 다음 다이어그램에서는 이 방법을 통해 Azure RBAC를 사용하기 위한 제안된 패턴을 보여 줍니다.

Suggested pattern for using Azure RBAC

참고 항목

더 구체적이거나 자세한 사용 권한은 정의할수록 액세스 제어가 복잡하고 관리하기 어려울 가능성이 높습니다. 클라우드 자산의 크기가 커짐에 따라 특히 그렇습니다. 리소스별 사용 권한을 사용하지 않습니다. 대신 엔터프라이즈 수준의 액세스 제어에는 관리 그룹을 사용하고 구독 내 액세스 제어에는 리소스 그룹을 사용합니다. 사용자별 사용 권한도 사용하지 않습니다. 대신 Microsoft Entra ID그룹에 대한 액세스를 할당합니다.

Azure 기본 제공 역할 사용

Azure는 액세스를 제공하기 위한 세 가지 핵심 역할과 함께 많은 기본 제공 역할 정의를 제공합니다.

  • 소유자 역할은 리소스에 대한 액세스 권한을 포함한 모든 것을 관리할 수 있습니다.
  • 기여자 역할은 리소스에 대한 액세스 권한을 제외한 모든 것을 관리할 수 있습니다.
  • 리더 역할은 모든 항목을 볼 수 있지만 변경할 수는 없습니다.

이러한 핵심 액세스 수준부터 추가 기본 제공 역할은 특정 리소스 종류 또는 Azure 기능에 액세스하기 위한 보다 자세한 제어를 제공합니다. 예를 들어 다음 기본 제공 역할을 사용하여 가상 머신에 대한 액세스를 관리할 수 있습니다.

기본 제공 역할을 사용하여 특정 기능에 대한 액세스를 관리하는 다른 예는 사업부, 환경 또는 프로젝트 전반에서 비용 추적에서 비용 추적 기능의 액세스 제어에 대한 설명을 참조하세요.

사용 가능한 기본 제공 역할의 전체 목록은 Azure 기본 제공 역할을 참조하세요.

사용자 지정 역할 사용

Azure에 기본 제공되는 역할이 다양한 액세스 제어 시나리오를 지원하지만 조직 또는 팀의 모든 요구를 충족하지 못할 수 있습니다. 예를 들어 가상 머신 및 Azure SQL Database 리소스 관리를 담당하는 단일 사용자 그룹이 있는 경우 필요한 액세스 제어의 관리를 최적화하기 위해 사용자 지정 역할을 만들 수 있습니다.

Azure RBAC 설명서에 사용자 지정 역할 만들기에 대한 지침과 역할 정의 작동 방식에 대한 세부 정보가 나와 있습니다.

대규모 조직에 대한 책임 및 역할 분리

Azure RBAC를 사용하면 조직에서 대규모 클라우드 자산 내의 다양한 관리 작업에 서로 다른 팀을 할당할 수 있습니다. 중앙 IT 팀이 핵심 액세스 및 보안 기능을 제어하는 동시에 소프트웨어 개발자 및 기타 팀에게 특정 워크로드 또는 리소스 그룹을 대량으로 제어할 수 있습니다.

대부분의 클라우드 환경은 여러 역할을 사용하고 이러한 역할 간의 책임 분리를 강조하는 액세스 제어 전략의 이점을 활용할 수 있습니다. 이러한 접근 방식을 사용하려면 리소스 또는 인프라에 대한 중요한 변경 사항이 있을 때 완료하기 위해 여러 역할이 관여되며 둘 이상의 사용자가 변경 내용을 검토하고 승인해야 합니다. 이러한 책임 분리는 한 사람이 다른 팀 구성원의 지식 없이 중요한 데이터에 액세스하거나 취약성을 도입할 수 있는 능력을 제한합니다.

다음 표에서는 IT 책임을 별도의 사용자 지정 역할로 분할하는 일반적인 패턴을 보여 줍니다.

그룹 일반 역할 이름 책무
보안 운영 SecOps 일반적인 보안 감독을 제공합니다.
미사용 데이터 암호화와 같은 보안 정책을 설정하고 적용합니다.

암호화 키를 관리합니다.

방화벽 규칙을 관리합니다.
네트워크 작업 NetOps 경로 및 피어링과 같은 가상 네트워크 내에서 네트워크 구성 및 작업을 관리합니다.
시스템 작업 SysOps 컴퓨팅 및 스토리지 인프라 옵션을 지정하고 배포된 리소스를 기본.
개발, 테스트 및 운영 DevOps 워크로드 기능 및 애플리케이션을 빌드하고 배포합니다.

서비스 수준 계약 및 기타 품질 표준을 충족하는 기능 및 애플리케이션을 운영합니다.

이러한 표준 역할의 작업 및 사용 권한을 분석해 보면 다양한 수준의 서로 다른 사용자가 이러한 역할을 수행하는 경우에도 애플리케이션, 구독 또는 전체 클라우드 자산에 걸쳐 동일한 경우가 많습니다. 따라서 사용자 환경 내의 다양한 범위에 적용할 수 있는 공통 Azure 역할 정의 세트를 만들 수 있습니다. 사용자 및 그룹은 공통 역할을 할당할 수 있지만 관리 책임이 있는 리소스, 리소스 그룹, 구독 또는 관리 그룹의 범위에 대해서만 할당할 수 있습니다.

예를 들어 여러 구독이 있는 허브 및 스포크 네트워킹 토플로지에는 허브 및 모든 워크로드 스포크에 대한 일반적인 역할 정의 세트가 있을 수 있습니다. 허브 구독의 NetOps 역할은 모든 워크로드에서 사용하는 공유 서비스에 대한 네트워킹 유지 관리를 담당하는 조직의 중앙 IT 팀에게 할당할 수 있습니다. 그런 다음 워크로드 스포크 구독의 NetOps 역할을 해당 특정 워크로드 팀의 구성원에게 할당하여 워크로드 요구 사항을 가장 잘 지원하도록 해당 구독 내에서 네트워킹을 구성할 수 있습니다. 두 경우 모두 동일한 역할 정의가 사용되지만, 범위 기반 할당으로 사용자가 작업을 수행하는 데 필요한 액세스 권한만 갖도록 해야 합니다.