Azure 역할 할당 조건 문제 해결

일반적인 문제

증상 - 조건이 적용되지 않음

원인 1

동일하거나 더 높은 범위에서 보안 주체에 역할 할당이 하나 이상 있습니다.

해결 방법 1

동일한 데이터 작업에 대한 액세스 권한을 부여하는 여러 역할 할당(조건 유무에 관계없이)이 보안 주체에 없어 조건이 적용되지 않는지 확인합니다. 평가 논리에 대한 자세한 내용은 Azure RBAC가 리소스에 대한 액세스 권한이 사용자에게 있는지 확인하는 방법을 참조하세요.

원인 2

역할 할당에 권한을 부여하는 작업이 여러 개 있으며 조건에서 모든 작업을 대상으로 지정하지 않습니다. 예를 들어 /blobs/write 또는 /blobs/add/action 데이터 작업이 있는 경우 BLOB을 만들 수 있습니다. 역할 할당에 데이터 작업 2개가 모두 있고 한 조건에서 데이터 작업 중 하나만 대상으로 지정하는 경우 역할 할당은 BLOB을 만들고 조건을 무시할 수 있는 권한을 부여합니다.

해결 방법 2

역할 할당에 권한을 부여하는 작업이 여러 개 있는 경우 모든 관련 작업을 대상으로 지정해야 합니다.

원인 3

역할 할당에 조건을 추가하면 조건이 적용되는 데 최대 5분이 걸릴 수 있습니다. 조건을 추가하면 리소스 공급자(예: Microsoft.Storage)에 업데이트를 알립니다. 리소스 공급자는 로컬 캐시를 즉시 업데이트하여 최신 역할 할당이 있는지 확인합니다. 이 프로세스는 1~2분 이내에 완료되지만 최대 5분이 걸릴 수 있습니다.

솔루션 3

5분 동안 기다린 다음, 조건을 다시 테스트합니다.

증상 - 조건을 추가할 때 조건이 유효하지 않음 오류

조건을 사용하여 역할 할당을 추가하려고 할 때 다음과 유사한 오류가 발생합니다.

The given role assignment condition is invalid.

원인 1

conditionVersion 속성이 "1.0"으로 설정되어 있습니다.

해결 방법 1

conditionVersion 속성을 "2.0"으로 설정합니다.

원인 2

조건의 형식이 올바르지 않습니다.

해결 방법 2

조건 형식 또는 구문 이슈를 해결합니다. 또는 Azure Portal의 시각적 개체 편집기를 사용하여 조건을 추가합니다.

시각적 편집기의 문제

증상 - 조건을 편집할 때 조건 편집기가 나타남

조건을 사용하여 다른 사람에게 Azure 역할 할당 관리 위임에 설명된 템플릿을 사용하여 조건을 만들었습니다. 조건을 편집하려고 하면 고급 조건 편집기가 표시됩니다.

조건 편집 옵션을 보여 주는 조건 편집기의 스크린샷.

이전에 조건을 편집할 때 조건 템플릿을 사용하여 편집했습니다.

일치 템플릿이 사용하도록 설정된 조건 템플릿의 스크린샷.

원인

조건이 템플릿의 패턴과 일치하지 않습니다.

해결 방법 1

다음 템플릿 패턴 중 하나와 일치하도록 조건을 편집합니다.

템플릿 조건
역할 제한 예: 역할 제한
역할 및 보안 주체 유형 제한 예: 역할 및 보안 주체 형식 제한
역할 및 보안 주체 제한 예: 역할 및 특정 그룹 제한
특정 역할을 제외하고 모두 허용 예: 대부분의 역할을 허용하지만 다른 사람이 역할을 할당하는 것을 허용하지 않음

해결 방법 2

조건을 삭제하고 조건을 사용하여 다른 사람에게 Azure 역할 할당 관리 위임의 단계에서 다시 만듭니다.

증상 - 보안 주체가 특성 원본에 표시되지 않음

조건이 있는 역할 할당을 추가하려고 하면 보안 주체특성 원본 목록에 표시되지 않습니다.

조건을 추가할 때 특성 원본 목록의 보안 주체를 보여 주는 스크린샷

