Azure RBAC 문제 해결

이 문서에서는 Azure RBAC(Azure 역할 기반 액세스 제어)와 관련된 문제에 대한 몇 가지 일반적인 솔루션을 설명합니다.

Azure 역할 할당

증상 - 역할 할당 추가 옵션이 사용하지 않도록 설정됨

추가>역할 할당 추가 옵션이 사용하지 않도록 설정되어 있으므로 Azure Portal에서 IAM(액세스 제어)에 대한 역할을 할당할 수 없습니다.

원인

현재 선택한 범위에서 역할을 할당할 수 있는 권한이 없는 사용자로 로그인되어 있습니다.

솔루션

역할을 할당하려는 범위에서 역할 기반 Access Control 관리자와 같은 Microsoft.Authorization/roleAssignments/write 권한이 있는 역할이 할당된 사용자로 현재 로그인되어 있는지 확인합니다.

증상 - 역할 또는 주체가 나열되지 않음

Azure Portal에서 역할을 할당하려고 하면 일부 역할 또는 주체가 나열되지 않습니다. 예를 들어, 역할 탭에는 축소된 역할 집합이 표시됩니다.

Screenshot of role assignments constrained to specific roles.

또는 멤버 선택 창에 축소된 주 멤버 집합이 표시됩니다.

Screenshot of role assignments constrained to specific groups.

원인

추가할 수 있는 역할 할당에는 제한이 있습니다. 예를 들어, 할당할 수 있는 역할이 제한되거나 역할을 할당할 수 있는 주체가 제한됩니다.

솔루션

사용자에게 할당된 역할을 확인합니다. 추가할 수 있는 역할 할당을 제한하는 조건이 있는지 확인합니다. 자세한 내용은 Azure 액세스 관리를 다른 사람에게 위임을 참조하세요.

Screenshot of role assignments that include a condition.

증상 - 역할을 할당할 수 없음

역할을 할당할 수 없으며 다음과 유사한 오류가 발생합니다.

Failed to add {securityPrincipal} as {role} for {scope} : The client '{clientName}' with object id '{objectId}' does not have authorization or an ABAC condition not fulfilled to perform action 'Microsoft.Authorization/roleAssignments/write' over scope '/subscriptions/{subscriptionId}/Microsoft.Authorization/roleAssignments/{roleAssignmentId}' or the scope is invalid. If access was recently granted, please refresh your credentials.

원인 1

현재 선택한 범위에서 역할을 할당할 수 있는 권한이 없는 사용자로 로그인되어 있습니다.

해결 방법 1

역할을 할당하려는 범위에서 역할 기반 Access Control 관리자와 같은 Microsoft.Authorization/roleAssignments/write 권한이 있는 역할이 할당된 사용자로 현재 로그인되어 있는지 확인합니다.

원인 2

추가할 수 있는 역할 할당에는 제한이 있습니다. 예를 들어, 할당할 수 있는 역할이 제한되거나 역할을 할당할 수 있는 주체가 제한됩니다.

해결 방법 2

사용자에게 할당된 역할을 확인합니다. 추가할 수 있는 역할 할당을 제한하는 조건이 있는지 확인합니다. 자세한 내용은 Azure 액세스 관리를 다른 사람에게 위임을 참조하세요.

Screenshot of role assignments that include a condition.

증상 - Azure CLI에서 서비스 주체를 사용하여 역할을 할당할 수 없음

서비스 주체를 사용하여 Azure CLI에서 역할을 할당하고 있으며 다음 오류가 발생합니다.

Insufficient privileges to complete the operation

예를 들어, Azure CLI를 사용하여 다음과 같이 역할 할당을 하려는 Owner 역할이 할당된 서비스 주체가 있다고 가정해 보겠습니다.

az login --service-principal --username "SPNid" --password "password" --tenant "tenantid"
az role assignment create --assignee "userupn" --role "Contributor"  --scope "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}"

원인

Azure CLI가 Microsoft Entra ID에서 담당자 ID를 조회하려고 시도하고 서비스 주체가 기본적으로 Microsoft Entra ID를 읽을 수 없습니다.

솔루션

해당 오류를 해결하는 방법은 두 가지가 있습니다. 첫 번째는 디렉터리의 데이터를 읽을 수 있도록 서비스 주체에게 Directory Readers 역할을 할당하는 것입니다.

