Co jsou vlastní role v Azure?

Dokončeno

Někdy předdefinované role neudělí přesnou úroveň přístupu, kterou potřebujete. Vlastní role umožňují definovat role, které vyhovují konkrétním potřebám vaší organizace. Vlastní role Azure, které vytvoříte, můžete přiřadit uživatelům, skupinám a instančním objektům v oboru předplatného, skupiny prostředků nebo prostředku.

V této lekci se dozvíte o vlastních rolích v řízení přístupu na základě role v Azure (RBAC).

Role Microsoft Entra a Azure

Role Microsoft Entra a role Azure se při první práci s Azure často zaměňují. Role Microsoft Entra poskytují mechanismus pro správu oprávnění k prostředkům Microsoft Entra, jako jsou uživatelské účty a hesla. Role Azure poskytují širokou škálu funkcí pro správu prostředků Azure, jako jsou virtuální počítače, na podrobné úrovni.

Diagram znázorňující vztah rolí Azure a rolí Microsoft Entra

Následující tabulka ukazuje drobné rozdíly mezi nastavením a správou těchto dvou možností:

Role Azure Role Microsoft Entra
Správa přístupu k prostředkům Azure, jako jsou virtuální počítače, úložiště, sítě a další Správa přístupu k prostředkům Microsoft Entra, jako jsou uživatelské účty a hesla
Více úrovní oboru (skupina pro správu, předplatné, skupina prostředků, prostředek) Obor pouze na úrovni tenanta
Informace o rolích, které jsou přístupné prostřednictvím webu Azure Portal, rozhraní Azure CLI, Azure PowerShellu, šablon Azure Resource Manager, REST API Informace o rolích přístupné na portálu pro správu Azure, Centrum pro správu Microsoftu 365, Microsoft Graphu, Microsoft Graphu PowerShellu

V našem scénáři potřebujeme vlastní roli pro správu virtuálních počítačů Azure v oboru předplatného, takže musíme používat vlastní role v Azure RBAC.

Přiřazení a rozsah vlastních rolí

Uživatelé s rolí Správce uživatelských přístupů nebo Vlastník můžou vytvářet nebo přiřazovat vlastní role v Azure RBAC.

Vlastní role můžete přiřadit k:

Objekt zabezpečení Shrnutí
Uživatel Jednotlivec, který má profil v Microsoft Entra ID
Skupina Sada uživatelů vytvořená v Microsoft Entra ID
Instanční objekty Identita zabezpečení, kterou aplikace nebo služby používají pro přístup ke konkrétním prostředkům Azure
Spravovaná identita Identita v Microsoft Entra ID, která se automaticky spravuje v Azure

V rámci Azure můžete vymezit obor přiřazení a související oprávnění do různých úrovní. Obory jsou následující:

  • Předplatné
  • Skupina prostředků
  • Jednotlivý prostředek

Diagram, který zobrazuje obory pro přiřazení role a jejich vzájemný vztah.

Definice a struktura role

Definice vlastní role se dělí na kolekci různých oprávnění. Každá definice podrobně popisuje operace, které jsou povoleny, například čtení, zápis a odstranění. Definice se vytvoří pomocí těchto struktur:

{
  "Name": "",
  "IsCustom": true,
  "Description": "",
  "Actions": [],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": [
    "/subscriptions/{subscriptionId1}"
  ]
}

Následující příklad ukazuje definici role pro roli Přispěvatel :

{
  "Name": "Contributor",
  "Id": "b24988ac-6180-42a0-ab88-20f7382dd24c",
  "IsCustom": false,
  "Description": "Lets you manage everything except access to resources.",
  "Actions": [
    "*"
  ],
  "NotActions": [
    "Microsoft.Authorization/*/Delete",
    "Microsoft.Authorization/*/Write",
    "Microsoft.Authorization/elevateAccess/Action",
    "Microsoft.Blueprint/blueprintAssignments/write",
    "Microsoft.Blueprint/blueprintAssignments/delete"
  ],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": [
    "/"
  ]
}

Každá definice role je deklarována v následujícím formátu:

{Company}.{ProviderName}/{resourceType}/{action}

Část akce je obvykle jedna z následujících akcí:

  • *
  • přečteno
  • zápis
  • action
  • Odstranit…

Definování vlastní role pro správu virtuálních počítačů

Pokud chcete lépe určit, jaká oprávnění se mají zahrnout do definice role, použijte seznam operací poskytovatele prostředků Azure Resource Manager a prohlédněte si předdefinované role Azure, které mají oprávnění podobná těm, která potřebujete.

Prohlídka předdefinovaných rolí

V našem scénáři má předdefinovaná role Přispěvatel virtuálních počítačů více oprávnění, než potřebuje zaměstnanec, a přihlášení správce virtuálního počítače nemá dostatek.

Následující příkaz Azure CLI vrátí oprávnění pro předdefinované role Přispěvatel virtuálních počítačů:

az role definition list --name "Virtual Machine Contributor" --output json | jq '.[] | .permissions[0].actions'

