다음을 통해 공유


Azure ABAC(Azure 특성 기반 액세스 제어)란?

ABAC(특성 기반 액세스 제어)는 보안 주체, 리소스 및 액세스 요청 환경과 관련된 특성에 따라 액세스를 정의하는 권한 부여 시스템입니다. ABAC를 사용하면 특성에 따라 리소스에 대한 보안 주체 액세스 권한을 부여할 수 있습니다. Azure ABAC는 Azure용 ABAC 구현을 나타냅니다.

역할 할당 조건이란?

Azure RBAC(Azure 역할 기반 액세스 제어)는 Azure 리소스에 대한 액세스 권한이 있는 사용자, 해당 리소스로 수행할 수 있는 작업 및 액세스 권한이 있는 영역을 관리하는 데 도움이 되는 권한 부여 시스템입니다. 대부분의 경우 Azure RBAC는 역할 정의 및 역할 할당을 사용하여 필요한 액세스 관리를 제공합니다. 그러나 경우에 따라 보다 세분화된 액세스 관리를 제공하거나 수백 개의 역할 할당 관리를 간소화할 수 있습니다.

Azure ABAC는 특정 작업의 맥락에서 특성을 기반으로 역할 할당 조건을 추가하여 Azure RBAC에서 빌드됩니다. 역할 할당 조건은 필요에 따라 역할 할당에 추가하여 보다 세분화된 액세스 제어를 제공할 수 있는 추가 검사입니다. 조건은 역할 정의 및 역할 할당의 일부로 부여된 권한을 필터링합니다. 예를 들어 개체를 읽을 특정 태그를 포함하는 개체를 필요로 하는 조건을 추가할 수 있습니다. 조건을 사용하여 특정 리소스에 대한 액세스를 명시적으로 거부할 수 없습니다.

Azure RBAC와 Azure ABAC를 함께 사용하면 두 액세스 제어 모델의 이점이 통합됩니다. Azure RBAC는 비즈니스 논리와의 긴밀한 맞춤으로 인해 구현하는 것이 더 간단하지만, Azure ABAC는 일부 주요 시나리오에서 더 큰 유연성을 제공합니다. 이러한 두 가지 방법을 결합하여 조직은 보다 정교한 수준의 권한 부여를 달성할 수 있습니다.

조건을 사용하는 이유는 무엇인가요?

역할 할당 조건을 사용하는 경우 다음과 같은 세 가지 주요 이점이 있습니다.

  • 보다 세분화된 액세스 제어 제공 - 역할 할당은 작업 및 데이터 작업과 함께 역할 정의를 사용하여 보안 주체 권한을 부여합니다. 보다 세분화된 액세스 제어를 위해 해당 사용 권한을 필터링하는 조건을 작성할 수 있습니다. 특정 작업에 조건을 추가할 수도 있습니다. 예를 들어 Blob에 Project=Blue로 태그가 지정된 경우에만 구독의 Blob에 대한 읽기 권한을 John에게 부여할 수 있습니다.
  • 역할 할당 수를 줄이는 데 도움이 됩니다. 각 Azure 구독에는 현재 역할 할당 제한이 있습니다. 수천 개의 역할 할당이 필요한 시나리오가 있습니다. 이러한 모든 역할 할당을 관리해야 합니다. 이러한 시나리오에서는 역할 할당을 훨씬 적게 사용하는 조건을 추가할 수 있습니다.
  • 특정 비즈니스 의미가 있는 특성 사용 - 조건을 사용하면 액세스 제어에서 특정 비즈니스 의미가 있는 특성을 사용할 수 있습니다. 특성의 몇 가지 예는 프로젝트 이름, 소프트웨어 개발 단계 및 분류 수준입니다. 이러한 리소스 특성의 값은 동적이며 사용자가 팀과 프로젝트 간에 이동함에 따라 변경됩니다.

조건에 대한 예제 시나리오

역할 할당에 조건을 추가할 수 있는 몇 가지 시나리오가 있습니다. 다음은 몇 가지 예입니다.

  • Project=Cascade 태그가 지정된 Blob에 대한 읽기 액세스 권한
  • 새 Blob은 Project=Cascade 태그를 포함해야 합니다.
  • 기존 Blob은 하나 이상의 프로젝트 키 또는 프로그램 키로 태그를 지정해야 합니다.
  • 기존 Blob은 프로젝트 키와 Cascade, Baker 또는 Skagit 값으로 태그를 지정해야 합니다.
  • blobs-example-container라는 컨테이너에서 Blob을 읽거나, 쓰거나, 삭제합니다.
  • 읽기 전용 경로를 가진 blobs-example-container라는 컨테이너 내의 blob에 대한 읽기 권한
  • 업로드/contoso 경로를 사용하여 Contosocorp라는 컨테이너의 Blob에 대한 쓰기 액세스
  • Program=Alpine 태그가 지정된 Blob의 로그 경로에 대한 읽기 액세스 권한
  • Project=Baker 태그가 있는 Blob에 대해 사용자 특성 Project=Baker가 일치할 때 읽기 액세스 권한이 부여됩니다.
  • 특정 날짜/시간 범위 동안 Blob에 대한 액세스를 읽습니다.
  • 프라이빗 링크 또는 특정 서브넷을 통해 Blob 쓰기 액세스를 허용합니다.

이러한 예제를 만드는 방법에 대한 자세한 내용은 Blob Storage에 대한 Azure 역할 할당 조건 예제를 참조하세요.