오류를 해결하는 두 번째 방법은--assignee 대체 매개 변수--assignee-object-id를 사용하여 역할을 할당하는 것입니다. --assignee-object-id를 사용하면 Azure CLI가 Microsoft Entra 조회를 건너뜁니다. 역할을 할당하려면 역할을 할당하려는 사용자나 그룹 또는 애플리케이션의 개체 ID를 가져와야 합니다. 자세한 내용은 Azure CLI를 사용하여 Azure 역할 할당을 참조하세요.

az role assignment create --assignee-object-id 11111111-1111-1111-1111-111111111111  --role "Contributor" --scope "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}"

증상 - 새 보안 주체에게 역할 할당이 실패하는 경우가 있음

새 사용자, 그룹 또는 서비스 주체를 만들고 즉시 해당 주체에 역할을 할당하려고 하면 역할 할당이 실패하는 경우가 있습니다. 다음 오류와 유사한 메시지가 표시됩니다.

PrincipalNotFound
Principal {principalId} does not exist in the directory {tenantId}. Check that you have the correct principal ID. If you are creating this principal and then immediately assigning a role, this error might be related to a replication delay. In this case, set the role assignment principalType property to a value, such as ServicePrincipal, User, or Group.  See https://aka.ms/docs-principaltype

원인

그 이유는 아마도 복제 지연 때문일 것입니다. 보안 주체는 한 지역에서 만들어집니다. 그러나 아직 보안 주체를 복제하지 않은 다른 지역에서 역할 할당이 발생할 수 있습니다.

해결 방법 1

REST API 또는 ARM 템플릿을 사용하여 새 사용자 또는 서비스 주체를 만드는 경우 역할 할당 - 만들기 API를 사용하여 역할 할당을 만들 때 principalType 속성을 설정합니다.

principalType apiVersion
User 2020-03-01-preview 이상
ServicePrincipal 2018-09-01-preview 이상

자세한 정보는 REST API를 사용하여 새 서비스 주체에 Azure 역할 할당 또는 Azure Resource Manager 템플릿을 사용하여 새 서비스 주체에 Azure 역할 할당을 참조하세요

해결 방법 2

Azure PowerShell을 사용하여 새 사용자 또는 서비스 주체를 만드는 경우 New-AzRoleAssignment를 사용하여 역할 할당을 만들 때 ObjectType 매개 변수를 User 또는 ServicePrincipal로 설정합니다. 솔루션 1과 동일한 기본 API 버전 제한이 계속 적용됩니다. 자세한 내용은 Azure PowerShell을 사용하여 Azure 역할 할당을 참조하세요.

솔루션 3

새 그룹을 만드는 경우 역할 할당을 만들기 전에 몇 분 정도 기다리세요.

증상 - ARM 템플릿 역할 할당이 BadRequest 상태를 반환함

서비스 주체에 역할을 할당하는 Bicep 파일 또는 ARM 템플릿을 배포하려고 하면 오류가 발생합니다.

Tenant ID, application ID, principal ID, and scope are not allowed to be updated. (code: RoleAssignmentUpdateNotPermitted)

예를 들어 관리 ID에 대한 역할 할당을 만든 다음 관리 ID를 삭제하고 다시 만드는 경우 새 관리 ID에는 다른 보안 주체 ID가 있습니다. 역할 할당을 다시 배포하고 동일한 역할 할당 이름을 사용하면 배포가 실패합니다.

원인

역할 할당 name은 고유하지 않으며 업데이트로 표시됩니다.

역할 할당은 GUID(Globally Unique Identifier)인 이름으로 고유하게 식별됩니다. 다른 Azure 구독에서도 이름이 같은 두 개의 역할 할당을 만들 수 없습니다. 또한 기존 역할 할당의 속성을 변경할 수 없습니다.

솔루션

역할 할당 name에 대해 idempotent 고유 값을 제공합니다. 범위, 주체 ID, 역할 ID를 함께 사용하는 GUID를 만드는 것이 좋습니다. 다음 예와 같이 역할 할당 이름에 대한 결정적 GUID를 만드는 데 도움이 되도록 guid() 함수를 사용하는 것이 좋습니다.

