다음을 통해 공유


New-AzureRmRoleDefinition

Azure RBAC에서 사용자 지정 역할을 만듭니다. JSON 역할 정의 파일 또는 PSRoleDefinition 개체를 입력으로 제공합니다. 먼저 Get-AzureRmRoleDefinition 명령을 사용하여 기준 역할 정의 개체를 생성합니다. 그런 다음 필요에 따라 속성을 수정합니다. 마지막으로 이 명령을 사용하여 역할 정의를 사용하여 사용자 지정 역할을 만듭니다.

Warning

AzureRM PowerShell 모듈은 2024년 2월 29일부터 공식적으로 사용되지 않습니다. 사용자는 지속적인 지원 및 업데이트를 보장하기 위해 AzureRM에서 Az PowerShell 모듈로 마이그레이션하는 것이 좋습니다.

AzureRM 모듈은 여전히 작동할 수 있지만 더 이상 기본 또는 지원되지 않으므로 사용자의 재량에 따라 계속 사용할 수 있습니다. Az 모듈로 전환하는 방법에 대한 지침은 마이그레이션 리소스를 참조하세요.

Syntax

New-AzureRmRoleDefinition
   [-InputFile] <String>
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
New-AzureRmRoleDefinition
   [-Role] <PSRoleDefinition>
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]

Description

New-AzureRmRoleDefinition cmdlet은 Azure 역할 기반 액세스 제어에서 사용자 지정 역할을 만듭니다. JSON 파일 또는 PSRoleDefinition 개체로 명령에 대한 입력으로 역할 정의를 제공합니다. 입력 역할 정의에는 다음 속성이 포함되어야 합니다.

  1. DisplayName: 사용자 지정 역할의 이름
  2. 설명: 역할이 부여하는 액세스 권한을 요약하는 역할에 대한 간단한 설명입니다.
  3. 작업: 사용자 지정 역할이 액세스 권한을 부여하는 작업 집합입니다. Get-AzureRmProviderOperation을 사용하여 Azure RBAC를 사용하여 보호될 수 있는 Azure 리소스 공급자에 대한 작업을 가져옵니다. 다음은 몇 가지 유효한 작업 문자열입니다.
  • "*/read"는 모든 Azure 리소스 공급자의 읽기 작업에 대한 액세스 권한을 부여합니다.
  • "Microsoft.Network/*/read"는 Azure의 Microsoft.Network 리소스 공급자에 있는 모든 리소스 유형에 대한 읽기 작업에 대한 액세스 권한을 부여합니다.
  • "Microsoft.Compute/virtualMachines/*"는 가상 머신 및 해당 자식 리소스 유형의 모든 작업에 대한 액세스 권한을 부여합니다.
  1. AssignableScopes: 사용자 지정 역할을 할당에 사용할 수 있는 범위 집합(Azure 구독 또는 리소스 그룹)입니다. AssignableScopes를 사용하면 필요한 구독 또는 리소스 그룹에서만 사용자 지정 역할을 할당할 수 있게 하고 나머지 구독 또는 리소스 그룹에 대한 사용자 환경을 복잡하게 만들지 않을 수 있습니다. 다음은 몇 가지 유효한 할당 가능한 범위입니다.
  • "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e", "/subscriptions/e91d47c4-76f3-4271-a796-21b4ecfe3624": 역할을 두 구독에서 할당할 수 있도록 합니다.
  • "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e": 단일 구독에서 역할을 할당할 수 있습니다.
  • "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e/resourceGroups/Network": 네트워크 리소스 그룹에서만 할당에 역할을 사용할 수 있습니다. 입력 역할 정의에는 다음 속성이 포함될 수 있습니다.
  1. NotActions: 사용자 지정 역할에 대한 유효 작업을 결정하기 위해 작업에서 제외해야 하는 작업 집합입니다. 사용자 지정 역할에서 액세스 권한을 부여하지 않으려는 특정 작업이 있는 경우 작업에서 특정 작업 이외의 모든 작업을 지정하는 대신 NotActions를 사용하여 제외하는 것이 편리합니다.
  2. DataActions: 사용자 지정 역할이 액세스 권한을 부여하는 데이터 작업 집합입니다.
  3. NotDataActions: 사용자 지정 역할에 대한 유효 데이터 작업을 결정하기 위해 DataActions에서 제외해야 하는 작업 집합입니다. 사용자 지정 역할에서 액세스 권한을 부여하지 않으려는 특정 데이터 작업이 있는 경우 작업에서 특정 작업 이외의 모든 작업을 지정하는 대신 NotDataActions를 사용하여 제외하는 것이 편리합니다. 참고: 사용자에게 NotActions에서 작업을 지정하는 역할이 할당되고 다른 역할이 할당된 경우 동일한 작업에 대한 액세스 권한이 부여됩니다. 사용자는 해당 작업을 수행할 수 있습니다. NotActions는 거부 규칙이 아닙니다. 특정 작업을 제외해야 할 때 허용된 작업 집합을 만드는 편리한 방법입니다. 다음은 입력으로 제공할 수 있는 샘플 json 역할 정의입니다. { "이름": "업데이트된 역할", "설명": "모든 리소스를 모니터링하고 가상 머신을 시작하고 다시 시작할 수 있습니다.", "Actions": [ "/read", "Microsoft.ClassicCompute/virtualmachines/restart/action", "Microsoft.ClassicCompute/virtualmachines/start/action" ], "NotActions": [ "/write" ], "DataActions": [ "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read" ], "NotDataActions": [ "Microsoft. Storage/storageAccounts/blobServices/containers/blobs/write" ], "AssignableScopes": ["/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"] }

