Přihlášení k Azure PowerShellu pomocí instančního objektu

Instanční objekt v Azure je neinteraktivní účet, který poskytuje identitu používanou aplikacemi, službami a nástroji pro automatizaci pro přístup ke konkrétním prostředkům Azure. Ověřování pomocí instančního objektu je nejlepší způsob, jak psát zabezpečené skripty, protože fungují jako identita zabezpečení s přiřazenými oprávněními, která určují, jaké akce je možné provádět a ke kterým prostředkům je možné přistupovat. Instanční objekty pomáhají bezpečně automatizovat úlohy správy bez použití osobních uživatelských účtů, což usnadňuje bezpečnější a spravovatelný přístup k prostředkům Azure. Stejně jako u jiných uživatelských účtů spravujete jejich oprávnění pomocí Microsoft Entra. Tím, že instančnímu objektu udělíte jenom potřebná oprávnění, zajistíte zabezpečení skriptů pro automatizaci.

Požadavky

Přihlášení pomocí instančního objektu

Pokud se chcete přihlásit pomocí instančního objektu, použijte parametr ServicePrincipal rutiny Connect-AzAccount . Budete také potřebovat následující informace pro instanční objekt:

  • AppId
  • Přihlašovací údaje nebo přístup k certifikátu použitému k vytvoření instančního objektu
  • ID tenanta

Způsob přihlašování pomocí instančního objektu závisí na tom, jestli je pro něj nakonfigurované ověřování pomocí hesla nebo pomocí certifikátů.

Ověřování pomocí hesla

Vytvořte instanční objekt, který se použije s příklady v této části. Další informace o vytváření instančních objektů najdete v tématu Vytvoření instančního objektu Azure pomocí PowerShellu.

$sp = New-AzADServicePrincipal -DisplayName ServicePrincipalName

Upozornění

Zadaný tajný klíč instančního objektu AzureRmContext.json je uložený v souboru ve vašem profilu uživatele ($env:USERPROFILE\.Azure). Ujistěte se, že tento adresář má odpovídající ochranu.

Pokud chcete získat přihlašovací údaje instančního objektu jako objekt, použijte rutinu Get-Credential . Tato rutina zobrazí výzvu k zadání uživatelského jména a hesla. Pro uživatelské jméno použijte hodnotu AppId instančního objektu a pro heslo převeďte jeho hodnotu secret na prostý text.

# Retrieve the plain text password for use with Get-Credential in the next command.
$sp.PasswordCredentials.SecretText

$pscredential = Get-Credential -UserName $sp.AppId
Connect-AzAccount -ServicePrincipal -Credential $pscredential -Tenant $tenantId

Pro scénáře automatizace je potřeba vytvořit přihlašovací údaje z hodnot AppId a SecretText instančního objektu:

$SecureStringPwd = $sp.PasswordCredentials.SecretText | ConvertTo-SecureString -AsPlainText -Force
$pscredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $sp.AppId, $SecureStringPwd
Connect-AzAccount -ServicePrincipal -Credential $pscredential -Tenant $tenantId

Při automatizaci připojení instančního objektu použijte vhodné postupy ukládání hesel.

Ověřování pomocí certifikátů

Informace o vytvoření instančního objektu pro Azure PowerShell najdete v tématu Vytvoření instančního objektu Azure pomocí Azure PowerShellu.

Ověřování založené na certifikátech vyžaduje, aby Azure PowerShell načítal informace z místního úložiště certifikátů na základě kryptografického otisku certifikátu.

Connect-AzAccount -ApplicationId $appId -Tenant $tenantId -CertificateThumbprint <thumbprint>

Při použití instančního objektu místo registrované aplikace zadejte parametr ServicePrincipal a jako hodnotu parametru ApplicationId zadejte AppId instančního objektu.

Connect-AzAccount -ServicePrincipal -ApplicationId $servicePrincipalId -Tenant $tenantId -CertificateThumbprint <thumbprint>

Ve Windows PowerShellu 5.1 je možné úložiště certifikátů spravovat a kontrolovat pomocí modulu PKI . V případě PowerShellu 7.x a novějšího se tento proces liší. Následující skripty ukazují, jak importovat existující certifikát do úložiště certifikátů, které je přístupné pomocí PowerShellu.

Import certifikátu ve Windows PowerShellu 5.1

# Import a PFX
$credentials = Get-Credential -Message 'Provide PFX private key password'
Import-PfxCertificate -FilePath <path to certificate> -Password $credentials.Password -CertStoreLocation cert:\CurrentUser\My