대신 다음 메시지가 표시됩니다.

To use principal (user) attributes, you must have Microsoft Entra permissions (such as the [Attribute Assignment Administrator](../active-directory/roles/permissions-reference.md#attribute-assignment-administrator) role) and custom security attributes defined in Microsoft Entra ID.

원인

필수 구성 요소를 충족하지 않습니다. 보안 주체 특성을 사용하려면 다음이 있어야 합니다.

  • 로그인한 사용자가 하나 이상의 특성 집합을 읽을 수 있는 Microsoft Entra 권한
  • Microsoft Entra ID에 정의된 사용자 지정 보안 특성

솔루션

  1. Microsoft Entra ID>사용자 지정 보안 특성을 엽니다.

    시작 페이지가 표시되면 하나 이상의 특성 집합을 읽을 수 있는 권한이 없거나 사용자 지정 보안 특성이 아직 정의되지 않은 것입니다.

    사용자 지정 보안 특성 시작 페이지를 보여 주는 스크린샷.

  2. 사용자 지정 보안 특성이 정의된 경우 테넌트 범위 또는 특성 집합 범위에서 다음 역할 중 하나를 할당합니다. 자세한 내용은 Microsoft Entra ID의 사용자 지정 보안 특성에 대한 액세스 관리를 참조하세요.

    Important

    기본적으로 전역 관리자 및 기타 관리자 역할에는 사용자 지정 보안 특성을 읽거나 정의하거나 할당할 수 있는 권한이 없습니다.

  3. 사용자 지정 보안 특성이 아직 정의되지 않은 경우 테넌트 범위에서 특성 정의 관리자 역할을 할당하고 사용자 지정 보안 특성을 추가합니다. 자세한 내용은 Microsoft Entra ID에서 사용자 지정 보안 특성 추가 또는 비활성화를 참조하세요.

    완료되면 하나 이상의 특성 집합을 읽을 수 있어야 합니다.

    사용자가 읽을 수 있는 특성 집합을 보여 주는 스크린샷.

    이제 조건이 있는 역할 할당을 추가할 때 보안 주체특성 원본 목록에 표시됩니다.

증상 - PIM을 사용할 때 보안 주체가 표시되지 않음

Microsoft Entra PIM(Privileged Identity Management)을 사용하여 조건이 있는 역할 할당을 추가하려고 하면 보안 주체특성 원본 목록에 표시되지 않습니다.

Privileged Identity Management를 사용하여 조건을 추가할 때 특성 원본 목록의 보안 주체를 보여 주는 스크린샷

원인

PIM은 현재 역할 할당 조건에서 보안 주체 특성을 사용하도록 지원하지 않습니다.

시각적 편집기의 오류 메시지

증상 - 조건이 인식되지 않음

코드 편집기를 사용한 후 시각적 편집기로 전환하고 다음과 유사한 메시지가 표시됩니다.

The current expression cannot be recognized. Switch to the code editor to edit the expression or delete the expression and add a new one.

원인

시각적 편집기에서 구문 분석할 수 없는 조건이 업데이트되었습니다.

솔루션

조건 형식 또는 구문 이슈를 해결합니다. 또는 조건을 삭제하고 다시 시도해 봅니다.

증상 - 특성이 이전에 저장된 조건에 대한 오류를 적용하지 않음

시각적 편집기에서 이전에 저장된 조건을 열면 다음 메시지가 표시됩니다.

Attribute does not apply for the selected actions. Select a different set of actions.

원인

2022년 5월에 Blob 읽기 작업이 다음 형식에서 변경되었습니다.

!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})

Blob.List 하위 작업을 제외하려면 다음과 같습니다.

!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})

2022년 5월 이전에 Blob 읽기 작업을 사용하여 조건을 만든 경우 시각적 편집기에 이 오류 메시지가 표시될 수 있습니다.

솔루션

작업 선택 창을 열고, Blob 읽기 작업을 다시 선택합니다.

증상 - 특성이 오류를 적용하지 않음

기존 식이 있는 시각적 편집기에서 하나 이상의 작업을 선택하면 다음 메시지가 표시되고, 이전에 선택한 특성이 제거됩니다.

