Azure ABAC(Azure 특성 기반 액세스 제어)는 무엇인가요?

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

역할 할당 조건이란 무엇인가요?

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

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

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

역할 할당 조건을 사용할 경우 세 가지 주요 이점이 있습니다.

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

조건에 대한 시나리오 예

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

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

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

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

현재 Blob Storage 또는 Queue 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 역할 할당 조건 형식 및 구문을 참조하세요.

조건 기능 상태

다음 표에는 조건 기능의 상태가 나와 있습니다.

기능 상태 날짜
조건에서 환경 특성 사용 GA 2024년 4월
Azure Portal에서 조건 편집기를 사용하여 조건 추가 GA 2022년 10월
Azure PowerShell, Azure CLI 또는 REST API를 사용하여 조건 추가 GA 2022년 10월
Azure Storage 리소스, 액세스 특성 유형 및 스토리지 계정 성능 계층의 특정 조합에 대한 리소스 및 요청 특성을 사용합니다. 자세한 내용은 Azure Storage의 조건 기능 상태를 참조하세요. GA 2022년 10월
조건에서 보안 주체에 대한 사용자 지정 보안 특성 사용 GA 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 PIM(Privileged Identity Management) 및 사용자 지정 보안 특성을 사용하는 경우 조건을 추가할 때 보안 주체특성 원본에 표시되지 않습니다.

다음 단계