Megosztás a következőn keresztül:


Bejelentkezés az Azure PowerShellbe nem interaktív módon automatizálási forgatókönyvekhez

Az Azure szolgáltatásnév egy neminteraktív fiók, amely az alkalmazások, szolgáltatások és automatizálási eszközök által meghatározott Azure-erőforrások eléréséhez használt identitást biztosít. A szolgáltatásnévvel végzett hitelesítés a legjobb módja a biztonságos szkriptek írásának, mivel azok hozzárendelt engedélyekkel rendelkező biztonsági identitásként működnek, amely szabályozza, hogy mely műveletek és milyen erőforrások érhetők el. A szolgáltatásnevek segítenek biztonságosan automatizálni a felügyeleti feladatokat személyes felhasználói fiókok használata nélkül, ezáltal biztonságosabb és kezelhetőbb hozzáférést biztosítva az Azure-erőforrásokhoz. A többi felhasználói fiókhoz hasonlóan Ön is kezelheti az engedélyeiket a Microsoft Entra használatával. Az automatizálási szkriptek biztonságát úgy garantálhatjuk, ha a szolgáltatásnevek számára csak a szükséges engedélyeket adjuk meg.

Előfeltételek

Bejelentkezés felügyelt identitással

A felügyelt identitások egy speciális szolgáltatásnévtípus, amely automatikusan felügyelt identitást biztosít az Azure-szolgáltatásoknak. Az ilyen típusú identitás használatához nincs szükség hitelesítő adatok konfigurációban vagy kódban való tárolására a felügyelt identitásokat támogató Azure-szolgáltatások hitelesítéséhez.

A felügyelt identitásoknak két típusa létezik:

  • Rendszer által hozzárendelt felügyelt identitás
  • Felhasználó által hozzárendelt felügyelt identitás

A felügyelt identitások biztonságos módot biztosítanak más Azure-szolgáltatásokkal való kommunikációra anélkül, hogy a fejlesztőknek hitelesítő adatokat kellene kezelnie. Emellett segítenek enyhíteni a hitelesítő adatok szivárgásának kockázatát.

A felügyelt identitások működése valós forgatókönyvekben:

  • Az Azure automatikusan kezeli a felügyelt identitás által használt hitelesítő adatok létrehozását és törlését.
  • A felügyelt identitással engedélyezett Azure-szolgáltatások biztonságosan hozzáférhetnek más szolgáltatásokhoz, például az Azure Key Vaulthoz, az Azure SQL Database-hez, az Azure Blob Storage-hoz stb. Microsoft Entra-jogkivonatokkal.
  • Ezt az identitást közvetlenül az Azure-ban felügyeli további kiépítés nélkül.

A felügyelt identitások leegyszerűsítik a biztonsági modellt azáltal, hogy elkerülik a hitelesítő adatok tárolásának és kezelésének szükségességét, és kulcsfontosságú szerepet játszanak a biztonságos felhőműveletekben azáltal, hogy csökkentik a titkos kódok kezelésével járó kockázatot.

Rendszer által hozzárendelt felügyelt identitás

Az Azure automatikusan létrehoz egy rendszer által hozzárendelt felügyelt identitást egy Azure-szolgáltatáspéldányhoz (például Azure-beli virtuális géphez, App Service-hez vagy Azure Functionshez). A szolgáltatáspéldány törlésekor az Azure automatikusan törli a szolgáltatáshoz társított hitelesítő adatokat és identitásokat.

Az alábbi példa a gazdagépkörnyezet rendszer által hozzárendelt felügyelt identitásával kapcsolódik. Ha egy hozzárendelt felügyelt identitással rendelkező virtuális gépen hajtják végre, lehetővé teszi, hogy a kód a hozzárendelt identitás használatával jelentkezzen be.

 Connect-AzAccount -Identity

Felhasználó által hozzárendelt felügyelt identitás