Attribute does not apply for the selected actions. Select a different set of actions.

원인

이전에 선택한 특성이 현재 선택한 작업에 더 이상 적용되지 않습니다.

해결 방법 1

작업 추가 섹션에서 선택한 특성에 적용되는 작업을 선택합니다. 각 스토리지 특성에서 지원하는 스토리지 작업 목록은 Azure Blob Storage에 대한 Azure 역할 할당 조건의 작업 및 특성Azure 큐에 대한 Azure 역할 할당 조건의 작업 및 특성을 참조하세요.

해결 방법 2

식 작성 섹션에서 현재 선택한 작업에 적용되는 특성을 선택합니다. 각 스토리지 작업에서 지원하는 스토리지 특성 목록은 Azure Blob Storage에 대한 Azure 역할 할당 조건의 작업 및 특성Azure 큐에 대한 Azure 역할 할당 조건의 작업 및 특성을 참조하세요.

증상 - 특성이 이 컨텍스트 경고에서 적용하지 않음

코드 편집기에서 편집한 다음, 시각적 편집기로 전환하면 다음 메시지가 표시되고, 이전에 선택한 특성이 제거됩니다.

Attribute does not apply in this context. Use a different role assignment scope or remove the expression.

원인

계층 구조 네임스페이스가 사용하도록 설정된 스토리지 계정에서 Version ID를 사용하는 것과 같이 지정된 특성을 현재 범위에서 사용할 수 없습니다.

솔루션

현재 지정된 특성을 사용하려면 리소스 그룹 범위와 같은 다른 범위의 역할 할당 조건을 만듭니다. 또는 현재 선택한 작업을 사용하여 식을 제거하고 다시 만듭니다.

증상 - 특성이 인식되지 않음 오류

코드 편집기에서 편집한 다음, 시각적 편집기로 전환하면 다음 메시지가 표시되고, 이전에 선택한 특성이 제거됩니다.

Attribute is not recognized. Select a valid attribute or remove the expression.

원인

오타로 인해 지정된 특성이 인식되지 않습니다.

솔루션

코드 편집기에서 오타를 수정합니다. 또는 기존 식을 제거하고 시각적 편집기를 사용하여 특성을 선택합니다.

증상 - 특성 값이 유효하지 않음 오류

코드 편집기에서 편집한 다음, 시각적 편집기로 전환하면 다음 메시지가 표시되고, 이전에 선택한 특성이 제거됩니다.

Attribute value is invalid. Select another attribute or value.

원인

식의 오른쪽에 유효하지 않은 특성이나 값이 포함되어 있습니다.

솔루션

시각적 편집기를 사용하여 특성을 선택하거나 값을 지정합니다.

증상 - 선택한 작업 없음 오류

시각적 편집기에서 모든 작업을 제거하면 다음 메시지가 표시됩니다.

No actions selected. Select one or more actions to edit expressions.

원인

기존 식이 있지만 대상으로 선택된 작업이 없습니다.

솔루션

작업 추가 섹션에서 식에서 대상으로 지정해야 하는 하나 이상의 작업을 추가합니다.

증상 - 사용할 수 있는 옵션 없음 오류

식을 추가하려고 하면 다음 메시지가 표시됩니다.

No options available

원인

여러 작업을 대상으로 지정하도록 선택했으며 현재 선택한 모든 작업에 적용되는 특성이 없습니다.

솔루션

작업 추가 섹션에서 대상으로 지정할 작업을 더 적게 선택합니다. 제거한 작업을 대상으로 지정하려면 여러 조건을 추가합니다.

증상 - 역할 정의 ID를 찾을 수 없습니다.

식을 추가하려고 하면 다음 메시지가 표시됩니다.

Cannot find built-in or custom role definitions with IDs: <role IDs>. These IDs were removed. Check that the IDs are valid and try to add again. You can also refresh the page or sign out and sign in again.

원인

역할 정의 ID 특성에 추가하려고 시도한 하나 이상의 역할 정의 ID를 찾을 수 없거나 올바른 GUID 유형(00000000-0000-0000-0000-000000000000)이 없습니다.

솔루션

