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”:讓角色僅適用於網络資源群組中的指派。 輸入角色定義 MAY 包含下列屬性:
  1. NotActions:必須從動作中排除的作業集,以判斷自定義角色的有效動作。 如果您不想在自定義角色中授與存取權的特定作業,則可以使用 NotActions 排除它,而不是在 Actions 中指定該特定作業以外的所有作業。
  2. DataActions:自定義角色授與存取權的數據作業集。
  3. NotDataActions:必須從 DataActions 中排除的作業集,以判斷自定義角色的有效數據動作。 如果您不想在自定義角色中授與存取權的特定數據作業,則可以使用 NotDataActions 排除它,而不是在 Actions 中指定該特定作業以外的所有作業。 注意:如果使用者獲指派的角色,該角色指定 NotActions 中的作業,並指派另一個角色授與相同作業的存取權-使用者將能夠執行該作業。 NotActions 不是拒絕規則, 只是在需要排除特定作業時建立一組允許作業的便利方式。 以下是範例 json 角色定義,可做為輸入 { “Name”: “Updated Role”, “Description”: “Can monitor all resources and start and restart virtual machines”, “Actions”: [ “/read”, “Microsoft.ClassicCompute/virtualmachines/restart/action”, “Microsoft.ClassicCompute/virtualmachines/start/action” ], “NotActions”: [ “/write” ], “DataActions”: [ “Microsoft.儲存體/storageAccounts/blobServices/containers/blobs/read“ ], ”NotDataActions“: [ Microsoft.儲存體/storageAccounts/blobServices/containers/blobs/write“ ], ”AssignableScopes“: [”/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxx“] }

範例

範例 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, 資源, 管理, 管理員, 資源, 群組, 範本, 部署