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에서 조건은 다음과 같습니다.
코드에서 조건은 다음과 같습니다.
(
(
!(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) 및 사용자 지정 보안 특성을 사용하는 경우 조건을 추가할 때 보안 주체가 특성 원본에 표시되지 않습니다.