resource roleAssignment 'Microsoft.Authorization/roleAssignments@2020-10-01-preview' = {
  name: guid(resourceGroup().id, principalId, roleDefinitionId)
  properties: {
    roleDefinitionId: roleDefinitionId
    principalId: principalId
    principalType: principalType
  }
}

자세한 내용은 Bicep을 사용하여 Azure RBAC 리소스 만들기를 참조하세요.

증상 - ID의 역할 할당을 찾을 수 없음

Azure Portal의 역할 할당 목록에서 보안 주체(사용자, 그룹, 서비스 주체 또는 관리 ID)가 알 수 없음 형식의 ID를 찾을 수 없음으로 표시된다는 것을 알 수 있습니다.

Identity not found listed in Azure role assignments

Azure PowerShell을 사용하여 이 역할 할당을 나열하면 빈 DisplayNameSignInName 또는 ObjectTypeUnknown 값이 표시될 수 있습니다. 예를 들어 AzRoleAssignment 가져오기는 다음 출력과 유사한 역할 할당을 반환합니다.

RoleAssignmentId   : /subscriptions/11111111-1111-1111-1111-111111111111/providers/Microsoft.Authorization/roleAssignments/22222222-2222-2222-2222-222222222222
Scope              : /subscriptions/11111111-1111-1111-1111-111111111111
DisplayName        :
SignInName         :
RoleDefinitionName : Storage Blob Data Contributor
RoleDefinitionId   : ba92f5b4-2d11-453d-a403-e96b0029c9fe
ObjectId           : 33333333-3333-3333-3333-333333333333
ObjectType         : User
CanDelegate        : False

마찬가지로 Azure CLI를 사용하여 해당 역할 할당을 나열하는 경우 빈 principalName가 표시될 수 있습니다. 예를 들어 az role 할당 목록은 다음 출력과 유사한 역할 할당을 반환합니다.

{
    "canDelegate": null,
    "id": "/subscriptions/11111111-1111-1111-1111-111111111111/providers/Microsoft.Authorization/roleAssignments/22222222-2222-2222-2222-222222222222",
    "name": "22222222-2222-2222-2222-222222222222",
    "principalId": "33333333-3333-3333-3333-333333333333",
    "principalName": "",
    "roleDefinitionId": "/subscriptions/11111111-1111-1111-1111-111111111111/providers/Microsoft.Authorization/roleDefinitions/ba92f5b4-2d11-453d-a403-e96b0029c9fe",
    "roleDefinitionName": "Storage Blob Data Contributor",
    "scope": "/subscriptions/11111111-1111-1111-1111-111111111111",
    "type": "Microsoft.Authorization/roleAssignments"
}

원인 1

최근에 역할 할당을 만들 때 사용자를 초대했으며 이 보안 주체는 여전히 여러 지역에서 복제 프로세스에 있습니다.

해결 방법 1

몇 분 정도 기다렸다가 역할 할당 목록을 새로 고칩니다.

원인 2

역할 할당이 있는 보안 주체를 삭제했습니다. 보안 주체의 역할 할당을 먼저 제거하지 않고 역할을 할당한 뒤 나중에 삭제하면 보안 주체가 알 수 없음 형식의 ID를 찾을 수 없음으로 표시됩니다.

해결 방법 2

보안 주체가 삭제된 위치에서 해당 역할 할당을 유지하는 것은 문제가 되지 않습니다. 원하는 경우 다른 역할 할당과 비슷한 단계로 해당 역할 할당을 제거할 수 있습니다. 역할 할당을 제거하는 방법에 대한 자세한 내용은 Azure 역할 할당 제거하기를 참조하세요.

PowerShell에서 개체 ID 및 역할 정의 이름을 사용하여 역할 할당을 제거하고자 하며 둘 이상의 역할 할당이 매개 변수와 일치하는 경우 The provided information does not map to a role assignment라는 오류 메시지가 표시됩니다. 다음 출력은 오류 메시지의 예시입니다.

PS C:\> Remove-AzRoleAssignment -ObjectId 33333333-3333-3333-3333-333333333333 -RoleDefinitionName "Storage Blob Data Contributor"

