New-AzRoleDefinition
Azure RBAC'de özel bir rol oluşturur. Giriş olarak bir JSON rol tanımı dosyası veya PSRoleDefinition nesnesi sağlayın. İlk olarak, temel rol tanımı nesnesi oluşturmak için Get-AzRoleDefinition komutunu kullanın. Ardından, özelliklerini gerektiği gibi değiştirin. Son olarak, rol tanımını kullanarak özel bir rol oluşturmak için bu komutu kullanın.
Syntax
InputFileParameterSet
New-AzRoleDefinition
[-InputFile] <String>
[-SkipClientSideScopeValidation]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
RoleDefinitionParameterSet
New-AzRoleDefinition
[-Role] <PSRoleDefinition>
[-SkipClientSideScopeValidation]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
Description
New-AzRoleDefinition cmdlet'i Azure Role-Based Access Control içinde özel bir rol oluşturur. JSON dosyası veya PSRoleDefinition nesnesi olarak komutuna giriş olarak rol tanımı sağlayın.
Giriş rolü tanımı aşağıdaki özellikleri içermelidir:
- Ad: Özel rolün adı
- Açıklama: rolün, rolün iznini özetleyen kısa bir açıklaması.
- İzinler: Her biri Actions ve/veya DataActions içeren bir izin nesneleri dizisi.
Azure RBAC kullanılarak güvenliği sağlanabilir Azure kaynak sağlayıcılarının işlemini almak için Get-AzProviderOperation kullanın.
Bazı geçerli işlem dizeleri aşağıdadır:
- "*/read" tüm Azure kaynak sağlayıcılarının okuma işlemlerine erişim verir.
- "Microsoft. Ağ/*/okuma" Microsoft tüm kaynak türleri için okuma işlemlerine erişim verir. Azure ağ kaynağı sağlayıcısı.
- "Microsoft. Compute/virtualMachines/*" sanal makinelerin ve alt kaynak türlerinin tüm işlemlerine erişim verir.
- AssignableScopes: Özel rolün atanabilecekleri kapsam kümesi (Azure abonelikler veya kaynak grupları).
Bazı geçerli atanabilir kapsamlar aşağıdadır:
- "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e", "/subscriptions/e91d47c4-76f3-4271-a796-21b4ecfe3624": rolü iki abonelikte atama için kullanılabilir hale getirir.
- "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e": rolü tek bir abonelikte atama için kullanılabilir hale getirir.
- "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e/resourceGroups/Network": rolü yalnızca Ağ kaynak grubunda atama için kullanılabilir hale getirir.
İzinler dizisindeki her izin nesnesi aşağıdakileri içerebilir:
- Eylemler: Özel rolün erişim iznini aldığı denetim düzlemi işlemleri kümesi.
- NotActions: Etkili eylemleri belirlemek için Eylemler'den dışlanması gereken işlem kümesi.
- DataActions: Özel rolün erişim iznini aldığı veri düzlemi işlemleri kümesi.
- NotDataActions: DataActions'ın dışında tutulması gereken işlem kümesi.
- Koşul: İzinleri kısıtlayan bir Attribute-Based Access Control (ABAC) koşulu.
- ConditionVersion: Koşul söz diziminin sürümü( örneğin, "2.0" (Koşul belirtilirse gereklidir).
Note
Azure RBAC API'si şu anda özel roller oluşturulurken İzinler dizisinde yalnızca tek bir öğeyi destekler. Veri modeli birden çok izin girdisini desteklese de, oluşturma işlemlerinin tam olarak bir izin nesnesi kullanması gerekir.
Aşağıda giriş olarak sağlanabilen örnek bir JSON rol tanımı verilmiştir: { "Name": "Custom VM Operator", "Description": "Tüm kaynakları izleyebilir ve sanal makineleri başlatabilir ve yeniden başlatabilir", "İzinler": [ { "Actions": [ "/read", "Microsoft. İşlem/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-xxxx"] }
Örnekler
Örnek 1: PSRoleDefinition nesnesini kullanarak özel rol oluşturma
$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
Belirtilen eylemlerle "Sanal Makine operatörü" adlı özel bir rol oluşturur.
Örnek 2: JSON dosyasını kullanarak özel rol oluşturma
New-AzRoleDefinition -InputFile C:\Temp\roleDefinition.json
JSON tanım dosyasından özel bir rol oluşturur.
Parametreler
-DefaultProfile
Azure ile iletişim için kullanılan kimlik bilgileri, hesap, kiracı ve abonelik
Parametre özellikleri
| Tür: | IAzureContextContainer |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
| Diğer adlar: | AzContext, AzureRmContext, AzureCredential |
Parametre kümeleri
(All)
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-InputFile
Tek bir json rol tanımı içeren dosya adı.
Parametre özellikleri
| Tür: | String |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
InputFileParameterSet
| Position: | 0 |
| Zorunlu: | True |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-Role
Rol tanımı nesnesi.
Parametre özellikleri
| Tür: | PSRoleDefinition |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
RoleDefinitionParameterSet
| Position: | 0 |
| Zorunlu: | True |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-SkipClientSideScopeValidation
Belirtilirse, istemci tarafı kapsam doğrulamayı atlayın.
Parametre özellikleri
| Tür: | SwitchParameter |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
CommonParameters
Bu cmdlet yaygın parametreleri destekler: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction ve -WarningVariable. Daha fazla bilgi için bkz. about_CommonParameters.
Girişler
None
Çıkışlar
PSRoleDefinition
Notlar
Anahtar sözcükler: azure, azurerm, arm, kaynak, yönetim, yönetici, kaynak, grup, şablon, dağıtım