Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Automatizované nástroje, které používají služby Azure, by měly mít vždy omezená oprávnění k zajištění zabezpečení prostředků Azure. Místo toho, aby se aplikace přihlašovaly jako plně privilegovaný uživatel, nabízí Azure služební principály. Služební účet Azure je identita vytvořená pro použití s aplikacemi, hostovanými službami a automatizovanými nástroji. Tato identita se používá pro přístup k prostředkům.
V tomto návodu se naučíte, jak:
- Vytvořte služebního principála
- Přihlášení pomocí instančního objektu a hesla
- Přihlásit se pomocí principálu služby a certifikátu
- Správa rolí aplikačního objektu
- Vytvoření prostředku Azure pomocí servisního principalu.
- Resetování přihlašovacích údajů objektu služby
Požadavky
- V předplatném musíte mít
User Access AdministratorneboRole Based Access Control Administratoroprávnění, nebo vyšší, pro vytvoření servisního principálu. Seznam rolí dostupných pro řízení přístupu na základě role v Azure (Azure RBAC) najdete v tématu Předdefinované role Azure.
Použijte prostředí Bash v Azure Cloud Shellu. Další informace najdete v tématu Začínáme s Azure Cloud Shellem.
Pokud chcete spouštět referenční příkazy CLI lokálně, nainstalujte Azure CLI. Pokud používáte Windows nebo macOS, zvažte spuštění Azure CLI v kontejneru Docker. Pro více informací, viz Jak spustit Azure CLI v Docker kontejneru.
Pokud používáte místní instalaci, přihlaste se k Azure CLI pomocí příkazu az login. Chcete-li dokončit proces ověřování, postupujte podle kroků zobrazených ve vašem terminálu. Další možnosti přihlášení najdete v tématu Ověřování v Azure pomocí Azure CLI.
Když budete vyzváni, nainstalujte rozšíření Azure CLI při prvním použití. Další informace o rozšířeních najdete v tématu Použití a správa rozšíření pomocí Azure CLI.
Spusťte az version, abyste zjistili verzi a závislé knihovny, které jsou nainstalovány. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.
Vytvořte služebního principála
K vytvoření instančního objektu služeb použijte referenční příkaz az ad sp create-for-rbac v Azure CLI.
Tento příklad nezadá --name parametr, takže se automaticky vytvoří název obsahující časové razítko.
Výstraha
Příkaz az ad sp create-for-rbac může upravit existující aplikaci nebo instanční objekt, pokud jiný objekt sdílí stejný zobrazovaný název. Zobrazované názvy nejsou jedinečné a můžou se změnit, což může vést ke ztrátě přihlašovacích údajů nebo nesprávným přiřazením RBAC. Místo toho použijte jedinečné ID objektu nebo ID aplikace .
az ad sp create-for-rbac
Výstupní konzola:
{
"appId": "myAppId",
"displayName": "myServicePrincipalName",
"password": "myServicePrincipalPassword",
"tenant": "myTentantId"
}
Pokud nedodržujete zásady pojmenovávání prostředků a plánujete později vytvořit roli a rozsah pro váš nový služební principál, příkaz az ad sp create-for-rbac bez parametrů je přijatelným řešením. Bez role a rozsahu ale nový služební principál nemá přístup k prostředkům. Jen existuje.
Při vytváření aplikačního objektu bez parametrů proveďte také následující kroky:
- Poznamenejte si heslo přiřazené systémem, protože ho nemůžete znovu načíst. Pokud heslo ztratíte, resetujte ho pomocí příkazu az ad sp credential reset, což je vysvětleno v vysvětlení části Resetování přihlašovacích údajů instančního objektu.
- Nastavte přiřazení role pro nový instanční objekt pomocí příkazu az role assignment create , jak je vysvětleno v části Správa rolí instančního objektu.
Poznámka:
Pokud váš účet nemá oprávnění ke vytvoření služebního principálu, az ad sp create-for-rbac vrátí chybovou zprávu obsahující "Nedostatečná oprávnění k dokončení operace." Požádejte správce Microsoft Entra o vytvoření služebního principála.
V adresáři Microsoft Entra ID, kde uživatelské nastavení Uživatelé mohou registrovat aplikace je nastaveno na Ne, musíte být členem jedné z následujících předdefinovaných rolí Microsoft Entra ID (které mají akci: microsoft.directory/applications/createAsOwner nebo microsoft.directory/applications/create):
- Vývojář aplikace
- Správce aplikace
- správce cloudových aplikací
- Globální správce
- Správce hybridních identit
Další informace o uživatelských nastaveních v Microsoft Entra ID naleznete v tématu Omezení, kdo může vytvářet aplikace.
Vytvoření služby hlavního uživatele s rolí a oblastí
Osvědčeným postupem je vždy při vytváření služebního principálu přiřadit konkrétní --role a --scopes. Postupujte takto:
Určete správnou roli.
Při určování role vždy používejte princip nejnižšího oprávnění. Například neudělujte instančnímu objektu oprávnění k předplatnému, pokud instanční
contributorobjekt potřebuje přístup jenom k úložišti Azure v rámci skupiny prostředků. Zvažte specializovanou roli jako přispěvatel dat úložiště blob. Úplný seznam dostupných rolí v Azure RBAC najdete v tématu Předdefinované role Azure.Získejte hodnotu parametru scopes.
Vyhledejte a zkopírujte ID prostředku Azure, ke kterému entita služby potřebuje přístup. Tyto informace se obvykle nacházejí na stránce Properties nebo Endpoints jednotlivých prostředků v Azure Portal. Tady jsou běžné
--scopespříklady, ale pro skutečný formát a hodnotu se spolehněte na ID prostředku.Scope Příklad Předplatné /subscriptions/mySubscriptionIDSkupina zdrojů /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupNameVirtuální počítač /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myVMnameSlužba souborů pro úložný účet /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Storage/storageAccounts/myStorageAccountName/fileServices/defaultDatová továrna /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.DataFactory/factories/myDataFactoryNameDalší příklady oborů najdete v tématu Vysvětlení rozsahu pro Azure RBAC.
Vytvořte principál služby.
V tomto příkladu se vytvoří nový instanční objekt s názvem myServicePrincipalName1 s oprávněními čtenáře ke všem prostředkům ve skupině prostředků RG1.
# Bash script az ad sp create-for-rbac --name myServicePrincipalName1 \ --role reader \ --scopes /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG1Parametr
--scopespřijímá seznam oborů oddělených mezerami. V tomto příkladu se vytvoří nový instanční objekt s názvem myServicePrincipalName2 s oprávněními čtenáře ke všem prostředkům ve skupině prostředků myRG1. Tento služební objekt má také oprávnění čtenáře k virtuálnímu počítači myVM umístěnému v myRG2.# Bash script az ad sp create-for-rbac --name myServicePrincipalName2 \ --role reader \ --scopes /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG2/providers/Microsoft.Compute/virtualMachines/myVM
Pokud se rozhodnete, že jste novému principálu služby udělili příliš málo nebo příliš mnoho oprávnění, upravte oprávnění správou rolí principálu služby.
Vytvořte služební identitu pomocí proměnných
Můžete také vytvořit objekt služeb pomocí proměnných:
# Bash script
let "randomIdentifier=$RANDOM*$RANDOM"
servicePrincipalName="msdocs-sp-$randomIdentifier"
roleName="azureRoleName"
subscriptionID=$(az account show --query id --output tsv)
# Verify the ID of the active subscription
echo "Using subscription ID $subscriptionID"
resourceGroup="myResourceGroupName"
echo "Creating SP for RBAC with name $servicePrincipalName, with role $roleName and in scopes /subscriptions/$subscriptionID/resourceGroups/$resourceGroup"
az ad sp create-for-rbac --name $servicePrincipalName \
--role $roleName \
--scopes /subscriptions/$subscriptionID/resourceGroups/$resourceGroup
Pro úplný seznam vlastností instančního objektu služby použijte az ad sp list a podívejte se na získání existujícího instančního objektu služby.
Výstraha
Při vytváření instančního objektu az ad sp create-for-rbac Azure pomocí příkazu výstup obsahuje přihlašovací údaje, které musíte chránit. Ujistěte se, že jste tyto přihlašovací údaje nezahrnuli do kódu, nebo je zaregistrujte ve správě zdrojového kódu. Jako alternativu zvažte použití spravovaných identit, pokud je k dispozici, abyste se vyhnuli nutnosti používat přihlašovací údaje.
Další kroky
Teď, když jste se naučili vytvořit instanční objekt Azure, přejděte k dalšímu kroku a zjistěte, jak používat instanční objekty s ověřováním založeným na heslech.