New-AzRoleDefinition

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

Syntax

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

Description

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

  1. DisplayName: 사용자 지정 역할의 이름
  2. 설명: 역할이 부여하는 액세스 권한을 요약하는 역할에 대한 간단한 설명입니다.
  3. 작업: 사용자 지정 역할이 액세스 권한을 부여하는 작업 집합입니다. Get-AzProviderOperation을 사용하여 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"] }

예제

예제 1: PSRoleDefinitionObject를 사용하여 만들기

$role = New-Object -TypeName Microsoft.Azure.Commands.Resources.Models.Authorization.PSRoleDefinition 
$role.Name = 'Virtual Machine Operator'
$role.Description = 'Can monitor, start, and restart virtual machines.'
$role.IsCustom = $true
$role.AssignableScopes = @("/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
$role.Actions = @(
    "Microsoft.Compute/*/read"
    "Microsoft.Compute/virtualMachines/start/action"
    "Microsoft.Compute/virtualMachines/restart/action"
    "Microsoft.Compute/virtualMachines/downloadRemoteDesktopConnectionFile/action"
    "Microsoft.Network/*/read"
    "Microsoft.Storage/*/read"
    "Microsoft.Authorization/*/read"
    "Microsoft.Resources/subscriptions/resourceGroups/read"
    "Microsoft.Resources/subscriptions/resourceGroups/resources/read"
    "Microsoft.Insights/alertRules/*"
    "Microsoft.Support/*"
)

New-AzRoleDefinition -Role $role

예제 2: JSON 파일을 사용하여 만들기

New-AzRoleDefinition -InputFile C:\Temp\roleDefinition.json

매개 변수

-DefaultProfile

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

Type:IAzureContextContainer
Aliases:AzContext, AzureRmContext, AzureCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputFile

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

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Role

역할 정의 개체입니다.

Type:PSRoleDefinition
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-SkipClientSideScopeValidation

지정된 경우 클라이언트 쪽 범위 유효성 검사를 건너뜁니다.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

입력

None

출력

PSRoleDefinition

참고

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