본문 바로가기
Azure & Windows/Azure

Azure에서 사용자 지정 역할 정의 만들 때 만난 오류 해결하기

by 강철 벼룩 2022. 3. 21.

(How to fix error about custom role definition.)

새로운 "Azure Pass - 스폰서쉽 구독"을 생성한 후 Azure RBAC 서비스를 테스트 하면서 사용자 지정 역할을 만들려고 JSON 파일로 사용자 지정 역할 정의를 작성했습니다.

Azure PowerShell의 New-AzRoleDefinition cmdlet을 사용해 이 JSON 파일을 적용했을 때, 다음 그림에 표시된 에러를 만났습니다.

 

사용자 지정 역할을 만들 때 만난 에러

전혀 예상하지 못했던 "충돌" 이라는 선명한 문구에, 조금 더 자세한 정보가 필요했습니다.

명령 구문이 처리되는 세부 내용이 필요해 명령문을 조금 바꿔 다시 실행했습니다. 

New-AzRoleDefinition -InputFile $Home/az104-02a-customRoleDefinition.json -Verbose -Debug

그 결과가 다음 그림 입니다.

 

명령 처리 과정 출력

내용을 자세히 살펴보고나서 동일한 이름의 사용자 지정 역할 정의(여기서는 Support Requests Contributor)가 있다고 결론을 내렸습니다.

하지만, [액세스 제어(IAM)]에서 역할을 살펴봤지만, 동일한 이름의 역할은 존재하지 않았습니다.

곰곰이 생각을 해보고, 문득 짐작이 가는 부분이 있었습니다.

그리고 설마 그럴리가하는 생각도 했었고...

 

이전에 만료된 "Azure Pass - 스폰서쉽 구독"을 표시하고 해당 구독의 [액세스 제어(IAM)]에서 역할을 살펴보았습니다.

그랬더니 아니나 다를까, 요놈이 당당하게 버티고 있었습니다.

 

비활성화된 구독의 IAM에서 찾은 동일한 이름의 사용자 지정 역할 정의

찾은 동일한 이름의 사용자 지정 역할 정의를 삭제한 후, Azure PowerShell 명령을 다시 실행하니,

드디어 아무 문제없이 실행되고 현재 활성 구독에 사용자 지정 역할도 만들어 졌습니다.

 

사용자 지정 역할 정의 만들기 성공

결론,

사용자 지정 역할 정의는 구독과 연결된 서비스 입니다.
현재 구독에 해당 역할 정의가 없더라고 테넌트에 연결된 다른 구독도 확인해야 합니다.

"Azure Pass - 스폰서쉽" 처럼 일회성으로 사용하는 구독은 재활성화 방법이 없고 다시 사용할 수 없으므로, 이 경우는 Azure가 사용자 정의 역할을 자동으로 제거하면 좋겠습니다.

Azure PowerShell의 해당 cmdlet 실행시 현재 Azure 계정에 연결된 전체 구독에서 동일한 사용자 지정 역할 정의를 확인할 수 있는 옵션을 제공하면 좋겠습니다.