예제

PSRoleDefinitionObject를 사용하여 만들기

PS C:\> $role = Get-AzureRmRoleDefinition -Name "Virtual Machine Contributor"
          PS C:\> $role.Id = $null
          PS C:\> $role.Name = "Virtual Machine Operator"
          PS C:\> $role.Description = "Can monitor, start, and restart virtual machines."
          PS C:\> $role.Actions.RemoveRange(0,$role.Actions.Count)
          PS C:\> $role.Actions.Add("Microsoft.Compute/*/read")
          PS C:\> $role.Actions.Add("Microsoft.Compute/virtualMachines/start/action")
          PS C:\> $role.Actions.Add("Microsoft.Compute/virtualMachines/restart/action")
          PS C:\> $role.Actions.Add("Microsoft.Compute/virtualMachines/downloadRemoteDesktopConnectionFile/action")
          PS C:\> $role.Actions.Add("Microsoft.Network/*/read")
          PS C:\> $role.Actions.Add("Microsoft.Storage/*/read")
          PS C:\> $role.Actions.Add("Microsoft.Authorization/*/read")
          PS C:\> $role.Actions.Add("Microsoft.Resources/subscriptions/resourceGroups/read")
          PS C:\> $role.Actions.Add("Microsoft.Resources/subscriptions/resourceGroups/resources/read")
          PS C:\> $role.Actions.Add("Microsoft.Insights/alertRules/*")
          PS C:\> $role.Actions.Add("Microsoft.Support/*")
          PS C:\> $role.AssignableScopes.Clear()
          PS C:\> $role.AssignableScopes.Add("/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")

          PS C:\> New-AzureRmRoleDefinition -Role $role

JSON 파일을 사용하여 만들기

PS C:\> New-AzureRmRoleDefinition -InputFile C:\Temp\roleDefinition.json

매개 변수

-DefaultProfile

Azure와의 통신에 사용되는 자격 증명, 계정, 테넌트 및 구독

형식:IAzureContextContainer
Aliases:AzureRmContext, AzureCredential
Position:Named
기본값:None
필수:False
Accept pipeline input:False
Accept wildcard characters:False

-InputFile

단일 json 역할 정의를 포함하는 파일 이름입니다.

형식:String
Position:0
기본값:None
필수:True
Accept pipeline input:False
Accept wildcard characters:False

-Role

역할 정의 개체입니다.

형식:PSRoleDefinition
Position:0
기본값:None
필수:True
Accept pipeline input:False
Accept wildcard characters:False

입력

None

출력

PSRoleDefinition

참고

키워드: azure, azurerm, arm, 리소스, 관리, 관리자, 리소스, 그룹, 템플릿, 배포