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 개체로 명령에 대한 입력으로 역할 정의를 제공합니다.
입력 역할 정의에는 다음 속성이 포함되어야 합니다.
- 이름: 사용자 지정 역할의 이름
- 설명: 역할이 부여하는 액세스 권한을 요약하는 역할에 대한 간단한 설명입니다.
- 사용 권한: 각각 Actions 및/또는 DataActions를 포함하는 사용 권한 개체의 배열입니다.
Get-AzProviderOperation 사용하여 Azure RBAC를 사용하여 보안을 설정할 수 있는 Azure 리소스 공급자에 대한 작업을 가져옵니다.
다음은 몇 가지 유효한 작업 문자열입니다.
- "*/read"는 모든 Azure 리소스 공급자의 읽기 작업에 대한 액세스 권한을 부여합니다.
- "Microsoft. 네트워크/*/읽기"는 Microsoft 모든 리소스 종류에 대한 읽기 작업에 대한 액세스 권한을 부여합니다. Azure 네트워크 리소스 공급자입니다.
- "Microsoft. Compute/virtualMachines/*"는 가상 머신 및 해당 자식 리소스 유형의 모든 작업에 대한 액세스 권한을 부여합니다.
- 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 배열의 각 권한 개체는 다음을 포함할 수 있습니다.
- 작업: 사용자 지정 역할이 액세스 권한을 부여하는 컨트롤 플레인 작업 집합입니다.
- NotActions: 유효 작업을 결정하기 위해 작업에서 제외해야 하는 작업 집합입니다.
- DataActions: 사용자 지정 역할이 액세스 권한을 부여하는 데이터 평면 작업 집합입니다.
- NotDataActions: DataActions에서 제외해야 하는 작업 집합입니다.
- 조건: 권한을 제한하는 ABAC(Attribute-Based Access Control) 조건입니다.
- 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, 리소스, 관리, 관리자, 리소스, 그룹, 템플릿, 배포