A felhasználó által hozzárendelt felügyelt identitás a Microsoft Entra-ban létrehozott és kezelt identitás. Egy vagy több Azure-szolgáltatáspéldányhoz rendelhető hozzá. A felhasználó által hozzárendelt felügyelt identitás életciklusa külön van kezelve azoktól a szolgáltatáspéldányoktól, amelyekhez hozzá van rendelve.

Felhasználó által hozzárendelt felügyelt identitás használatakor meg kell adnia az AccountId paramétert és az Identitás paramétert az alábbi példában látható módon.

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

A következő parancsok a felügyelt identitás használatával csatlakoznak myUserAssignedIdentity. Hozzáadja a felhasználó által hozzárendelt identitást a virtuális géphez, majd a felhasználó által hozzárendelt identitás Ügyfélazonosítójának használatával csatlakozik.

$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

További információ: Felügyelt identitások konfigurálása Azure-erőforrásokhoz Egy Azure-beli virtuális gépen.

Bejelentkezés szolgáltatásnévvel

Szolgáltatásnévvel való bejelentkezéshez használja a parancsmag ServicePrincipal paraméterét Connect-AzAccount . A szolgáltatásnévhez a következő információkra is szüksége lesz:

  • AppId
  • Bejelentkezési hitelesítő adatok vagy hozzáférés a szolgáltatásnév létrehozásához használt tanúsítványhoz
  • Bérlőazonosító

A szolgáltatásnévvel való bejelentkezés attól függ, hogy tanúsítványalapú vagy jelszóalapú hitelesítésre van-e konfigurálva.

Tanúsítványalapú hitelesítés

Ha tudni szeretné, hogyan hozhat létre egyszerű szolgáltatást az Azure PowerShellhez, olvassa el az Azure-szolgáltatásnév létrehozása az Azure PowerShell-lel című témakört.

A tanúsítványalapú hitelesítéshez az Azure PowerShellnek le kell kérnie az információkat egy helyi tanúsítványtárolóból egy tanúsítvány ujjlenyomata alapján.

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

Ha regisztrált alkalmazás helyett szolgáltatásnevet használ, adja meg a ServicePrincipal paramétert, és adja meg a szolgáltatásnév AppId azonosítóját az ApplicationId paraméter értékeként.

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

A Windows PowerShell 5.1-ben a tanúsítványtároló a PKI modullal felügyelhető és vizsgálható. A PowerShell 7.x és újabb verziói esetében a folyamat más. Az alábbi szkriptek bemutatják, hogyan importálhat egy meglévő tanúsítványt a PowerShell által elérhető tanúsítványtárolóba.

Tanúsítvány importálása a PowerShell 7.x és újabb verzióiban

# 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()

Tanúsítvány importálása a Windows PowerShell 5.1-ben

# 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

Jelszóalapú hitelesítés

Hozzon létre egy egyszerű szolgáltatást az ebben a szakaszban szereplő példákhoz. További információ a szolgáltatásnevek létrehozásával kapcsolatban: Azure-beli szolgáltatásnév létrehozása az Azure PowerShell használatával.

$sp = New-AzADServicePrincipal -DisplayName ServicePrincipalName

Figyelemfelhívás

A megadott szolgáltatásnév titkos kódját a rendszer a AzureRmContext.json felhasználói profil$env:USERPROFILE\.Azure () fájljában tárolja. Győződjön meg arról, hogy a címtár megfelelő védelemmel rendelkezik.

A szolgáltatásnév hitelesítő adatainak objektumként való lekéréséhez használja a Get-Credential parancsmagot. Ez a parancsmag felhasználónevet és jelszót kér. Használja a szolgáltatásnév AppId azonosítóját felhasználónévként, és konvertálja annak secret paraméterét egyszerű szöveggé a jelszóhoz.

# 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

Automatizálási forgatókönyvek esetén a hitelesítő adatokat egy szolgáltatásnév AppId és SecretText paramétereiből kell létrehozni:

$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

A szolgáltatásnév-kapcsolatok automatizálásához használja a megfelelő jelszótárolási eljárásokat.

Lásd még