이 문서에서는 Azure Blob Storage에 대한 액세스를 제어하기 위한 역할 할당 조건의 몇 가지 예를 나열합니다.
Important
Azure ABAC(Azure 특성 기반 액세스 제어)는 표준 및 프리미엄 스토리지 계정 성능 계층 모두에서 request, resource, environment 및 principal 특성을 사용하여 Azure Blob Storage, Azure Data Lake Storage Gen2 및 Azure 큐에 대한 액세스만 제어하기 위한 GA(일반 공급)입니다. 현재 컨테이너 메타데이터 리소스 특성과 Blob 나열 포함 요청 특성은 미리 보기에 있습니다. Azure Storage용 ABAC의 전체 기능 상태 정보는 Azure Storage의 조건 기능 상태를 참조하세요.
현재 ABAC 기능 미리 보기 중에 구현된 조건과의 호환성을 위해 Read content from a blob with tag conditions 하위 작업이 지원되지만 해당 하위 작업은 더 이상 사용되지 않으며 대신 Read a blob 작업을 사용하는 것이 좋습니다.
Azure Portal에서 ABAC 조건을 구성할 때 사용되지 않음: 태그 조건이 있는 Blob에서 콘텐츠 읽기가 표시될 수 있습니다. 작업을 제거하고 Read a blob 작업으로 바꾸는 것이 좋습니다.
역할 정의에 blob 데이터 소유자와 같은 이 작업이 포함된 경우 Storage를 추가합니다.
조건은 Azure Portal 또는 Azure PowerShell을 사용하여 역할 할당에 추가할 수 있습니다. 포털에는 ABAC 조건을 작성할 수 있는 두 가지 도구, 즉 시각적 개체 편집기와 코드 편집기가 있습니다. 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$>] StringEquals 'Cascade'
)
)
이 예제에서 조건은 하위 작업이 Blob.List인 경우를 제외하고 읽기 작업을 제한합니다. 즉, Blob 나열 작업이 허용되지만 다른 모든 읽기 작업은 Blob 인덱스 태그를 확인하는 식에 대해 추가로 평가됩니다.
사용자가 조건에 의해 제한되는 작업이 아닌 할당된 역할에서 작업을 수행하려고 하면 !(ActionMatches)은(는) true로 평가되고 전체 조건이 true로 평가됩니다. 이 결과를 통해 작업을 수행할 수 있습니다.
역할 정의에 blob 데이터 소유자와 같은 이 작업이 포함된 경우 Storage를 추가합니다.
조건은 Azure Portal 또는 Azure PowerShell을 사용하여 역할 할당에 추가할 수 있습니다. 포털에는 ABAC 조건을 작성할 수 있는 두 가지 도구, 즉 시각적 개체 편집기와 코드 편집기가 있습니다. Azure Portal에서 두 편집기 간에 전환하여 다양한 보기에서 조건을 볼 수 있습니다. 기본 설정 포털 편집기의 예제를 보려면 아래의 시각적 개체 편집기 탭과 코드 편집기 탭 간에 전환합니다.
코드 편집기를 사용하여 조건을 추가하려면 조건 코드 샘플을 복사하여 코드 편집기에 붙여넣습니다. 코드가 입력되었으면 시각적 개체 편집기로 다시 전환하여 유효성을 검사합니다.
(
(
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write'} AND SubOperationMatches{'Blob.Write.WithTagHeaders'})
AND
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action'} AND SubOperationMatches{'Blob.Write.WithTagHeaders'})
)
OR
(
@Request[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$key_case_sensitive$>] StringEquals 'Cascade'
)
)
사용자가 조건에 의해 제한되는 작업이 아닌 할당된 역할에서 작업을 수행하려고 하면 !(ActionMatches)은(는) true로 평가되고 전체 조건이 true로 평가됩니다. 이 결과를 통해 작업을 수행할 수 있습니다.
역할 정의에 blob 데이터 소유자와 같은 이 작업이 포함된 경우 Storage를 추가합니다.
조건은 Azure Portal 또는 Azure PowerShell을 사용하여 역할 할당에 추가할 수 있습니다. 포털에는 ABAC 조건을 작성할 수 있는 두 가지 도구, 즉 시각적 개체 편집기와 코드 편집기가 있습니다. Azure Portal에서 두 편집기 간에 전환하여 다양한 보기에서 조건을 볼 수 있습니다. 기본 설정 포털 편집기의 예제를 보려면 아래의 시각적 개체 편집기 탭과 코드 편집기 탭 간에 전환합니다.
역할 정의에 blob 데이터 소유자와 같은 이 작업이 포함된 경우 Storage를 추가합니다.
조건은 Azure Portal 또는 Azure PowerShell을 사용하여 역할 할당에 추가할 수 있습니다. 포털에는 ABAC 조건을 작성할 수 있는 두 가지 도구, 즉 시각적 개체 편집기와 코드 편집기가 있습니다. Azure Portal에서 두 편집기 간에 전환하여 다양한 보기에서 조건을 볼 수 있습니다. 기본 설정 포털 편집기의 예제를 보려면 아래의 시각적 개체 편집기 탭과 코드 편집기 탭 간에 전환합니다.
역할 정의에 blob 데이터 소유자와 같은 이 작업이 포함된 경우 Storage를 추가합니다. 이 조건에 포함된 스토리지 계정이 계층 구조 네임스페이스를 사용하도록 설정했거나 나중에 사용하도록 설정될 수 있는 경우 추가합니다.
이 조건에서는 하위 작업이 사용되지 않습니다. 조건이 태그를 기반으로 작성되는 경우에만 하위 작업이 필요하기 때문입니다.
조건은 Azure Portal 또는 Azure PowerShell을 사용하여 역할 할당에 추가할 수 있습니다. 포털에는 ABAC 조건을 작성할 수 있는 두 가지 도구, 즉 시각적 개체 편집기와 코드 편집기가 있습니다. Azure Portal에서 두 편집기 간에 전환하여 다양한 보기에서 조건을 볼 수 있습니다. 기본 설정 포털 편집기의 예제를 보려면 아래의 시각적 개체 편집기 탭과 코드 편집기 탭 간에 전환합니다.
코드 편집기를 사용하여 조건을 추가하려면 조건 코드 샘플을 복사하여 코드 편집기에 붙여넣습니다. 코드가 입력되었으면 시각적 개체 편집기로 다시 전환하여 유효성을 검사합니다.
Storage Blob 데이터 소유자
(
(
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete'})
AND
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})
AND
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write'})
AND
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action'})
AND
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action'})
)
OR
(
@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container'
)
)
Storage Blob 데이터 Contributor
(
(
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete'})
AND
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})
AND
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write'})
AND
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action'})
)
OR
(
@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container'
)
)
사용자가 조건에 의해 제한되는 작업이 아닌 할당된 역할에서 작업을 수행하려고 하면 !(ActionMatches)은(는) true로 평가되고 전체 조건이 true로 평가됩니다. 이 결과를 통해 작업을 수행할 수 있습니다.
역할 정의에 blob 데이터 소유자와 같은 이 작업이 포함된 경우 Storage를 추가합니다. 이 조건에 포함된 스토리지 계정이 계층 구조 네임스페이스를 사용하도록 설정했거나 나중에 사용하도록 설정될 수 있는 경우 추가합니다.
조건은 Azure Portal 또는 Azure PowerShell을 사용하여 역할 할당에 추가할 수 있습니다. 포털에는 ABAC 조건을 작성할 수 있는 두 가지 도구, 즉 시각적 개체 편집기와 코드 편집기가 있습니다. Azure Portal에서 두 편집기 간에 전환하여 다양한 보기에서 조건을 볼 수 있습니다. 기본 설정 포털 편집기의 예제를 보려면 아래의 시각적 개체 편집기 탭과 코드 편집기 탭 간에 전환합니다.
코드 편집기를 사용하여 조건을 추가하려면 조건 코드 샘플을 복사하여 코드 편집기에 붙여넣습니다. 코드가 입력되었으면 시각적 개체 편집기로 다시 전환하여 유효성을 검사합니다.
Storage Blob 데이터 소유자
(
(
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})
AND
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action'})
)
OR
(
@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container'
AND
@Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs:path] StringLike 'readonly/*'
)
)
Storage Blob Data Reader, Storage Blob 데이터 기여자
(
(
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})
)
OR
(
@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container'
AND
@Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs:path] StringLike 'readonly/*'
)
)
이 예제에서 조건은 하위 작업이 Blob.List인 경우를 제외하고 읽기 작업을 제한합니다. 즉, Blob 나열 작업이 허용되지만 다른 모든 읽기 작업은 컨테이너 이름 및 경로를 확인하는 식에 대해 추가로 평가됩니다.
사용자가 조건에 의해 제한되는 작업이 아닌 할당된 역할에서 작업을 수행하려고 하면 !(ActionMatches)은(는) true로 평가되고 전체 조건이 true로 평가됩니다. 이 결과를 통해 작업을 수행할 수 있습니다.
$condition = "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'}) AND !(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container' AND @Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs:path] StringLike 'readonly/*'))"
$testRa = Get-AzRoleAssignment -Scope $scope -RoleDefinitionName $roleDefinitionName -ObjectId $userObjectID
$testRa.Condition = $condition
$testRa.ConditionVersion = "2.0"
Set-AzRoleAssignment -InputObject $testRa -PassThru
이 조건을 테스트하는 방법은 다음과 같습니다.
$grantedContainer = "blobs-example-container"
# Get new context for request
$bearerCtx = New-AzStorageContext -StorageAccountName $storageAccountName
# Try to get ungranted blob
$content = Get-AzStorageBlobContent -Container $grantedContainer -Blob "Ungranted.txt" -Context $bearerCtx
# Try to get granted blob
$content = Get-AzStorageBlobContent -Container $grantedContainer -Blob "readonly/Example6.txt" -Context $bearerCtx
예: 경로가 있는 명명된 컨테이너의 Blob 읽기 또는 목록
이 조건은 Blob 경로가 readonly/*인 blob-example-container라는 스토리지 컨테이너에 대한 읽기 권한 및 나열 권한을 허용합니다. 조건 1은 목록 Blob을 제외한 읽기 작업에 적용됩니다. 조건 2는 목록 Blob에 적용됩니다. 이 조건은 구독의 다른 사용자와 읽기 또는 나열 권한을 위해 스토리지 컨테이너의 특정 부분을 공유하는 데 유용합니다.
역할 정의에 blob 데이터 소유자와 같은 이 작업이 포함된 경우 Storage를 추가합니다. 이 조건에 포함된 스토리지 계정이 계층 구조 네임스페이스를 사용하도록 설정했거나 나중에 사용하도록 설정될 수 있는 경우 추가합니다.
조건은 Azure Portal 또는 Azure PowerShell을 사용하여 역할 할당에 추가할 수 있습니다. 포털에는 ABAC 조건을 작성할 수 있는 두 가지 도구, 즉 시각적 개체 편집기와 코드 편집기가 있습니다. Azure Portal에서 두 편집기 간에 전환하여 다양한 보기에서 조건을 볼 수 있습니다. 기본 설정 포털 편집기의 예제를 보려면 아래의 시각적 개체 편집기 탭과 코드 편집기 탭 간에 전환합니다.
Azure Portal 접두사=''를 사용하여 컨테이너의 루트 디렉터리에서 Blob을 나열합니다. StringStartSkopenowh 'readonly/' 접두사로 Blob 목록 작업과 함께 조건이 추가되면 대상 사용자는 Azure Portal 컨테이너의 루트 디렉터리에서 Blob을 나열할 수 없습니다.
코드 편집기를 사용하여 조건을 추가하려면 조건 코드 샘플을 복사하여 코드 편집기에 붙여넣습니다. 코드가 입력되었으면 시각적 개체 편집기로 다시 전환하여 유효성을 검사합니다.
Storage Blob 데이터 소유자
(
(
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})
AND
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action'})
)
OR
(
@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container'
AND
@Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs:path] StringStartsWith 'readonly/'
)
)
AND
(
(
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND SubOperationMatches{'Blob.List'})
AND
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action'})
)
OR
(
@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container'
AND
@Request[Microsoft.Storage/storageAccounts/blobServices/containers/blobs:prefix] StringStartsWith 'readonly/'
)
)
Storage Blob Data Reader, Storage Blob 데이터 기여자
(
(
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})
)
OR
(
@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container'
AND
@Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs:path] StringStartsWith 'readonly/'
)
)
AND
(
(
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND SubOperationMatches{'Blob.List'})
)
OR
(
@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container'
AND
@Request[Microsoft.Storage/storageAccounts/blobServices/containers/blobs:prefix] StringStartsWith 'readonly/'
)
)
사용자가 조건에 의해 제한되는 작업이 아닌 할당된 역할에서 작업을 수행하려고 하면 !(ActionMatches)은(는) true로 평가되고 전체 조건이 true로 평가됩니다. 이 결과를 통해 작업을 수행할 수 있습니다.
이 조건을 사용하면 파트너(Microsoft Entra 게스트 사용자)가 경로가 uploads/contoso/*인 Contosocorp라는 스토리지 컨테이너에 파일을 드롭할 수 있습니다. 이 조건은 다른 사용자가 스토리지 컨테이너에 데이터를 넣을 수 있도록 하는 데 유용합니다.
역할 정의에 blob 데이터 소유자와 같은 이 작업이 포함된 경우 Storage를 추가합니다. 이 조건에 포함된 스토리지 계정이 계층 구조 네임스페이스를 사용하도록 설정했거나 나중에 사용하도록 설정될 수 있는 경우 추가합니다.
조건은 Azure Portal 또는 Azure PowerShell을 사용하여 역할 할당에 추가할 수 있습니다. 포털에는 ABAC 조건을 작성할 수 있는 두 가지 도구, 즉 시각적 개체 편집기와 코드 편집기가 있습니다. Azure Portal에서 두 편집기 간에 전환하여 다양한 보기에서 조건을 볼 수 있습니다. 기본 설정 포털 편집기의 예제를 보려면 아래의 시각적 개체 편집기 탭과 코드 편집기 탭 간에 전환합니다.
코드 편집기를 사용하여 조건을 추가하려면 조건 코드 샘플을 복사하여 코드 편집기에 붙여넣습니다. 코드가 입력되었으면 시각적 개체 편집기로 다시 전환하여 유효성을 검사합니다.
Storage Blob 데이터 소유자
(
(
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write'})
AND
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action'})
AND
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action'})
)
OR
(
@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'contosocorp'
AND
@Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs:path] StringLike 'uploads/contoso/*'
)
)
Storage Blob 데이터 Contributor
(
(
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write'})
AND
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action'})
)
OR
(
@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'contosocorp'
AND
@Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs:path] StringLike 'uploads/contoso/*'
)
)
사용자가 조건에 의해 제한되는 작업이 아닌 할당된 역할에서 작업을 수행하려고 하면 !(ActionMatches)은(는) true로 평가되고 전체 조건이 true로 평가됩니다. 이 결과를 통해 작업을 수행할 수 있습니다.
역할 정의에 blob 데이터 소유자와 같은 이 작업이 포함된 경우 Storage를 추가합니다.
조건은 Azure Portal 또는 Azure PowerShell을 사용하여 역할 할당에 추가할 수 있습니다. 포털에는 ABAC 조건을 작성할 수 있는 두 가지 도구, 즉 시각적 개체 편집기와 코드 편집기가 있습니다. Azure Portal에서 두 편집기 간에 전환하여 다양한 보기에서 조건을 볼 수 있습니다. 기본 설정 포털 편집기의 예제를 보려면 아래의 시각적 개체 편집기 탭과 코드 편집기 탭 간에 전환합니다.
코드 편집기를 사용하여 조건을 추가하려면 조건 코드 샘플을 복사하여 코드 편집기에 붙여넣습니다. 코드가 입력되었으면 시각적 개체 편집기로 다시 전환하여 유효성을 검사합니다.
(
(
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})
)
OR
(
@Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Program<$key_case_sensitive$>] StringEquals 'Alpine'
)
)
AND
(
(
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})
)
OR
(
@Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs:path] StringLike 'logs*'
)
)
이 예제에서 조건은 하위 작업이 Blob.List인 경우를 제외하고 읽기 작업을 제한합니다. 즉, Blob 나열 작업이 허용되지만 다른 모든 읽기 작업은 Blob 인덱스 태그 및 경로를 확인하는 식에 대해 추가로 평가됩니다.
사용자가 조건에 의해 제한되는 작업이 아닌 할당된 역할에서 작업을 수행하려고 하면 !(ActionMatches)은(는) true로 평가되고 전체 조건이 true로 평가됩니다. 이 결과를 통해 작업을 수행할 수 있습니다.
$condition = "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Program<`$key_case_sensitive`$>] StringEquals 'Alpine')) AND ((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs:path] StringLike 'logs*'))"
$testRa = Get-AzRoleAssignment -Scope $scope -RoleDefinitionName $roleDefinitionName -ObjectId $userObjectID
$testRa.Condition = $condition
$testRa.ConditionVersion = "2.0"
Set-AzRoleAssignment -InputObject $testRa -PassThru
이 조건을 테스트하는 방법은 다음과 같습니다.
$grantedContainer = "contosocorp"
# Get new context for request
$bearerCtx = New-AzStorageContext -StorageAccountName $storageAccountName
# Try to get ungranted blobs
# Wrong name but right tags
$content = Get-AzStorageBlobContent -Container $grantedContainer -Blob "AlpineFile.txt" -Context $bearerCtx
# Right name but wrong tags
$content = Get-AzStorageBlobContent -Container $grantedContainer -Blob "logsAlpine.txt" -Context $bearerCtx
# Try to get granted blob
$content = Get-AzStorageBlobContent -Container $grantedContainer -Blob "logs/AlpineFile.txt" -Context $bearerCtx
Blob 컨테이너 메타데이터
예: 특정 메타데이터가 포함된 컨테이너의 Blob 읽기
이 조건을 사용하면 사용자는 특정 메타데이터 키/값 쌍을 사용하여 Blob 컨테이너의 Blob을 읽을 수 있습니다.
조건은 Azure Portal 또는 Azure PowerShell을 사용하여 역할 할당에 추가할 수 있습니다. 포털에는 ABAC 조건을 작성할 수 있는 두 가지 도구, 즉 시각적 개체 편집기와 코드 편집기가 있습니다. Azure Portal에서 두 편집기 간에 전환하여 다양한 보기에서 조건을 볼 수 있습니다. 기본 설정 포털 편집기의 예제를 보려면 아래의 시각적 개체 편집기 탭과 코드 편집기 탭 간에 전환합니다.
조건은 Azure Portal 또는 Azure PowerShell을 사용하여 역할 할당에 추가할 수 있습니다. 포털에는 ABAC 조건을 작성할 수 있는 두 가지 도구, 즉 시각적 개체 편집기와 코드 편집기가 있습니다. Azure Portal에서 두 편집기 간에 전환하여 다양한 보기에서 조건을 볼 수 있습니다. 기본 설정 포털 편집기의 예제를 보려면 아래의 시각적 개체 편집기 탭과 코드 편집기 탭 간에 전환합니다.
역할 정의에 blob 데이터 소유자와 같은 이 작업이 포함된 경우 Storage를 추가합니다.
조건은 Azure Portal 또는 Azure PowerShell을 사용하여 역할 할당에 추가할 수 있습니다. 포털에는 ABAC 조건을 작성할 수 있는 두 가지 도구, 즉 시각적 개체 편집기와 코드 편집기가 있습니다. Azure Portal에서 두 편집기 간에 전환하여 다양한 보기에서 조건을 볼 수 있습니다. 기본 설정 포털 편집기의 예제를 보려면 아래의 시각적 개체 편집기 탭과 코드 편집기 탭 간에 전환합니다.
코드 편집기를 사용하여 조건을 추가하려면 조건 코드 샘플을 복사하여 코드 편집기에 붙여넣습니다. 코드가 입력되었으면 시각적 개체 편집기로 다시 전환하여 유효성을 검사합니다.
Storage Blob 데이터 소유자
(
(
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})
AND
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action'})
)
OR
(
@Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs:isCurrentVersion] BoolEquals true
)
)
Storage Blob Data Reader, Storage Blob 데이터 기여자
(
(
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})
)
OR
(
@Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs:isCurrentVersion] BoolEquals true
)
)
이 예제에서 조건은 하위 작업이 Blob.List인 경우를 제외하고 읽기 작업을 제한합니다. 즉, Blob 나열 작업이 허용되지만 다른 모든 읽기 작업은 버전을 확인하는 식에 대해 추가로 평가됩니다.
사용자가 조건에 의해 제한되는 작업이 아닌 할당된 역할에서 작업을 수행하려고 하면 !(ActionMatches)은(는) true로 평가되고 전체 조건이 true로 평가됩니다. 이 결과를 통해 작업을 수행할 수 있습니다.
이 조건을 사용하면 사용자가 현재 Blob 버전을 읽고 버전 ID가 2022-06-01T23:38:32.8883645Z인 Blob을 읽을 수 있습니다. 사용자가 다른 Blob 버전을 읽을 수 없습니다. 버전 ID 특성은 계층 구조 네임스페이스를 사용할 수 없는 스토리지 계정에만 사용할 수 있습니다.
조건은 Azure Portal 또는 Azure PowerShell을 사용하여 역할 할당에 추가할 수 있습니다. 포털에는 ABAC 조건을 작성할 수 있는 두 가지 도구, 즉 시각적 개체 편집기와 코드 편집기가 있습니다. Azure Portal에서 두 편집기 간에 전환하여 다양한 보기에서 조건을 볼 수 있습니다. 기본 설정 포털 편집기의 예제를 보려면 아래의 시각적 개체 편집기 탭과 코드 편집기 탭 간에 전환합니다.
코드 편집기를 사용하여 조건을 추가하려면 조건 코드 샘플을 복사하여 코드 편집기에 붙여넣습니다. 코드가 입력되었으면 시각적 개체 편집기로 다시 전환하여 유효성을 검사합니다.
(
(
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})
)
OR
(
@Request[Microsoft.Storage/storageAccounts/blobServices/containers/blobs:versionId] DateTimeEquals '2022-06-01T23:38:32.8883645Z'
OR
@Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs:isCurrentVersion] BoolEquals true
)
)
이 예제에서 조건은 하위 작업이 Blob.List인 경우를 제외하고 읽기 작업을 제한합니다. 즉, Blob 나열 작업이 허용되지만 다른 모든 읽기 작업은 버전 정보를 확인하는 식에 대해 추가로 평가됩니다.
사용자가 조건에 의해 제한되는 작업이 아닌 할당된 역할에서 작업을 수행하려고 하면 !(ActionMatches)은(는) true로 평가되고 전체 조건이 true로 평가됩니다. 이 결과를 통해 작업을 수행할 수 있습니다.
조건은 Azure Portal 또는 Azure PowerShell을 사용하여 역할 할당에 추가할 수 있습니다. 포털에는 ABAC 조건을 작성할 수 있는 두 가지 도구, 즉 시각적 개체 편집기와 코드 편집기가 있습니다. Azure Portal에서 두 편집기 간에 전환하여 다양한 보기에서 조건을 볼 수 있습니다. 기본 설정 포털 편집기의 예제를 보려면 아래의 시각적 개체 편집기 탭과 코드 편집기 탭 간에 전환합니다.
이 조건을 사용하면 사용자가 현재 Blob 버전 및 모든 Blob 스냅샷을 읽을 수 있습니다. 버전 ID 특성은 계층 구조 네임스페이스를 사용할 수 없는 스토리지 계정에만 사용할 수 있습니다. Snapshot 특성은 계층 구조 네임스페이스를 사용하도록 설정되지 않은 스토리지 계정에 사용할 수 있으며 현재 계층 구조 네임스페이스가 활성화된 스토리지 계정에 대해 미리 보기로 제공됩니다.
역할 정의에 blob 데이터 소유자와 같은 이 작업이 포함된 경우 Storage를 추가합니다.
조건은 Azure Portal 또는 Azure PowerShell을 사용하여 역할 할당에 추가할 수 있습니다. 포털에는 ABAC 조건을 작성할 수 있는 두 가지 도구, 즉 시각적 개체 편집기와 코드 편집기가 있습니다. Azure Portal에서 두 편집기 간에 전환하여 다양한 보기에서 조건을 볼 수 있습니다. 기본 설정 포털 편집기의 예제를 보려면 아래의 시각적 개체 편집기 탭과 코드 편집기 탭 간에 전환합니다.
코드 편집기를 사용하여 조건을 추가하려면 조건 코드 샘플을 복사하여 코드 편집기에 붙여넣습니다. 코드가 입력되었으면 시각적 개체 편집기로 다시 전환하여 유효성을 검사합니다.
Storage Blob 데이터 소유자
(
(
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})
AND
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action'})
)
OR
(
Exists @Request[Microsoft.Storage/storageAccounts/blobServices/containers/blobs:snapshot]
OR
@Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs:isCurrentVersion] BoolEquals true
)
)
Storage Blob Data Reader, Storage Blob 데이터 기여자
(
(
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})
)
OR
(
Exists @Request[Microsoft.Storage/storageAccounts/blobServices/containers/blobs:snapshot]
OR
@Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs:isCurrentVersion] BoolEquals true
)
)
이 예제에서 조건은 하위 작업이 Blob.List인 경우를 제외하고 읽기 작업을 제한합니다. 즉, Blob 나열 작업이 허용되지만 다른 모든 읽기 작업은 버전 및 스냅샷 정보를 확인하는 식에 대해 추가로 평가됩니다.
사용자가 조건에 의해 제한되는 작업이 아닌 할당된 역할에서 작업을 수행하려고 하면 !(ActionMatches)은(는) true로 평가되고 전체 조건이 true로 평가됩니다. 이 결과를 통해 작업을 수행할 수 있습니다.
이 조건을 사용하면 사용자는 컨테이너의 Blob을 나열하고 메타데이터, 스냅샷 및 버전 정보를 포함할 수 있습니다. Blob 나열 포함 특성은 계층 구조 네임스페이스가 사용하도록 설정되지 않은 스토리지 계정에 사용할 수 있습니다.
참고 항목
Blob 나열 포함은 요청 특성이며, Blob 나열 작업을 호출할 때 include 매개 변수의 값을 허용하거나 제한하여 작동합니다. include 매개 변수의 값은 교차곱 비교 연산자를 사용하여 조건에 지정된 값과 비교됩니다. 비교 결과가 true로 평가되면 List Blobs 요청이 허용됩니다. 비교 결과가 false로 평가되면 List Blobs 요청이 거부됩니다.
조건은 Azure Portal 또는 Azure PowerShell을 사용하여 역할 할당에 추가할 수 있습니다. 포털에는 ABAC 조건을 작성할 수 있는 두 가지 도구, 즉 시각적 개체 편집기와 코드 편집기가 있습니다. Azure Portal에서 두 편집기 간에 전환하여 다양한 보기에서 조건을 볼 수 있습니다. 기본 설정 포털 편집기의 예제를 보려면 아래의 시각적 개체 편집기 탭과 코드 편집기 탭 간에 전환합니다.
이 조건은 요청에 메타데이터가 포함된 경우 사용자가 Blob을 나열하지 못하도록 제한합니다. Blob 나열 포함 특성은 계층 구조 네임스페이스가 사용하도록 설정되지 않은 스토리지 계정에 사용할 수 있습니다.
참고 항목
Blob 나열 포함은 요청 특성이며, Blob 나열 작업을 호출할 때 include 매개 변수의 값을 허용하거나 제한하여 작동합니다. include 매개 변수의 값은 교차곱 비교 연산자를 사용하여 조건에 지정된 값과 비교됩니다. 비교 결과가 true로 평가되면 List Blobs 요청이 허용됩니다. 비교 결과가 false로 평가되면 List Blobs 요청이 거부됩니다.
조건은 Azure Portal 또는 Azure PowerShell을 사용하여 역할 할당에 추가할 수 있습니다. 포털에는 ABAC 조건을 작성할 수 있는 두 가지 도구, 즉 시각적 개체 편집기와 코드 편집기가 있습니다. Azure Portal에서 두 편집기 간에 전환하여 다양한 보기에서 조건을 볼 수 있습니다. 기본 설정 포털 편집기의 예제를 보려면 아래의 시각적 개체 편집기 탭과 코드 편집기 탭 간에 전환합니다.
역할 정의에 blob 데이터 소유자와 같은 이 작업이 포함된 경우 Storage를 추가합니다.
조건은 Azure Portal 또는 Azure PowerShell을 사용하여 역할 할당에 추가할 수 있습니다. 포털에는 ABAC 조건을 작성할 수 있는 두 가지 도구, 즉 시각적 개체 편집기와 코드 편집기가 있습니다. Azure Portal에서 두 편집기 간에 전환하여 다양한 보기에서 조건을 볼 수 있습니다. 기본 설정 포털 편집기의 예제를 보려면 아래의 시각적 개체 편집기 탭과 코드 편집기 탭 간에 전환합니다.
코드 편집기를 사용하여 조건을 추가하려면 조건 코드 샘플을 복사하여 코드 편집기에 붙여넣습니다. 코드가 입력되었으면 시각적 개체 편집기로 다시 전환하여 유효성을 검사합니다.
Storage Blob 데이터 소유자
(
(
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})
AND
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action'})
)
OR
(
@Resource[Microsoft.Storage/storageAccounts:isHnsEnabled] BoolEquals true
)
)
Storage Blob Data Reader, Storage Blob 데이터 기여자
(
(
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})
)
OR
(
@Resource[Microsoft.Storage/storageAccounts:isHnsEnabled] BoolEquals true
)
)
이 예제에서 조건은 하위 작업이 Blob.List인 경우를 제외하고 읽기 작업을 제한합니다. 즉, Blob 나열 작업이 허용되지만 다른 모든 읽기 작업은 계층 구조 네임스페이스를 확인하는 식에 대해 추가로 평가됩니다.
사용자가 조건에 의해 제한되는 작업이 아닌 할당된 역할에서 작업을 수행하려고 하면 !(ActionMatches)은(는) true로 평가되고 전체 조건이 true로 평가됩니다. 이 결과를 통해 작업을 수행할 수 있습니다.
역할 정의에 blob 데이터 소유자와 같은 이 작업이 포함된 경우 Storage를 추가합니다.
조건은 Azure Portal 또는 Azure PowerShell을 사용하여 역할 할당에 추가할 수 있습니다. 포털에는 ABAC 조건을 작성할 수 있는 두 가지 도구, 즉 시각적 개체 편집기와 코드 편집기가 있습니다. Azure Portal에서 두 편집기 간에 전환하여 다양한 보기에서 조건을 볼 수 있습니다. 기본 설정 포털 편집기의 예제를 보려면 아래의 시각적 개체 편집기 탭과 코드 편집기 탭 간에 전환합니다.
코드 편집기를 사용하여 조건을 추가하려면 조건 코드 샘플을 복사하여 코드 편집기에 붙여넣습니다. 코드가 입력되었으면 시각적 개체 편집기로 다시 전환하여 유효성을 검사합니다.
(
(
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})
)
OR
(
@Resource[Microsoft.Storage/storageAccounts/encryptionScopes:name] ForAnyOfAnyValues:StringEquals {'validScope1', 'validScope2'}
)
)
이 예제에서 조건은 하위 작업이 Blob.List인 경우를 제외하고 읽기 작업을 제한합니다. 즉, Blob 나열 작업이 허용되지만 다른 모든 읽기 작업은 암호화 범위를 확인하는 식에 대해 추가로 평가됩니다.
사용자가 조건에 의해 제한되는 작업이 아닌 할당된 역할에서 작업을 수행하려고 하면 !(ActionMatches)은(는) true로 평가되고 전체 조건이 true로 평가됩니다. 이 결과를 통해 작업을 수행할 수 있습니다.
이 조건을 사용하면 사용자가 이름이 sampleaccount이고 ScopeCustomKey1 암호화 범위로 암호화된 스토리지 계정에서 Blob을 읽거나 쓸 수 있습니다. Blob이 암호화되거나 ScopeCustomKey1(으)로 암호 해독되지 않은 경우 요청은 금지됨을 반환합니다.
역할 정의에 blob 데이터 소유자와 같은 이 작업이 포함된 경우 Storage를 추가합니다.
참고 항목
다른 스토리지 계정에 대한 암호화 범위는 다를 수 있으므로 storageAccounts:name 특성과 encryptionScopes:name 특성을 사용하여 허용되는 특정 암호화 범위를 제한하는 것이 좋습니다.
조건은 Azure Portal 또는 Azure PowerShell을 사용하여 역할 할당에 추가할 수 있습니다. 포털에는 ABAC 조건을 작성할 수 있는 두 가지 도구, 즉 시각적 개체 편집기와 코드 편집기가 있습니다. Azure Portal에서 두 편집기 간에 전환하여 다양한 보기에서 조건을 볼 수 있습니다. 기본 설정 포털 편집기의 예제를 보려면 아래의 시각적 개체 편집기 탭과 코드 편집기 탭 간에 전환합니다.
코드 편집기를 사용하여 조건을 추가하려면 조건 코드 샘플을 복사하여 코드 편집기에 붙여넣습니다. 코드가 입력되었으면 시각적 개체 편집기로 다시 전환하여 유효성을 검사합니다.
(
(
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})
AND
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write'})
AND
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action'})
)
OR
(
@Resource[Microsoft.Storage/storageAccounts:name] StringEquals 'sampleaccount'
AND
@Resource[Microsoft.Storage/storageAccounts/encryptionScopes:name] ForAnyOfAnyValues:StringEquals {'ScopeCustomKey1'}
)
)
사용자가 조건에 의해 제한되는 작업이 아닌 할당된 역할에서 작업을 수행하려고 하면 !(ActionMatches)은(는) true로 평가되고 전체 조건이 true로 평가됩니다. 이 결과를 통해 작업을 수행할 수 있습니다.
조건은 Azure Portal 또는 Azure PowerShell을 사용하여 역할 할당에 추가할 수 있습니다. 포털에는 ABAC 조건을 작성할 수 있는 두 가지 도구, 즉 시각적 개체 편집기와 코드 편집기가 있습니다. Azure Portal에서 두 편집기 간에 전환하여 다양한 보기에서 조건을 볼 수 있습니다. 기본 설정 포털 편집기의 예제를 보려면 아래의 시각적 개체 편집기 탭과 코드 편집기 탭 간에 전환합니다.
코드 편집기를 사용하여 조건을 추가하려면 조건 코드 샘플을 복사하여 코드 편집기에 붙여넣습니다. 코드가 입력되었으면 시각적 개체 편집기로 다시 전환하여 유효성을 검사합니다.
(
(
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})
)
OR
(
@Principal[Microsoft.Directory/CustomSecurityAttributes/Id:Engineering_Project] StringEquals @Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$key_case_sensitive$>]
)
)
AND
(
(
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write'} AND SubOperationMatches{'Blob.Write.WithTagHeaders'})
AND
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action'} AND SubOperationMatches{'Blob.Write.WithTagHeaders'})
)
OR
(
@Principal[Microsoft.Directory/CustomSecurityAttributes/Id:Engineering_Project] StringEquals @Request[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$key_case_sensitive$>]
)
)
사용자가 조건에 의해 제한되는 작업이 아닌 할당된 역할에서 작업을 수행하려고 하면 !(ActionMatches)은(는) true로 평가되고 전체 조건이 true로 평가됩니다. 이 결과를 통해 작업을 수행할 수 있습니다.
조건은 Azure Portal 또는 Azure PowerShell을 사용하여 역할 할당에 추가할 수 있습니다. 포털에는 ABAC 조건을 작성할 수 있는 두 가지 도구, 즉 시각적 개체 편집기와 코드 편집기가 있습니다. 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$>] ForAnyOfAnyValues:StringEquals @Principal[Microsoft.Directory/CustomSecurityAttributes/Id:Engineering_Project]
)
)
이 예제에서 조건은 하위 작업이 Blob.List인 경우를 제외하고 읽기 작업을 제한합니다. 즉, Blob 나열 작업이 허용되지만 다른 모든 읽기 작업은 Blob 인덱스 태그 및 사용자 지정 보안 특성을 확인하는 식에 대해 추가로 평가됩니다.
사용자가 조건에 의해 제한되는 작업이 아닌 할당된 역할에서 작업을 수행하려고 하면 !(ActionMatches)은(는) true로 평가되고 전체 조건이 true로 평가됩니다. 이 결과를 통해 작업을 수행할 수 있습니다.
역할 정의에 blob 데이터 소유자와 같은 이 작업이 포함된 경우 Storage를 추가합니다.
조건은 Azure Portal 또는 Azure PowerShell을 사용하여 역할 할당에 추가할 수 있습니다. 포털에는 ABAC 조건을 작성할 수 있는 두 가지 도구, 즉 시각적 개체 편집기와 코드 편집기가 있습니다. Azure Portal에서 두 편집기 간에 전환하여 다양한 보기에서 조건을 볼 수 있습니다. 기본 설정 포털 편집기의 예제를 보려면 아래의 시각적 개체 편집기 탭과 코드 편집기 탭 간에 전환합니다.
이 조건은 virtualnetwork1 가상 네트워크의 default 서브넷에서만 container1의 Blob에 대한 읽기, 쓰기, 추가 및 삭제 액세스를 허용합니다. 이 예제에서 서브넷 특성을 사용하려면 서브넷에 Azure Storage에 대해 서비스 엔드포인트를 사용하도록 설정해야 합니다.
기존 Blob 읽기, 쓰기, 추가 및 삭제 액세스에 대한 5가지 잠재적인 작업이 있습니다. 이 조건이 여러 역할 할당이 있는 보안 주체에 적용되려면 다음 작업을 포함하는 모든 역할 할당에 이 조건을 추가해야 합니다.
역할 정의에 blob 데이터 소유자와 같은 이 작업이 포함된 경우 Storage를 추가합니다.
조건은 Azure Portal 또는 Azure PowerShell을 사용하여 역할 할당에 추가할 수 있습니다. 포털에는 ABAC 조건을 작성할 수 있는 두 가지 도구, 즉 시각적 개체 편집기와 코드 편집기가 있습니다. Azure Portal에서 두 편집기 간에 전환하여 다양한 보기에서 조건을 볼 수 있습니다. 기본 설정 포털 편집기의 예제를 보려면 아래의 시각적 개체 편집기 탭과 코드 편집기 탭 간에 전환합니다.
/subscriptions/<your subscription id>/resourceGroups/<resource group name>/providers/Microsoft.Network/virtualNetworks/virtualnetwork1/subnets/default
다음 이미지에서는 설정을 Azure Portal에 입력한 후의 조건을 보여줍니다. 올바른 평가를 위해 식을 그룹화해야 합니다.
코드 편집기를 사용하여 조건을 추가하려면 아래의 조건 코드 샘플을 복사하여 코드 편집기에 붙여넣습니다. 코드가 입력되었으면 시각적 개체 편집기로 다시 전환하여 유효성을 검사합니다.
(
(
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})
AND
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write'})
AND
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action'})
AND
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete'})
)
OR
(
@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name]StringEquals 'container1'
AND
@Environment[Microsoft.Network/virtualNetworks/subnets] StringEqualsIgnoreCase '/subscriptions/<your subscription id>/resourceGroups/example-group/providers/Microsoft.Network/virtualNetworks/virtualnetwork1/subnets/default'
)
)
사용자가 조건에 의해 제한되는 작업이 아닌 할당된 역할에서 작업을 수행하려고 하면 !(ActionMatches)은(는) true로 평가되고 전체 조건이 true로 평가됩니다. 이 결과를 통해 작업을 수행할 수 있습니다.
이 조건에서는 프라이빗 링크(모든 프라이빗 링크)를 통해 Blob 인덱스 태그 sensitivity 값이 high인 Blob 읽기를 요청해야 합니다. 즉, 공용 인터넷에서 매우 중요한 Blob을 읽으려는 모든 시도가 허용되지 않습니다. 사용자는 sensitivity가 high 이외의 값으로 설정된 공용 인터넷에서 Blob을 읽을 수 있습니다.
이 ABAC 조건 샘플에 대한 진리표는 다음과 같습니다.
작업
민감도
프라이빗 링크
액세스 권한
Blob 읽기
high
예
허용됨
Blob 읽기
high
아니요
허용 안함
Blob 읽기
높지 않음
예
허용됨
Blob 읽기
높지 않음
아니요
허용됨
기존 Blob 읽기에 대한 두 가지 잠재적인 작업이 있습니다. 이 조건이 여러 역할 할당이 있는 보안 주체에 적용되려면 다음 작업을 포함하는 모든 역할 할당에 이 조건을 추가해야 합니다.
역할 정의에 blob 데이터 소유자와 같은 이 작업이 포함된 경우 Storage를 추가합니다.
조건은 Azure Portal 또는 Azure PowerShell을 사용하여 역할 할당에 추가할 수 있습니다. 포털에는 ABAC 조건을 작성할 수 있는 두 가지 도구, 즉 시각적 개체 편집기와 코드 편집기가 있습니다. Azure Portal에서 두 편집기 간에 전환하여 다양한 보기에서 조건을 볼 수 있습니다. 기본 설정 포털 편집기의 예제를 보려면 아래의 시각적 개체 편집기 탭과 코드 편집기 탭 간에 전환합니다.
다음 이미지에서는 설정을 Azure Portal에 입력한 후의 조건을 보여줍니다. 올바른 평가를 위해 식을 그룹화해야 합니다.
코드 편집기를 사용하여 조건을 추가하려면 아래의 조건 코드 샘플을 복사하여 코드 편집기에 붙여넣습니다. 코드가 입력되었으면 시각적 개체 편집기로 다시 전환하여 유효성을 검사합니다.
(
(
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})
)
OR
(
(
@Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:sensitivity<$key_case_sensitive$>] StringEquals 'high'
AND
@Environment[isPrivateLink] BoolEquals true
)
OR
@Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:sensitivity<$key_case_sensitive$>] StringNotEquals 'high'
)
)
이 예제에서 조건은 하위 작업이 Blob.List인 경우를 제외하고 읽기 작업을 제한합니다. 즉, Blob 나열 작업이 허용되지만 다른 모든 읽기 작업은 식에 대해 추가로 평가됩니다.
사용자가 조건에 의해 제한되는 작업이 아닌 할당된 역할에서 작업을 수행하려고 하면 !(ActionMatches)은(는) true로 평가되고 전체 조건이 true로 평가됩니다. 이 결과를 통해 작업을 수행할 수 있습니다.
이 조건에서는 container1이라는 스토리지 컨테이너의 Blob에 대한 모든 읽기, 쓰기, 추가 및 삭제 작업을 privateendpoint1이라는 프라이빗 엔드포인트를 통해 수행해야 합니다. 이름이 container1이(가) 아닌 다른 모든 컨테이너의 경우 프라이빗 엔드포인트를 통해 액세스할 필요가 없습니다.
기존 Blob에 대한 읽기, 쓰기 및 삭제에 대한 5가지 잠재적인 작업이 있습니다. 이 조건이 여러 역할 할당이 있는 보안 주체에 적용되려면 다음 작업을 포함하는 모든 역할 할당에 이 조건을 추가해야 합니다.
역할 정의에 blob 데이터 소유자와 같은 이 작업이 포함된 경우 Storage를 추가합니다. 이 조건에 포함된 스토리지 계정이 계층 구조 네임스페이스를 사용하도록 설정했거나 나중에 사용하도록 설정될 수 있는 경우 추가합니다.
조건은 Azure Portal 또는 Azure PowerShell을 사용하여 역할 할당에 추가할 수 있습니다. 포털에는 ABAC 조건을 작성할 수 있는 두 가지 도구, 즉 시각적 개체 편집기와 코드 편집기가 있습니다. Azure Portal에서 두 편집기 간에 전환하여 다양한 보기에서 조건을 볼 수 있습니다. 기본 설정 포털 편집기의 예제를 보려면 아래의 시각적 개체 편집기 탭과 코드 편집기 탭 간에 전환합니다.
다음 이미지에서는 설정을 Azure Portal에 입력한 후의 조건을 보여줍니다. 올바른 평가를 위해 식을 그룹화해야 합니다.
코드 편집기를 사용하여 조건을 추가하려면 할당과 연결된 역할에 따라 다음 조건 코드 샘플 중 하나를 선택합니다. 코드가 입력되었으면 시각적 개체 편집기로 다시 전환하여 유효성을 검사합니다.
스토리지 Blob 데이터 소유자:
(
(
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})
AND
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write'})
AND
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action'})
AND
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete'})
AND
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action'})
)
OR
(
(
@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'container1'
AND
@Environment[Microsoft.Network/privateEndpoints] StringEqualsIgnoreCase '/subscriptions/<your subscription id>/resourceGroups/example-group/providers/Microsoft.Network/privateEndpoints/privateendpoint1'
)
OR
@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringNotEquals 'container1'
)
)
스토리지 Blob 데이터 기여자:
(
(
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})
AND
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write'})
AND
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action'})
AND
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete'})
)
OR
(
(
@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'container1'
AND
@Environment[Microsoft.Network/privateEndpoints] StringEqualsIgnoreCase '/subscriptions/<your subscription id>/resourceGroups/example-group/providers/Microsoft.Network/privateEndpoints/privateendpoint1'
)
OR
@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringNotEquals 'container1'
)
)
사용자가 조건에 의해 제한되는 작업이 아닌 할당된 역할에서 작업을 수행하려고 하면 !(ActionMatches)은(는) true로 평가되고 전체 조건이 true로 평가됩니다. 이 결과를 통해 작업을 수행할 수 있습니다.
예제: 액세스 태그가 지정된 특정 프라이빗 엔드포인트 및 사용자에게만 매우 중요한 Blob 데이터에 대한 읽기 액세스 허용
이 조건에서는 high로 설정된 sensitivity의 보안 특성 값과 일치하는 사용자만 해당 인덱스 태그 sensitivity가 있는 Blob을 읽을 수 있어야 합니다. 또한 privateendpoint1이라는 프라이빗 엔드포인트를 통해 액세스해야 합니다. sensitivity 태그의 값이 다른 Blob은 다른 엔드포인트 또는 인터넷을 통해 액세스할 수 있습니다.
기존 Blob 읽기에 대한 두 가지 잠재적인 작업이 있습니다. 이 조건이 여러 역할 할당이 있는 보안 주체에 적용되려면 다음 작업을 포함하는 모든 역할 할당에 이 조건을 추가해야 합니다.
역할 정의에 blob 데이터 소유자와 같은 이 작업이 포함된 경우 Storage를 추가합니다.
조건은 Azure Portal 또는 Azure PowerShell을 사용하여 역할 할당에 추가할 수 있습니다. 포털에는 ABAC 조건을 작성할 수 있는 두 가지 도구, 즉 시각적 개체 편집기와 코드 편집기가 있습니다. Azure Portal에서 두 편집기 간에 전환하여 다양한 보기에서 조건을 볼 수 있습니다. 기본 설정 포털 편집기의 예제를 보려면 아래의 시각적 개체 편집기 탭과 코드 편집기 탭 간에 전환합니다.