Import certifikátu v PowerShellu 7.x a novějším

# Import a PFX
$storeName = [System.Security.Cryptography.X509Certificates.StoreName]::My
$storeLocation = [System.Security.Cryptography.X509Certificates.StoreLocation]::CurrentUser
$store = [System.Security.Cryptography.X509Certificates.X509Store]::new($storeName, $storeLocation)
$certPath = <path to certificate>
$credentials = Get-Credential -Message "Provide PFX private key password"
$flag = [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::Exportable
$certificate = [System.Security.Cryptography.X509Certificates.X509Certificate2]::new($certPath, $credentials.Password, $flag)
$store.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadWrite)
$store.Add($Certificate)
$store.Close()

Přihlášení pomocí spravované identity

Spravované identity jsou speciálním typem instančního objektu, který poskytuje službám Azure automaticky spravovanou identitu. Použití tohoto typu identity nevyžaduje uložení přihlašovacích údajů v konfiguraci nebo kódu k ověření ve službě Azure, která podporuje spravované identity.

Existují dva typy spravovaných identit:

  • Spravovaná identita přiřazená systémem
  • Spravovaná identita přiřazená uživatelem

Spravované identity poskytují bezpečný způsob komunikace s dalšími službami Azure, aniž by vývojáři museli spravovat přihlašovací údaje. Pomáhají také zmírnit riziko úniků přihlašovacích údajů.

Tady je postup, jak spravované identity fungují ve scénářích reálného světa:

  • Azure automaticky spravuje vytváření a odstraňování přihlašovacích údajů používaných spravovanou identitou.
  • Služba Azure s povolenou spravovanou identitou může bezpečně přistupovat k jiným službám, jako je Azure Key Vault, Azure SQL Database, Azure Blob Storage atd., pomocí tokenů Microsoft Entra.
  • Tato identita se spravuje přímo v Azure bez nutnosti dalšího zřizování.

Spravované identity zjednodušují model zabezpečení tím, že zabraňují nutnosti ukládat a spravovat přihlašovací údaje a hrají zásadní roli v zabezpečených cloudových operacích snížením rizika spojeného s zpracováním tajných kódů.

Spravovaná identita přiřazená systémem

Azure automaticky vytvoří spravovanou identitu přiřazenou systémem pro instanci služby Azure (jako je virtuální počítač Azure, App Service nebo Azure Functions). Po odstranění instance služby Azure automaticky vyčistí přihlašovací údaje a identitu přidruženou ke službě.

Následující příklad se připojí pomocí spravované identity přiřazené systémem hostitelského prostředí. Pokud se spustí na virtuálním počítači s přiřazenou spravovanou identitou, umožní kódu přihlásit se pomocí přiřazené identity.

 Connect-AzAccount -Identity

Spravovaná identita přiřazená uživatelem

Spravovaná identita přiřazená uživatelem je identita, kterou vytvoříte a spravujete v Microsoft Entra. Dá se přiřadit k jedné nebo více instancím služby Azure. Životní cyklus spravované identity přiřazené uživatelem se spravuje odděleně od instancí služby, ke kterým je přiřazena.

Pokud používáte spravovanou identitu přiřazenou uživatelem, musíte zadat parametr AccountId a parametr Identity , jak je znázorněno v následujícím příkladu.

 Connect-AzAccount -Identity -AccountId <user-assigned-identity-clientId-or-resourceId>

Následující příkazy se připojují pomocí spravované identity myUserAssignedIdentity. Přidá identitu přiřazenou uživatelem do virtuálního počítače a pak se připojí pomocí ClientId identity přiřazené uživatelem.

$identity = Get-AzUserAssignedIdentity -ResourceGroupName myResourceGroup -Name myUserAssignedIdentity
Get-AzVM -ResourceGroupName contoso -Name testvm | Update-AzVM -IdentityType UserAssigned -IdentityId $identity.Id
Connect-AzAccount -Identity -AccountId $identity.ClientId # Run on the virtual machine
Account                              SubscriptionName TenantId                             Environment
-------                              ---------------- --------                             -----------
00000000-0000-0000-0000-000000000000 My Subscription  00000000-0000-0000-0000-000000000000 AzureCloud

Další informace najdete v tématu Konfigurace spravovaných identit pro prostředky Azure na virtuálním počítači Azure.

Viz také