Remove-AzRoleAssignment : The provided information does not map to a role assignment.
At line:1 char:1
+ Remove-AzRoleAssignment -ObjectId 33333333-3333-3333-3333-333333333333 ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : CloseError: (:) [Remove-AzRoleAssignment], KeyNotFoundException
+ FullyQualifiedErrorId : Microsoft.Azure.Commands.Resources.RemoveAzureRoleAssignmentCommand

해당 오류 메시지가 나타나면 -Scope 또는 -ResourceGroupName 매개 변수를 지정하는 것을 명심하세요.

PS C:\> Remove-AzRoleAssignment -ObjectId 33333333-3333-3333-3333-333333333333 -RoleDefinitionName "Storage Blob Data Contributor" - Scope /subscriptions/11111111-1111-1111-1111-111111111111

증상 - 마지막 소유자 역할 할당을 삭제할 수 없음

구독에 대한 마지막 소유자 역할 할당을 제거하려고 하면 다음 오류가 표시됩니다.

Cannot delete the last RBAC admin assignment

원인

구독에 대한 분리를 방지하기 위해 구독의 마지막 Owner 역할 할당은 제거할 수 없습니다.

솔루션

Azure 구독을 취소하려는 경우 Azure 구독 취소를 참조하세요.

테넌트의 전역 관리자이거나 구독의 클래식 관리자(서비스 관리자 또는 공동 관리자)인 경우 구독 범위에서 마지막 소유자(또는 사용자 액세스 관리자) 역할 할당을 제거할 수 있습니다. 이 경우 삭제에 대한 제약 조건이 없습니다. 그러나 호출이 다른 보안 주체에서 오는 경우 구독 범위에서 마지막 소유자 역할 할당을 제거할 수 없습니다.

증상 - 리소스를 이동한 후 역할 할당이 이동되지 않음

원인

Azure 역할이 할당된 리소스를 리소스(또는 자식 리소스)로 직접 이동시키는 경우 역할 할당은 이동되지 않고 분리됩니다.

솔루션

리소스를 이동한 후에는 역할 할당을 다시 만들어야 합니다. 결국 분리된 역할 할당은 자동으로 제거되지만 리소스를 이동하기 전에 역할 할당을 제거하는 것이 좋습니다. 리소스를 이동하는 방법은 새 리소스 그룹 또는 구독으로 리소스 이동을 참조하세요.

증상 - 역할 할당 변경 내용이 인식되지 않음

최근에 역할 할당을 추가하거나 업데이트했지만 변경 내용이 검색되지 않습니다. Status: 401 (Unauthorized)라는 메시지가 표시될 수 있습니다.

원인 1

Azure Resource Manager는 경우에 따라 성능 향상을 위해 구성 및 데이터를 캐시합니다.

해결 방법 1

역할을 할당하거나 역할 할당을 제거하는 경우 변경 내용이 적용되는 데 최대 10분이 걸릴 수 있습니다. Azure Portal, Azure PowerShell 또는 Azure CLI를 사용하는 경우 로그아웃 및 로그인하여 역할 할당 변경 내용을 강제로 새로 고칠 수 있습니다. REST API 호출을 사용하여 역할 할당을 변경하는 경우 액세스 토큰을 새로 고쳐 강제로 새로 고칠 수 있습니다.

원인 2

그룹에 관리 ID를 추가하고 해당 그룹에 역할을 할당했습니다. 관리 ID에 대한 백 엔드 서비스는 약 24시간 동안 리소스 URI당 캐시를 유지합니다.

해결 방법 2

관리 ID의 그룹 또는 역할 멤버 자격에 대한 변경 내용이 적용되는 데 몇 시간이 걸릴 수 있습니다. 자세한 내용은 권한 부여에 관리 ID 사용 제한을 참조하세요.

증상 - 관리 그룹 범위에서 역할 할당 변경이 검색되지 않음

최근에 관리 그룹 범위에서 역할 할당을 추가하거나 업데이트했지만 변경 내용이 검색되지 않습니다.

원인

Azure Resource Manager는 경우에 따라 성능 향상을 위해 구성 및 데이터를 캐시합니다.

솔루션