Následující seznam zobrazí oprávnění pro předdefinované role Přispěvatel virtuálních počítačů:

[
  "Microsoft.Authorization/*/read",
  "Microsoft.Compute/availabilitySets/*",
  "Microsoft.Compute/locations/*",
  "Microsoft.Compute/virtualMachines/*",
  "Microsoft.Compute/virtualMachineScaleSets/*",
  "Microsoft.DevTestLab/schedules/*",
  "Microsoft.Insights/alertRules/*",
  "Microsoft.Network/applicationGateways/backendAddressPools/join/action",
  "Microsoft.Network/loadBalancers/backendAddressPools/join/action",
  "Microsoft.Network/loadBalancers/inboundNatPools/join/action",
  "Microsoft.Network/loadBalancers/inboundNatRules/join/action",
  "Microsoft.Network/loadBalancers/probes/join/action",
  "Microsoft.Network/loadBalancers/read",
  "Microsoft.Network/locations/*",
  "Microsoft.Network/networkInterfaces/*",
  "Microsoft.Network/networkSecurityGroups/join/action",
  "Microsoft.Network/networkSecurityGroups/read",
  "Microsoft.Network/publicIPAddresses/join/action",
  "Microsoft.Network/publicIPAddresses/read",
  "Microsoft.Network/virtualNetworks/read",
  "Microsoft.Network/virtualNetworks/subnets/join/action",
  "Microsoft.RecoveryServices/locations/*",
  "Microsoft.RecoveryServices/Vaults/backupFabrics/backupProtectionIntent/write",
  "Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/*/read",
  "Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/read",
  "Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/write",
  "Microsoft.RecoveryServices/Vaults/backupPolicies/read",
  "Microsoft.RecoveryServices/Vaults/backupPolicies/write",
  "Microsoft.RecoveryServices/Vaults/read",
  "Microsoft.RecoveryServices/Vaults/usages/read",
  "Microsoft.RecoveryServices/Vaults/write",
  "Microsoft.ResourceHealth/availabilityStatuses/read",
  "Microsoft.Resources/deployments/*",
  "Microsoft.Resources/subscriptions/resourceGroups/read",
  "Microsoft.SqlVirtualMachine/*",
  "Microsoft.Storage/storageAccounts/listKeys/action",
  "Microsoft.Storage/storageAccounts/read",
  "Microsoft.Support/*"
]

Pokud chcete tento seznam získat v PowerShellu, spusťte následující příkaz:

Get-AzRoleDefinition -Name "Virtual Machine Contributor" | Select Actions | ConvertTo-Json

V našem scénáři chceme vlastní roli, která umožňuje monitorovat a restartovat virtuální počítače pro konkrétní předplatné, takže chceme zahrnout následující akce vymezené na úrovni předplatného:

  • Přístup pro čtení k výpočetním a síťovým prostředkům a k prostředkům úložiště
  • Možnost spouštění a restartování virtuálních počítačů
  • Přístup ke skupinám prostředků v předplatném
  • Přístup k prostředkům monitorování

V definici role Přispěvatel virtuálních počítačů je několik operací, které můžeme použít, například "Microsoft.Insights/alertRules/*" pro monitorování, ale restartování a některé jiné nejsou uvedené jako akce v této definici role.

Vyhledání operací poskytovatele prostředků

Akci restartování virtuálního počítače můžeme najít v seznamu operací poskytovatele prostředků Azure Resource Manageru nebo spuštěním následujícího příkazu PowerShellu pro vrácení operací pro virtuální počítače:

Get-AzProviderOperation */virtualMachines/*

V seznamu se vrátí následující operace pro restartování:

Operation         : Microsoft.Compute/virtualMachines/restart/action
OperationName     : Restart Virtual Machine
ProviderNamespace : Microsoft Compute
ResourceName      : Virtual Machines
Description       : Restarts the virtual machine
IsDataAction      : False

K získání nejaktuálnějšího seznamu operací poskytovatele prostředků můžete použít rutinu Azure PowerShellu Get-AzProviderOperation . V Azure CLI použijte příkaz az provider operation show. Publikovaný seznam poskytovatelů prostředků a operací najdete v obsahu Azure RBAC na webu Docs.

Vytvoření definice role Operátor virtuálního počítače

Předpokládejme, že jsme si vybrali, co potřebujeme, a to tak, že jsme se podívali na související definice předdefinovaných rolí a seznam operací poskytovatele prostředků. Vznikla nám následující definice role pro naši vlastní roli. Tuto definici role použijeme pro naši vlastní roli.

   {
   "Name": "Virtual Machine Operator",
   "Id": "88888888-8888-8888-8888-888888888888",
   "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": [],
   "DataActions": [],
   "NotDataActions": [],
   "AssignableScopes": [
      "/subscriptions/{subscriptionId1}" 
   ]
   }

Kontrola znalostí

1.

Co je součástí definice vlastní role Azure?

2.

Které příkazy vám pomůžou určit, jaké operace se mají přidat do definice vlastní role?