New-AzRoleDefinition

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

구문

InputFileParameterSet

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

RoleDefinitionParameterSet

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

Description

New-AzRoleDefinition cmdlet은 Azure Role-Based Access Control 사용자 지정 역할을 만듭니다. JSON 파일 또는 PSRoleDefinition 개체로 명령에 대한 입력으로 역할 정의를 제공합니다.

입력 역할 정의에는 다음 속성이 포함되어야 합니다.

  1. 이름: 사용자 지정 역할의 이름
  2. 설명: 역할이 부여하는 액세스 권한을 요약하는 역할에 대한 간단한 설명입니다.
  3. 사용 권한: 각각 Actions 및/또는 DataActions를 포함하는 사용 권한 개체의 배열입니다. Get-AzProviderOperation 사용하여 Azure RBAC를 사용하여 보안을 설정할 수 있는 Azure 리소스 공급자에 대한 작업을 가져옵니다. 다음은 몇 가지 유효한 작업 문자열입니다.
    • "*/read"는 모든 Azure 리소스 공급자의 읽기 작업에 대한 액세스 권한을 부여합니다.
    • "Microsoft. 네트워크/*/읽기"는 Microsoft 모든 리소스 종류에 대한 읽기 작업에 대한 액세스 권한을 부여합니다. Azure 네트워크 리소스 공급자입니다.
    • "Microsoft. Compute/virtualMachines/*"는 가상 머신 및 해당 자식 리소스 유형의 모든 작업에 대한 액세스 권한을 부여합니다.
  4. AssignableScopes: 사용자 지정 역할을 할당에 사용할 수 있는 범위 집합(Azure 구독 또는 리소스 그룹)입니다. 다음은 몇 가지 유효한 할당 가능한 범위입니다.
    • "/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": 네트워크 리소스 그룹에서만 할당에 역할을 사용할 수 있습니다.

Permissions 배열의 각 권한 개체는 다음을 포함할 수 있습니다.

  1. 작업: 사용자 지정 역할이 액세스 권한을 부여하는 컨트롤 플레인 작업 집합입니다.
  2. NotActions: 유효 작업을 결정하기 위해 작업에서 제외해야 하는 작업 집합입니다.
  3. DataActions: 사용자 지정 역할이 액세스 권한을 부여하는 데이터 평면 작업 집합입니다.
  4. NotDataActions: DataActions에서 제외해야 하는 작업 집합입니다.
  5. 조건: 권한을 제한하는 ABAC(Attribute-Based Access Control) 조건입니다.
  6. ConditionVersion: 조건 구문의 버전(예: "2.0")(조건이 지정된 경우 필수)입니다.

메모

Azure RBAC API는 현재 사용자 지정 역할을 만들 때 Permissions 배열의 단일 요소만 지원합니다. 데이터 모델은 여러 권한 항목을 지원하지만 만들기 작업은 정확히 하나의 권한 개체를 사용해야 합니다.

다음은 입력으로 제공할 수 있는 샘플 JSON 역할 정의입니다. { "이름": "사용자 지정 VM 운영자", "설명": "모든 리소스를 모니터링하고 가상 머신을 시작하고 다시 시작할 수 있습니다.", "권한": [ { "Actions": [ "/read", "Microsoft. Compute/virtualMachines/restart/action", "Microsoft. Compute/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: PSRoleDefinition 개체를 사용하여 사용자 지정 역할 만들기

$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")
$permission = New-Object -TypeName Microsoft.Azure.Commands.Resources.Models.Authorization.PSPermission
$permission.Actions = @(
    "Microsoft.Compute/*/read"
    "Microsoft.Compute/virtualMachines/start/action"
    "Microsoft.Compute/virtualMachines/restart/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/*"
)
$role.Permissions = @($permission)

New-AzRoleDefinition -Role $role

지정된 작업을 사용하여 "Virtual Machine Operator"라는 사용자 지정 역할을 만듭니다.

예제 2: JSON 파일을 사용하여 사용자 지정 역할 만들기

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

JSON 정의 파일에서 사용자 지정 역할을 만듭니다.

매개 변수

-DefaultProfile

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

매개 변수 속성

형식:IAzureContextContainer
Default value:None
와일드카드 지원:False
DontShow:False
별칭:AzContext, AzureRmContext, AzureCredential

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-InputFile

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

매개 변수 속성

형식:String
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

InputFileParameterSet
Position:0
필수:True
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-Role

역할 정의 개체입니다.

매개 변수 속성

형식:PSRoleDefinition
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

RoleDefinitionParameterSet
Position:0
필수:True
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-SkipClientSideScopeValidation

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

매개 변수 속성

형식:SwitchParameter
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

CommonParameters

이 cmdlet은 일반적인 매개 변수인 -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction 및 -WarningVariable 매개 변수를 지원합니다. 자세한 내용은 about_CommonParameters를 참조하세요.

입력

None

출력

PSRoleDefinition

참고

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