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

Důležité

Přidání skupiny pro správu do AssignableScopes je aktuálně ve verzi Preview. Tato verze Preview se poskytuje bez smlouvy o úrovni služeb a nedoporučuje se pro úlohy v produkčním prostředí. Některé funkce se nemusí podporovat nebo mohou mít omezené možnosti. Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.

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 pomocí Azure CLI vypsat, vytvořit, aktualizovat nebo odstranit vlastní role.

Podrobný návod, jak vytvořit vlastní roli, najdete v tématu kurz: Vytvoření vlastní role Azure pomocí Azure CLI.

Požadavky

K vytvoření vlastních rolí budete potřebovat:

Výpis vlastních rolí

K vypsání vlastních rolí, které jsou k dispozici pro přiřazení, použijte příkaz AZ role definition list. Následující příklad vypíše 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"
  }
]

Seznam definice vlastní role

Pokud chcete zobrazit seznam definice vlastní role, použijte příkaz AZ role definition list. Jedná se o stejný příkaz, který byste použili pro předdefinovanou roli.

az role definition list --name {roleName}

V následujícím příkladu je uveden seznam definice 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 vypíše 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 definice 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 operacím čtení pro poskytovatele prostředků Microsoft. COMPUTE, Microsoft. Storage a Microsoft. Network a přiřadí přístup ke spouštění, restartování a monitorování virtuálních počítačů. Tato vlastní role se dá použít ve dvou předplatných. V tomto příkladu se jako vstup používá soubor JSON.

vmoperator.jsna

{
  "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, napřed načtěte definici role pomocí seznamu AZ role definition list . 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á operaci Microsoft. Insights/diagnosticSettings/ Operation do Actions a přidá skupinu pro správu do AssignableScopes vlastní role operátoru virtuálního počítače . Přidání skupiny pro správu do AssignableScopes je aktuálně ve verzi Preview.

vmoperator.jsna

{
  "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

Pokud chcete odstranit vlastní roli, použijte příkaz AZ role definition Delete. Chcete-li určit roli, kterou chcete odstranit, použijte název role nebo ID role. Chcete-li zjistit 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átoru virtuálního počítače .

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

Další kroky