Sdílet prostřednictvím


Vytvoření nebo aktualizace vlastních rolí Azure pomocí Azure CLI

Pokud integrované role Azure nesplňují konkrétní požadavky vaší organizace, můžete si 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:

Výpis vlastních rolí

Pokud chcete zobrazit seznam vlastních rolí dostupných pro přiřazení, použijte 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

Chcete-li vypsat vlastní definici role, použijte 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átor 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 operátora virtuálního počítače roli:

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 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 Operátor virtuálního počítače. Tato vlastní role přiřadí přístup ke všem akcím čtení u poskytovatelů prostředků Microsoft.Compute, Microsoft.Storagea Microsoft.Network a také 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

Abyste mohli aktualizovat vlastní roli, nejprve použijte az role definition list k načtení definice 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á akci Microsoft.Insights/diagnosticSettings/ k Actions a přidá skupinu pro správu do AssignableScopes 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

Odstraňte vlastní roli

  1. Odeberte všechna přiřazení rolí, která používají vlastní definovanou roli. Další informace naleznete v části Vyhledání přiřazení rolí pro odstranění vlastní role.

  2. K odstranění vlastní role použijte 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 az role definition list.

    az role definition delete --name {roleNameOrId}
    

    Následující příklad odstraní vlastní roli Operátor virtuálního počítače .

    az role definition delete --name "Virtual Machine Operator"
    

Další kroky