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í nebo Role 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.

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:

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 takto:

  1. 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.

  2. 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.

  3. 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.