Vytvoření instančního objektu Azure pomocí Azure CLI
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 přihlášení aplikací jako plně privilegovaného uživatele proto Azure nabízí instanční objekty. Instanční objekt 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 kurzu se naučíte:
- Vytvoření instančního objektu služby
- Přihlášení pomocí instančního objektu a hesla
- Přihlášení pomocí instančního objektu a certifikátu
- Správa rolí instančních objektů
- Vytvoření prostředku Azure pomocí instančního objektu
- Resetování přihlašovacích údajů instančního objektu
Požadavky
- V předplatném musíte mít
User Access Administrator
k vytvoření instančního objektu oprávnění neboRole Based Access Control Administrator
vyšší oprávnění. 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 Rychlý start pro Bash v Azure Cloud Shellu.
Pokud dáváte přednost místnímu spouštění referenčních příkazů rozhraní příkazového řádku, nainstalujte Azure CLI. Pokud používáte Windows nebo macOS, zvažte spuštění Azure CLI v kontejneru Docker. Další informace najdete v tématu Jak spustit Azure CLI v kontejneru Dockeru.
Pokud používáte místní instalaci, přihlaste se k Azure CLI pomocí příkazu az login. Pokud chcete dokončit proces ověřování, postupujte podle kroků zobrazených na terminálu. Další možnosti přihlášení najdete v tématu Přihlášení pomocí Azure CLI.
Po zobrazení výzvy nainstalujte rozšíření Azure CLI při prvním použití. Další informace o rozšířeních najdete v tématu Využití rozšíření v Azure CLI.
Spuštěním příkazu az version zjistěte verzi a závislé knihovny, které jsou nainstalované. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.
Vytvoření instančního objektu služby
K vytvoření instančního objektu použijte příkaz az ad sp create-for-rbac Azure CLI. Tento příklad nezadá --name
parametr, takže se automaticky vytvoří název obsahující časové razítko.
az ad sp create-for-rbac
Výstupní konzola:
{
"appId": "myAppId",
"displayName": "myServicePrincipalName",
"password": "myServicePrincipalPassword",
"tenant": "myTentantId"
}
Pokud se nedotýkáte zásad vytváření názvů prostředků a plánujete vytvořit roli a rozsah nového instančního objektu později, az ad sp create-for-rbac
příkaz bez parametrů je přijatelné řešení. Bez role a oboru ale nový instanční objekt nemá přístup k prostředkům. Jen existuje.
Při vytváření instanč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 , jak je vysvětleno v čá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í k vytvoření instančního objektu, az ad sp create-for-rbac
vrátí chybovou zprávu s informacemi o nedostatečných oprávněních k dokončení operace. Požádejte správce Microsoft Entra o vytvoření instančního objektu.
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é aplikace
- Globální správce
- Hybridní identita Správa istrator
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í instančního objektu s rolí a oborem
Osvědčeným postupem je vždy přiřadit konkrétní --role
objekt a --scopes
při vytváření instančního objektu. Postupujte následovně:
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í
contributor
objekt potřebuje přístup jenom k úložišti Azure v rámci skupiny prostředků. Zvažte specializaci role, jako je přispěvatel dat objektů blob úložiště. Úplný seznam dostupných rolí v Azure RBAC najdete v tématu Předdefinované role Azure.Získá hodnotu parametru scopes.
Vyhledejte a zkopírujte ID prostředku Azure, ke které nový instanční objekt potřebuje přístup. Tyto informace se obvykle nacházejí na stránce Vlastnosti webu Azure Portal nebo koncové body jednotlivých prostředků. Tady jsou běžné
--scopes
příklady, ale pro skutečný formát a hodnotu se spoléháte na ID prostředku.Obor Příklad Předplatné /subscriptions/mySubscriptionID
Skupina prostředků /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName
Virtuální počítač /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myVMname
Souborová služba účtu úložiště /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Storage/storageAccounts/myStorageAccountName/fileServices/default
Data factory /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.DataFactory/factories/myDataFactoryName
Další příklady oborů najdete v tématu Vysvětlení rozsahu pro Azure RBAC.
Vytvořte instanční objekt.
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/myRG1
Parametr
--scopes
př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 instanční 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 instančnímu objektu udělili příliš málo nebo příliš mnoho oprávnění, upravte oprávnění tím , že spravujete role instančního objektu.
Vytvoření instančního objektu pomocí proměnných
Instanční objekt můžete vytvořit také 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
Úplný seznam vlastností instančního objektu použijte příkaz az ad sp list a podívejte se na získání existujícího instančního objektu.
Upozorňující
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.