조건을 추가할 수 있는 위치는 어디인가요?

현재 Blob Storage 또는 큐 스토리지 데이터 작업이 있는 기본 제공 또는 사용자 지정 역할 할당에 조건을 추가할 수 있습니다. 조건은 역할 할당과 동일한 범위에 추가됩니다. 역할 할당과 마찬가지로 조건을 추가할 수 있는 권한이 있어야 합니다 Microsoft.Authorization/roleAssignments/write .

다음은 조건에서 사용할 수 있는 몇 가지 Blob Storage 특성 입니다.

  • 계정 이름
  • Blob 인덱스 태그
  • Blob 경로
  • Blob 접두사
  • 컨테이너 이름
  • 암호화 범위 이름
  • 현재 버전
  • 계층 구조 네임스페이스 사용
  • 프라이빗 링크
  • 스냅샷
  • UTC 지금(협정 세계시 현재 날짜 및 시간)
  • 버전 ID

조건은 어떻게 됩니까?

새 역할 또는 기존 역할 할당에 조건을 추가할 수 있습니다. 리소스 그룹 범위에서 Chandra라는 사용자에게 할당된 Storage Blob 데이터 판독 기 역할은 다음과 같습니다. Project=Cascade 태그를 사용하여 Blob에 대한 읽기 액세스만 허용하는 조건도 추가되었습니다.

조건이 있는 역할 할당 다이어그램

Chandra가 Project=Cascade 태그 없이 Blob을 읽으려고 하면 액세스가 허용되지 않습니다.

조건에 따라 액세스 다이어그램을 사용할 수 없습니다.

Azure Portal의 조건은 다음과 같습니다.

Blob 인덱스 태그에 대한 값이 있는 빌드 식 섹션을 보여 주는 Azure Portal의 조건 편집기 스크린샷

코드에서 조건의 모양은 다음과 같습니다.

(
    (
        !(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'}
        AND NOT
        SubOperationMatches{'Blob.List'})
    )
    OR
    (
        @Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$key_case_sensitive$>] StringEqualsIgnoreCase 'Cascade'
    )
)

조건 형식에 대한 자세한 내용은 Azure 역할 할당 조건 형식 및 구문을 참조하세요.

조건 기능의 상태

다음 표에서는 조건 기능의 상태를 나열합니다.

특징 상태 날짜
조건에서 환경 특성 사용 미국 조지아주 2024년 4월
Azure Portal에서 조건 편집기를 사용하여 조건 추가 미국 조지아주 2022년 10월
Azure PowerShell, Azure CLI 또는 REST API를 사용하여 조건 추가 미국 조지아주 2022년 10월
Azure 저장소 리소스, 액세스 속성 유형 및 스토리지 계정 성능 계층의 특정 조합에 대해 리소스 및 요청 속성을 사용합니다. 자세한 내용은 Azure Storage의 조건 기능 상태를 참조하세요. 미국 조지아주 2022년 10월
조건에서 주체에 사용자 지정 보안 특성 사용 미국 조지아주 2023년 11월

조건 및 Microsoft Entra PIM

Azure 리소스에 대해 Microsoft Entra PIM(Microsoft Entra Privileged Identity Management)을 사용하여 적격 역할 할당에 조건을 추가할 수도 있습니다. Microsoft Entra PIM을 사용하면 최종 사용자가 특정 작업을 수행할 수 있는 권한을 얻으려면 적격 역할 할당을 활성화해야 합니다. Microsoft Entra PIM의 조건을 사용하면 세분화된 조건을 사용하여 리소스에 대한 사용자의 액세스를 제한할 뿐만 아니라 Microsoft Entra PIM을 사용하여 시간 제한 설정, 승인 워크플로, 감사 내역 등을 사용하여 리소스를 보호할 수 있습니다. 자세한 내용은 Privileged Identity Management에서 Azure 리소스 역할 할당을 참조하세요.

용어

Azure RBAC 및 Azure ABAC를 더 잘 이해하려면 다음 용어 목록을 다시 참조할 수 있습니다.

기간 정의
ABAC(특성 기반 액세스 제어) 보안 주체, 리소스 및 환경과 연결된 특성을 기반으로 액세스를 정의하는 권한 부여 시스템입니다. ABAC를 사용하면 특성에 따라 리소스에 대한 보안 주체 액세스 권한을 부여할 수 있습니다.
Azure ABAC Azure용 ABAC의 구현을 참조합니다.
역할 할당 조건 필요에 따라 역할 할당에 추가하여 보다 세분화된 액세스 제어를 제공할 수 있는지 추가로 확인합니다.
속성 이 컨텍스트에서는 Project=Blue와 같은 키-값 쌍입니다. 여기서 Project는 특성 키이고 Blue는 특성 값입니다. 특성 및 태그는 액세스 제어를 위해 동의어입니다.
표현 true 또는 false로 평가되는 조건문입니다. 식은 <특성><연산자><값>의 형식을 가집니다.

제한

다음은 조건에 대한 몇 가지 제한 사항입니다.

리소스 한계 비고
조건당 표현 수를 비주얼 에디터로 사용하기 5 코드 편집기를 사용하여 5개 이상의 식을 추가할 수 있습니다.

알려진 문제

조건의 알려진 문제는 다음과 같습니다.

  • Microsoft Entra Privileged Identity Management(PIM) 및 사용자 지정 보안 특성을 사용하는 경우 조건을 추가할 때 주체속성 원본에 표시되지 않습니다.

다음 단계