Set-AzRoleDefinition

修改 Azure RBAC 中的自定義角色。 提供修改的角色定義做為 JSON 檔案或 PSRoleDefinition。 首先,使用 Get-AzRoleDefinition 命令來擷取您想要修改的自定義角色。 然後,修改您想要變更的屬性。 最後,使用此命令儲存角色定義。

Syntax

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

Description

Set-AzRoleDefinition Cmdlet 會更新 Azure 角色型 存取控制 中現有的自定義角色。 以 JSON 檔案或 PSRoleDefinition 物件的形式,提供更新的角色定義做為命令的輸入。 更新自定義角色的角色定義必須包含標識符和角色所有其他必要屬性,即使它們未更新:DisplayName、Description、Actions、AssignableScopes。 NotActions、DataActions、NotDataActions 是選擇性的。

範例

範例 1:使用 PSRoleDefinitionObject 進行更新

$roleDef = Get-AzRoleDefinition "Contoso On-Call"
$roleDef.Actions.Add("Microsoft.ClassicCompute/virtualmachines/start/action")
$roleDef.Description = "Can monitor all resources and start and restart virtual machines"
$roleDef.AssignableScopes = @("/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
Set-AzRoleDefinition -Role $roleDef

範例 2:使用 JSON 檔案建立

Set-AzRoleDefinition -InputFile C:\Temp\roleDefinition.json
<#
Following is a sample updated role definition json for Set-AzRoleDefinition:
{
        "Id": "52a6cc13-ff92-47a8-a39b-2a8205c3087e",
        "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.Storage/storageAccounts/blobServices/containers/blobs/read"
        ],
        "NotDataActions":
        [
            "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write"
        ],
        "AssignableScopes": ["/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"]
}
#>

參數

-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 角色定義。 只包含 JSON 中要更新的屬性。 Id 屬性為 Required。

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

-Role

要更新的角色定義物件

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

-SkipClientSideScopeValidation

如果指定,請略過客戶端範圍驗證。

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

輸入

PSRoleDefinition

輸出

PSRoleDefinition

備註

關鍵詞:azure, azurerm, arm, 資源, 管理, 管理員, 資源, 群組, 範本, 部署