Vytvoření nebo aktualizace vlastních rolí Azure pomocí Azure CLI
Pokud předdefinované role Azure nevyhovují konkrétním potřebám vaší organizace, můžete vytvořit vlastní role. Tento článek popisuje, jak vypsat, vytvořit, aktualizovat nebo odstranit vlastní role pomocí Azure CLI.
Podrobný kurz vytvoření vlastní role najdete v tématu Kurz: Vytvoření vlastní role Azure pomocí Azure CLI.
Požadavky
K vytváření vlastních rolí potřebujete:
- Oprávnění k vytváření vlastních rolí, jako je uživatelský přístup Správa istrator
- Azure Cloud Shell nebo Azure CLI
Výpis vlastních rolí
Pokud chcete zobrazit seznam vlastních rolí dostupných pro přiřazení, použijte příkaz az role definition list. Následující příklad uvádí všechny vlastní role v aktuálním předplatném.
az role definition list --custom-role-only true --output json --query '[].{roleName:roleName, roleType:roleType}'
[
{
"roleName": "My Management Contributor",
"type": "CustomRole"
},
{
"roleName": "My Service Reader Role",
"type": "CustomRole"
},
{
"roleName": "Virtual Machine Operator",
"type": "CustomRole"
}
]
Výpis definice vlastní role
Pokud chcete vypsat vlastní definici role, použijte příkaz az role definition list. Tento příkaz je stejný příkaz, který byste použili pro předdefinované role.
az role definition list --name {roleName}
Následující příklad uvádí definici role operátora virtuálního počítače:
az role definition list --name "Virtual Machine Operator"
[
{
"assignableScopes": [
"/subscriptions/{subscriptionId}"
],
"description": "Can monitor and restart virtual machines.",
"id": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/00000000-0000-0000-0000-000000000000",
"name": "00000000-0000-0000-0000-000000000000",
"permissions": [
{
"actions": [
"Microsoft.Storage/*/read",
"Microsoft.Network/*/read",
"Microsoft.Compute/*/read",
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/restart/action",
"Microsoft.Authorization/*/read",
"Microsoft.ResourceHealth/availabilityStatuses/read",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Insights/alertRules/*",
"Microsoft.Insights/diagnosticSettings/*",
"Microsoft.Support/*"
],
"dataActions": [],
"notActions": [],
"notDataActions": []
}
],
"roleName": "Virtual Machine Operator",
"roleType": "CustomRole",
"type": "Microsoft.Authorization/roleDefinitions"
}
]
Následující příklad uvádí pouze akce role operátora virtuálního počítače:
az role definition list --name "Virtual Machine Operator" --output json --query '[].permissions[0].actions'
[
[
"Microsoft.Storage/*/read",
"Microsoft.Network/*/read",
"Microsoft.Compute/*/read",
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/restart/action",
"Microsoft.Authorization/*/read",
"Microsoft.ResourceHealth/availabilityStatuses/read",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Insights/alertRules/*",
"Microsoft.Insights/diagnosticSettings/*",
"Microsoft.Support/*"
]
]
Vytvoření vlastní role
Pokud chcete vytvořit vlastní roli, použijte příkaz az role definition create. Definice role může být popis JSON nebo cesta k souboru obsahujícímu popis JSON.
az role definition create --role-definition {roleDefinition}
Následující příklad vytvoří vlastní roli s názvem Virtual Machine Operator. Tato vlastní role přiřadí přístup ke všem akcím čtení z poskytovatelů prostředků Microsoft.Compute, Microsoft.Storage a Microsoft.Network a přiřadí přístup ke spuštění, restartování a monitorování virtuálních počítačů. Tuto vlastní roli je možné použít ve dvou předplatných. V tomto příkladu se jako vstup používá soubor JSON.
vmoperator.json
{
"Name": "Virtual Machine Operator",
"IsCustom": true,
"Description": "Can monitor and restart virtual machines.",
"Actions": [
"Microsoft.Storage/*/read",
"Microsoft.Network/*/read",
"Microsoft.Compute/*/read",
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/restart/action",
"Microsoft.Authorization/*/read",
"Microsoft.ResourceHealth/availabilityStatuses/read",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Insights/alertRules/*",
"Microsoft.Support/*"
],
"NotActions": [
],
"AssignableScopes": [
"/subscriptions/{subscriptionId1}",
"/subscriptions/{subscriptionId2}"
]
}
az role definition create --role-definition ~/roles/vmoperator.json
Aktualizace vlastní role
Pokud chcete aktualizovat vlastní roli, nejprve pomocí příkazu az role definition list načtěte definici role. Za druhé proveďte požadované změny definice role. Nakonec pomocí příkazu az role definition update uložte aktualizovanou definici role.
az role definition update --role-definition {roleDefinition}
Následující příklad přidá Microsoft.Přehledy/diagnostic Nastavení/ akce do Actions
a přidá skupinu AssignableScopes
pro správu pro vlastní roli operátora virtuálního počítače.
vmoperator.json
{
"Name": "Virtual Machine Operator",
"IsCustom": true,
"Description": "Can monitor and restart virtual machines.",
"Actions": [
"Microsoft.Storage/*/read",
"Microsoft.Network/*/read",
"Microsoft.Compute/*/read",
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/restart/action",
"Microsoft.Authorization/*/read",
"Microsoft.ResourceHealth/availabilityStatuses/read",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Insights/alertRules/*",
"Microsoft.Insights/diagnosticSettings/*",
"Microsoft.Support/*"
],
"NotActions": [
],
"AssignableScopes": [
"/subscriptions/{subscriptionId1}",
"/subscriptions/{subscriptionId2}",
"/providers/Microsoft.Management/managementGroups/marketing-group"
]
}
az role definition update --role-definition ~/roles/vmoperator.json
Odstranění vlastní role
Odeberte všechna přiřazení rolí, která používají vlastní roli. Další informace najdete v tématu Vyhledání přiřazení rolí k odstranění vlastní role.
K odstranění vlastní role použijte příkaz az role definition delete . Pokud chcete určit roli, která se má odstranit, použijte název role nebo ID role. K určení ID role použijte příkaz az role definition list.
az role definition delete --name {roleNameOrId}
Následující příklad odstraní vlastní roli operátora virtuálního počítače.
az role definition delete --name "Virtual Machine Operator"