역할을 할당하거나 역할 할당을 제거하는 경우 변경 내용이 적용되는 데 최대 10분이 걸릴 수 있습니다. 관리 그룹 범위에서 기본 제공 역할 할당을 추가하거나 제거하고 기본 제공 역할에 DataActions가 있는 경우 데이터 평면에 대한 액세스가 몇 시간 동안 업데이트하지 못할 수 있습니다. 이는 관리 그룹 범위 및 데이터 평면에만 적용됩니다. DataActions의 사용자 지정 역할은 관리 그룹 범위에서 할당할 수 없습니다.

증상 - 관리 그룹 변경에 대한 역할 할당이 검색되지 않음

새 자식 관리 그룹을 만들었는데 부모 관리 그룹의 역할 할당이 자식 관리 그룹에 대해 검색되지 않습니다.

원인

Azure Resource Manager는 경우에 따라 성능 향상을 위해 구성 및 데이터를 캐시합니다.

솔루션

자식 관리 그룹에 대한 역할 할당이 적용되는 데 최대 10분이 걸릴 수 있습니다. Azure Portal, Azure PowerShell 또는 Azure CLI를 사용하는 경우 로그아웃 및 로그인하여 역할 할당 변경 내용을 강제로 새로 고칠 수 있습니다. REST API 호출을 사용하여 역할 할당을 변경하는 경우 액세스 토큰을 새로 고쳐 강제로 새로 고칠 수 있습니다.

증상 - PowerShell을 사용하여 역할 할당을 제거하는 데 몇 분 정도 걸림

Remove-AzRoleAssignment 명령을 사용하여 역할 할당을 제거합니다. 그런 다음, Get-AzRoleAssignment 명령을 사용하여 보안 주체에 대한 역할 할당이 제거되었는지 확인합니다. 예시:

Get-AzRoleAssignment -ObjectId $securityPrincipalObject.Id

Get-AzRoleAssignment 명령은 역할 할당이 제거되지 않았음을 나타냅니다. 그러나 5~10분을 기다린 후 Get-AzRoleAssignment를 다시 실행하면 출력에 역할 할당이 제거되었다고 표시됩니다.

원인

역할 할당이 제거되었습니다. 그러나 성능을 향상시키기 위해 PowerShell은 역할 할당을 나열할 때 캐시를 사용합니다. 캐시를 새로 고치는 데 약 10분 정도 지연될 수 있습니다.

솔루션

보안 주체에 대한 역할 할당을 나열하는 대신 구독 범위에서 모든 역할 할당을 나열하고 출력을 필터링합니다. 예를 들어 명령을 통해 수행되는 작업은 다음과 같습니다.

$validateRemovedRoles = Get-AzRoleAssignment -ObjectId $securityPrincipalObject.Id 

대신 이 명령으로 바꿀 수 있습니다.

$validateRemovedRoles = Get-AzRoleAssignment -Scope /subscriptions/$subId | Where-Object -Property ObjectId -EQ $securityPrincipalObject.Id

사용자 지정 역할

증상 - 사용자 지정 역할을 업데이트하거나 삭제할 수 없음

기존 사용자 지정 역할을 업데이트하거나 삭제할 수 없습니다.

원인 1

현재 사용자 지정 역할을 업데이트하거나 삭제할 권한이 없는 사용자로 로그인되어 있습니다.

해결 방법 1

현재 Microsoft.Authorization/roleDefinitions/write 권한이 있는 역할이 할당된 사용자(예: 사용자 액세스 관리자)로 로그인했는지 확인합니다.

원인 2

사용자 지정 역할에는 할당 가능한 범위의 구독이 포함되어 있으며 해당 구독은 사용 안 함 상태입니다.

해결 방법 2

사용하지 않도록 설정된 구독을 다시 활성화하고 필요에 따라 사용자 지정 역할을 업데이트합니다. 자세한 내용은 비활성화된 Azure 구독 다시 활성화를 참조하세요.

증상 - 사용자 지정 역할을 만들 수 없거나 업데이트할 수 없음

사용자 지정 역할을 만들거나 업데이트하려고 하면 다음과 유사한 오류가 발생합니다.

The client '<clientName>' with object id '<objectId>' has permission to perform action 'Microsoft.Authorization/roleDefinitions/write' on scope '/subscriptions/<subscriptionId>'; however, it does not have permission to perform action 'Microsoft.Authorization/roleDefinitions/write' on the linked scope(s)'/subscriptions/<subscriptionId1>,/subscriptions/<subscriptionId2>,/subscriptions/<subscriptionId3>' or the linked scope(s)are invalid

