Sdílet prostřednictvím


Neinteraktivně se přihlaste k Azure PowerShellu pro scénáře automatizace

Spravovaná identita v Azure poskytuje bezpečný a bezproblémový způsob, jak pro aplikace, služby a automatizační nástroje přistupovat k prostředkům Azure bez uložení přihlašovacích údajů v kódu nebo konfiguraci. Na rozdíl od instančních objektů, které vyžadují ruční správu přihlašovacích údajů, Azure automaticky zpracovává spravované identity a nezpřístupňuje citlivé tajné kódy. Použití spravované identity je osvědčeným postupem pro psaní zabezpečených automatizačních skriptů, protože zjednodušuje ověřování a minimalizuje riziko úniku přihlašovacích údajů. Spravované identity také pomáhají bezpečně automatizovat úlohy správy bez nutnosti spoléhat se na identity uživatelů. Oprávnění ke spravovaným identitám se spravují prostřednictvím Microsoft Entra a zajišťují, že mají pouze nezbytný přístup k prostředkům, což zvyšuje zabezpečení i udržovatelnost.

Důležitý

Od začátku roku 2025 bude ověřování v Azure z Azure PowerShellu pomocí identity uživatele Microsoft Entra ID vyžadovat vícefaktorové ověřování (MFA). Další informace najdete v tématu Plánování povinného vícefaktorového ověřování pro Azure a další portály pro správu.

Požadavky

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.

Při použití spravované identity přiřazené 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í id klienta 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.

Přihlášení pomocí služebního principála

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

  • AppId
  • Přihlašovací údaje nebo přístup k certifikátu, který se používá k vytvoření hlavního objektu služby
  • ID nájemce

Způsob, jak se přihlásit pomocí služebního zástupce, závisí na tom, zda je nakonfigurovaný pro ověřování pomocí certifikátu nebo hesla.

Ověřování na základě 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 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()

Importování 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

Ověřování založené na heslech

Vytvořte služebního principála, 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íAzure PowerShellu .

$sp = New-AzADServicePrincipal -DisplayName ServicePrincipalName

Opatrnost

Zadaný tajný kód instančního objektu je uložený v souboru AzureRmContext.json 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 služby 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 AppId instančního objektu a převeďte jeho secret na prostý text pro heslo.

# 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 musíte vytvořit přihlašovací údaje z instančního objektu služby AppId a SecretText.

$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í identity služby použijte vhodné postupy ukládání hesel.

Viz také