Co jsou vlastní role v Azure?
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.
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
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}"
]
}