원인

이 오류는 일반적으로 사용자 지정 역할에서 할당 가능한 범위 중 하나 이상에 대한 권한이 없음을 나타냅니다.

솔루션

다음을 시도해 보세요.

  • 사용자 지정 역할을 생성, 삭제, 업데이트 또는 볼 수 있는 사람을 검토하고 할당 가능한 모든 범위에 대한 사용자 정의 역할을 생성하거나 업데이트할 수 있는 권한이 있는지 확인합니다.
  • 권한이 없는 경우 관리자에게 할당 가능한 범위의 범위에서 사용자 액세스 관리자와 같은 작업이 있는 Microsoft.Authorization/roleDefinitions/write 역할을 할당하도록 요청합니다.
  • 사용자 지정 역할의 모든 할당 가능한 범위가 유효한지 확인합니다. 그렇지 않은 경우 할당 가능한 잘못된 범위를 제거합니다.

자세한 내용은 Azure portal, Azure PowerShell 또는 Azure CLI를 사용하는 사용자 지정 역할 자습서를 참조하세요.

증상 - 사용자 지정 역할을 삭제할 수 없음

사용자 지정 역할을 삭제할 수 없고 다음 오류 메시지가 표시됩니다.

There are existing role assignments referencing role (code: RoleDefinitionHasAssignments)

원인

여전히 사용자 지정 역할을 사용하는 역할 할당이 있습니다.

솔루션

사용자 지정 역할을 사용하는 역할 할당을 제거하고 사용자 지정 역할을 다시 삭제해 봅니다. 자세한 내용은 사용자 지정 역할을 삭제할 역할 할당 찾기를 참조하세요.

증상 - 둘 이상의 관리 그룹을 할당 가능한 범위로 추가할 수 없음

사용자 지정 역할을 만들거나 업데이트하려고 할 때 둘 이상의 관리 그룹을 할당 가능한 범위로 추가할 수 없습니다.

원인

사용자 지정 역할의 AssignableScopes에는 하나의 관리 그룹만 정의할 수 있습니다.

솔루션

사용자 지정 역할의 AssignableScopes에서 하나의 관리 그룹을 정의합니다. 사용자 지정 역할 및 관리 그룹에 대한 자세한 내용은 Azure 관리 그룹으로 리소스 구성을 참조하세요.

증상 - 데이터 작업을 사용자 지정 역할에 추가할 수 없음

사용자 지정 역할을 생성하거나 업데이트하려고 하면 데이터 작업을 추가할 수 없거나 다음 메시지가 표시됩니다.

You cannot add data action permissions when you have a management group as an assignable scope

원인

할당 가능한 범위로 데이터 작업 및 관리 그룹을 사용하여 사용자 지정 역할을 만들려고 합니다. DataActions의 사용자 지정 역할은 관리 그룹 범위에서 할당할 수 없습니다.

솔루션

하나 이상의 구독을 할당 가능한 범위로 사용하여 사용자 지정 역할을 만듭니다. 사용자 지정 역할 및 관리 그룹에 대한 자세한 내용은 Azure 관리 그룹으로 리소스 구성을 참조하세요.

액세스 거부 또는 권한 오류

증상 - 권한 부여 실패

리소스를 만들려고 하면 다음 오류 메시지가 표시됩니다.

The client with object id does not have authorization to perform action over scope (code: AuthorizationFailed)

원인 1

현재 선택한 범위의 리소스에 대한 쓰기 권한이 없는 사용자로 로그인되어 있습니다.

해결 방법 1

선택한 범위의 리소스에 대한 쓰기 권한이 있는 역할이 할당된 사용자로 현재 로그인되어 있는지 확인합니다. 예를 들어 리소스 그룹의 가상 머신을 관리하려면 리소스 그룹(또는 부모 범위)에 대한 가상 머신 기여자 역할이 필요합니다. 각 기본 제공 역할의 권한 목록은 Azure 기본 제공 역할을 참조하세요.

원인 2

현재 로그인한 사용자에게는 다음 기준에 따라 역할이 할당됩니다.