조건 편집기를 사용하여 역할을 선택합니다. 최근에 사용자 지정 역할을 추가한 경우 페이지를 새로 고치거나 로그아웃하고 다시 로그인합니다.

증상 - 보안 주체 ID를 찾을 수 없음

식을 추가하려고 하면 다음 메시지가 표시됩니다.

Cannot find users, groups, or service principals in Azure Active Directory with principal IDs: <principal IDs>. These IDs were removed. Check that the IDs are valid and try to add again. You can also refresh the page or sign out and sign in again.

원인

주체 ID 특성에 추가하려고 시도한 하나 이상의 주체 ID를 찾을 수 없거나 올바른 GUID 유형(00000000-0000-0000-0000-000000000000)이 없습니다.

솔루션

조건 편집기를 사용하여 보안 주체를 선택합니다. 최근에 보안 주체를 추가한 경우 페이지를 새로 고치거나 로그아웃하고 다시 로그인합니다.

Azure PowerShell 오류 메시지

증상 - 리소스 특성이 유효하지 않음 오류

Azure PowerShell을 사용하여 조건이 있는 역할 할당을 추가하려고 할 때 다음과 유사한 오류가 발생합니다.

New-AzRoleAssignment : Resource attribute
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$> is not valid.

원인

달러 기호($)가 조건에 포함되면 백틱(`) 접두사를 붙여야 합니다.

솔루션

백틱(`)을 각 달러 기호 앞에 추가합니다. 예제는 다음과 같습니다. PowerShell의 따옴표 규칙에 대한 자세한 내용은 따옴표 규칙 정보를 참조하세요.

$condition = "((!(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'))"

증상 - 조건을 복사하여 붙여넣을 때 오류 발생

원인

PowerShell을 사용하고 문서에서 조건을 복사하는 경우 다음 오류가 발생하는 특수 문자가 포함될 수 있습니다. 일부 편집기(예: Microsoft Word)에서 표시되지 않는 텍스트의 서식을 지정할 때 제어 문자를 추가합니다.

The given role assignment condition is invalid.

솔루션

서식 있는 텍스트 편집기에서 조건을 복사했고 조건이 정확하다고 확신하는 경우 모든 공백을 삭제하고, 반환한 다음, 관련 공백을 다시 추가합니다. 또는 일반 텍스트 편집기 또는 Visual Studio Code와 같은 코드 편집기를 사용합니다.

Azure CLI 오류 메시지

증상 - 리소스 특성이 유효하지 않음 오류

Azure CLI를 사용하여 조건이 있는 역할 할당을 추가하려고 할 때 다음과 유사한 오류가 발생합니다.

Resource attribute Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$> is not valid.

원인

달러 기호($)가 조건에 포함되면 백슬래시(\) 접두사를 붙여야 합니다.

솔루션

각 달러 기호 앞에 백슬래시(\)를 추가합니다. 예제는 다음과 같습니다. Bash의 따옴표 규칙에 대한 자세한 내용은 큰따옴표를 참조하세요.

condition="((!(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'))"

증상 - 인식할 수 없는 인수 오류

Azure CLI를 사용하여 조건이 있는 역할 할당을 추가하려고 할 때 다음과 유사한 오류가 발생합니다.

az: error: unrecognized arguments: --description {description} --condition {condition} --condition-version 2.0

원인

역할 할당 조건 매개 변수를 지원하지 않는 이전 버전의 Azure CLI를 사용하고 있을 가능성이 높습니다.

솔루션

최신 버전의 Azure CLI(2.18 이상)로 업데이트합니다. 자세한 내용은 Azure CLI 설치를 참조하세요.

증상 - 조건 문자열을 Bash의 변수에 할당할 때 발생하는 오류

Bash의 변수에 조건 문자열을 할당하려고 하면 bash: !: event not found 메시지가 표시됩니다.

원인

Bash에서 기록 확장을 사용하는 경우 느낌표(!)로 인해 메시지 bash: !: event not found가 표시될 수 있습니다.

솔루션

set +H 명령으로 기록 확장을 사용하지 마세요. 기록 확장을 다시 사용하도록 설정하려면 set -H를 사용합니다.

다음 단계