해결 방법 2

현재로서는 Microsoft.Storage 데이터 작업 및 GUID 비교 연산자를 사용하는 ABAC 조건으로 역할을 할당할 수 없습니다. 이 오류를 해결하기 위한 몇 가지 옵션은 다음과 같습니다.

  • 역할이 사용자 지정 역할인 경우 모든 Microsoft.Storage 데이터 작업 제거
  • GUID 비교 연산자를 사용하지 않도록 역할 할당 조건 수정

증상 - 게스트 사용자가 권한 부여를 가져오지 못함

게스트 사용자가 리소스에 액세스하려고 하면 다음과 유사한 오류 메시지가 표시됩니다.

The client '<client>' with object id '<objectId>' does not have authorization to perform action '<action>' over scope '<scope>' or the scope is invalid.

원인

게스트 사용자에게는 선택한 범위의 리소스에 대한 권한이 없습니다.

솔루션

선택한 범위의 리소스에 대해 최소한의 권한을 가진 역할이 게스트 사용자에게 할당되었는지 확인합니다. 자세한 내용은 Azure Portal을 사용하여 외부 사용자에게 Azure 역할을 할당합니다.

증상 - 지원 요청을 만들 수 없음

지원 티켓을 만들거나 업데이트하려고 하면 다음 오류 메시지가 표시됩니다.

You don't have permission to create a support request

원인

현재 지원 요청 만들기 권한이 없는 사용자로 로그인되어 있습니다.

솔루션

지원 요청 기여자와 같이 Microsoft.Support/supportTickets/write 권한이 있는 역할이 할당된 사용자로 현재 로그인되어 있는지 확인합니다.

Azure 기능이 사용하지 않도록 설정됨

증상 - 일부 웹앱 기능이 사용하지 않도록 설정됨

사용자가 웹앱에 대한 읽기 권한을 가지며 일부 기능은 사용하지 않도록 설정됩니다.

원인

사용자에게 웹앱에 대한 읽기 액세스를 부여하면 예상치 않게 일부 기능을 사용하지 못할 수 있습니다. 다음 관리 기능은 웹앱에 대한 쓰기 권한이 필요하며 읽기 전용 시나리오에서는 사용할 수 없습니다.

  • 시작, 중지 등의 명령
  • 일반 구성, 규모 설정, 백업 설정, 모니터링 설정 등의 설정 변경
  • 게시 자격 증명과 앱 설정, 연결 문자열 등의 기타 암호 액세스
  • 스트리밍 로그
  • 리소스 로그 구성
  • 콘솔(명령 프롬프트)
  • 활성 및 최근 배포(로컬 Git 연속 배포의 경우)
  • 예상 소요 시간
  • 웹 테스트
  • 가상 네트워크(쓰기 권한이 있는 사용자가 이전에 가상 네트워크를 구성한 경우에만 읽기 권한자에게 표시됨)

솔루션

웹앱에 대한 쓰기 권한이 있는 기여자 또는 다른 Azure 기본 제공 역할을 할당합니다.

증상 - 일부 웹앱 리소스가 사용하지 않도록 설정됨

사용자가 웹앱에 대한 쓰기 권한을 가지며 일부 기능은 사용하지 않도록 설정됩니다.

원인

웹앱에서 몇 가지 리소스가 상호 연동되는 경우 웹앱의 구조가 복잡해집니다. 다음은 두 개의 웹 사이트가 있는 일반적인 리소스 그룹입니다.

Web app resource group

따라서 사용자에게 웹앱에 대한 권한만 부여하면 Azure Portal에서 웹 사이트 블레이드의 기능을 대부분 사용할 수 없게 됩니다.

다음 항목을 사용하려면 웹 사이트에 해당하는 App Service 계획에 대한 쓰기 권한이 필요합니다.

  • 웹앱의 가격 책정 계층 보기(무료 또는 표준)
  • 크기 조정 구성(인스턴스 수, 가상 머신 크기, 자동 크기 조정 설정)
  • 할당량(스토리지, 대역폭, CPU)

다음 항목을 사용하려면 웹 사이트를 포함하는 전체 리소스 그룹에 대한 쓰기 권한이 필요합니다.

  • TLS/SSL 인증서 및 바인딩(TLS/SSL 인증서는 같은 리소스 그룹과 지리적 위치의 사이트 간에 공유될 수 있음)
  • 경고 규칙
  • 자동 크기 조정 설정
  • Application Insights 구성 요소
  • 웹 테스트

솔루션

App Service 계획 또는 리소스 그룹에 대한 쓰기 권한이 있는 Azure 기본 제공 역할을 할당합니다.

증상 - 가상 머신 기능이 사용하지 않도록 설정됨

사용자가 가상 머신에 액세스할 수 있으며 일부 기능은 사용하지 않도록 설정됩니다.

원인

웹앱과 마찬가지로 가상 머신 블레이드의 일부 기능 역시 가상 머신 또는 리소스 그룹의 기타 리소스에 대한 쓰기 권한이 있어야 사용할 수 있습니다.

가상 머신은 도메인 이름, 가상 네트워크, 스토리지 계정 및 경고 규칙과 관련이 있습니다.

다음 항목을 사용하려면 가상 머신에 대한 쓰기 권한이 필요합니다.

  • 엔드포인트
  • IP 주소
  • 디스크
  • 확장

다음 항목을 사용하려면 가상 머신와 가상 머신이 속한 리소스 그룹(도메인 이름 포함) 둘 다에 대한 쓰기 권한이 필요합니다.

  • 가용성 집합
  • 부하 분산된 집합
  • 경고 규칙

이러한 타일에 액세스할 수 없는 경우 관리자에게 리소스 그룹에 대한 참가자 권한을 요청합니다.

솔루션

가상 머신 또는 리소스 그룹에 대한 쓰기 권한이 있는 Azure 기본 제공 역할을 할당합니다.

증상 - 일부 함수 앱 기능이 사용하지 않도록 설정됨

사용자가 함수 앱에 액세스할 수 있으며 일부 기능은 사용하지 않도록 설정됩니다. 예를 들어, 플랫폼 기능 탭을 클릭한 다음, 모든 설정을 클릭하여 함수 앱(웹앱과 유사)에 관련된 일부 설정을 볼 수 있지만 이러한 설정을 수정할 수 없습니다.

원인

Azure Functions의 일부 기능에는 쓰기 액세스 권한이 있어야 합니다. 예를 들어, 사용자가 읽기 권한자 역할에 할당된 경우 함수 앱 내에서 함수를 볼 수 없습니다. 포털에 (액세스 권한 없음)이 표시됩니다.

Function apps no access

솔루션

함수 앱 또는 리소스 그룹에 대한 쓰기 권한이 있는 Azure 기본 제공 역할을 할당합니다.

다른 디렉터리로 구독 이전

증상 - 구독을 이전한 후 모든 역할 할당이 삭제됨

원인

Azure 구독을 다른 Microsoft Entra 디렉터리로 전송하면 모든 역할 할당이 원본 Microsoft Entra 디렉터리에서 영구적으로 삭제되고 대상 Microsoft Entra 디렉터리로 마이그레이션되지 않습니다.

솔루션

대상 디렉터리에서 역할 할당을 다시 만들어야 합니다. 또한 Azure 리소스에 대한 관리 ID를 수동으로 다시 만들어야 합니다. 자세한 내용은 Azure 구독을 다른 Microsoft Entra 디렉터리로 전송관리 ID에 대한 FAQ 및 알려진 문제를 참조하세요.

증상 - 구독을 전송한 후 구독에 액세스할 수 없음

솔루션

Microsoft Entra 전역 관리자인데 디렉터리 간에 구독이 이전된 후 구독에 액세스할 수 없는 경우 Azure 리소스에 대한 액세스 관리 토글을 사용하여 일시적으로 액세스 권한을 상승하여 구독에 대한 액세스 권한을 얻으면 됩니다.

클래식 구독 관리자

Important

클래식 리소스 및 클래식 관리자는 2024년 8월 31일에 종료됩니다. 2024년 4월 3일부터 새 공동 관리 추가할 수 없습니다. 이 날짜는 최근에 연장되었습니다. 불필요한 공동 관리자를 제거하고 세분화된 액세스 제어를 위해 Azure RBAC를 사용합니다.

자세한 내용은 Azure 클래식 구독 관리자를 참조하세요.

다음 단계