Použití certifikátů k bezpečnému přístupu ke službě Azure Key Vault pomocí služby Batch
Upozorňující
Certifikáty účtů Batch, jak je podrobně popsáno v tomto článku, jsou zastaralé. Pokud chcete bezpečně přistupovat ke službě Azure Key Vault, jednoduše použijte spravované identity fondu s odpovídajícími přístupovými oprávněními nakonfigurovanými pro spravovanou identitu přiřazenou uživatelem pro přístup ke službě Key Vault. Pokud potřebujete zřídit certifikáty na uzlech Batch, využijte dostupné rozšíření virtuálního počítače služby Azure Key Vault společně se spravovanou identitou fondu k instalaci a správě certifikátů ve fondu Batch. Další informace o nasazení certifikátů ze služby Azure Key Vault se spravovanou identitou ve fondech Batch najdete v tématu Povolení automatické obměny certifikátů ve fondu Batch.
V tomto článku se dozvíte, jak nastavit uzly Batch s certifikáty pro bezpečný přístup k přihlašovacím údajům uloženým ve službě Azure Key Vault.
Pokud se chcete ověřit ve službě Azure Key Vault z uzlu Batch, potřebujete:
- Přihlašovací údaje Microsoft Entra
- Certifikát
- Účet Batch
- Fond Batch s alespoň jedním uzlem
Získání certifikátu
Pokud ještě certifikát nemáte, vytvořte nový certifikát podepsaný svým držitelem pomocí rutiny New-SelfSignedCertificate
PowerShellu.
Vytvoření instančního objektu služby
Přístup ke službě Key Vault se uděluje uživateli nebo instančnímu objektu. Pokud chcete získat přístup ke službě Key Vault prostřednictvím kódu programu, použijte instanční objekt s certifikátem, který jste vytvořili v předchozím kroku. Instanční objekt musí být ve stejném tenantovi Microsoft Entra jako key Vault.
$now = [System.DateTime]::Parse("2020-02-10")
# Set this to the expiration date of the certificate
$expirationDate = [System.DateTime]::Parse("2021-02-10")
# Point the script at the cer file you created $cerCertificateFilePath = 'c:\temp\batchcertificate.cer'
$cer = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
$cer.Import($cerCertificateFilePath)
# Load the certificate into memory
$credValue = [System.Convert]::ToBase64String($cer.GetRawCertData())
# Create a new AAD application that uses this certificate
$newADApplication = New-AzureRmADApplication -DisplayName "Batch Key Vault Access" -HomePage "https://batch.mydomain.com" -IdentifierUris "https://batch.mydomain.com" -certValue $credValue -StartDate $now -EndDate $expirationDate
# Create new AAD service principal that uses this application
$newAzureAdPrincipal = New-AzureRmADServicePrincipal -ApplicationId $newADApplication.ApplicationId
Adresy URL pro aplikaci nejsou důležité, protože je používáme jenom pro přístup ke službě Key Vault.
Udělení práv ke službě Key Vault
Instanční objekt vytvořený v předchozím kroku potřebuje oprávnění k načtení tajných kódů ze služby Key Vault. Oprávnění je možné udělit prostřednictvím webu Azure Portal nebo pomocí následujícího příkazu PowerShellu.
Set-AzureRmKeyVaultAccessPolicy -VaultName 'BatchVault' -ServicePrincipalName '"https://batch.mydomain.com' -PermissionsToSecrets 'Get'
Přiřazení certifikátu k účtu Batch
Vytvořte fond Batch a pak přejděte na kartu certifikátu ve fondu a přiřaďte certifikát, který jste vytvořili. Certifikát je teď na všech uzlech Batch.
Dále přiřaďte certifikát k účtu Batch. Přiřazením certifikátu k účtu ji služba Batch přiřadí fondům a pak uzlům. Nejjednodušší způsob, jak to udělat, je přejít na účet Batch na portálu, přejít na Certifikáty a vybrat Přidat. .pfx
Nahrajte soubor, který jste vygenerovali dříve, a zadejte heslo. Po dokončení se certifikát přidá do seznamu a kryptografický otisk můžete ověřit.
Když teď vytvoříte fond Batch, můžete přejít na Certifikáty v rámci fondu a přiřadit certifikát, který jste vytvořili do daného fondu. Když to uděláte, ujistěte se, že jste pro umístění úložiště vybrali LocalMachine . Certifikát se načte na všech uzlech Batch ve fondu.
Instalace prostředí Azure PowerShell
Pokud máte v úmyslu přistupovat ke službě Key Vault pomocí skriptů PowerShellu na uzlech, budete potřebovat nainstalovanou knihovnu Azure PowerShellu. Pokud jsou na uzlech nainstalované rozhraní WMF (Windows Management Framework) 5, můžete ho stáhnout pomocí příkazu install-module. Pokud používáte uzly, které nemají WMF 5, nejjednodušší způsob, jak ho nainstalovat, je seskupit soubor Azure PowerShellu .msi
se soubory Batch a poté volat instalační program jako první část spouštěcího skriptu batch. Podrobnosti najdete v tomto příkladu:
$psModuleCheck=Get-Module -ListAvailable -Name Azure -Refresh
if($psModuleCheck.count -eq 0) {
$psInstallerPath = Join-Path $downloadPath "azure-powershell.3.4.0.msi" Start-Process msiexec.exe -ArgumentList /i, $psInstallerPath, /quiet -wait
}
Přístup ke službě Key Vault
Teď jste připraveni přistupovat ke službě Key Vault ve skriptech spuštěných na uzlech Batch. Pokud chcete získat přístup ke službě Key Vault ze skriptu, stačí, když se váš skript pomocí certifikátu ověří v Microsoft Entra ID. K tomu v PowerShellu použijte následující ukázkové příkazy. Zadejte odpovídající identifikátor GUID pro kryptografický otisk, ID aplikace (ID instančního objektu) a ID tenanta (tenant, ve kterém existuje váš instanční objekt).
Add-AzureRmAccount -ServicePrincipal -CertificateThumbprint -ApplicationId
Po ověření získejte přístup ke službě KeyVault jako obvykle.
$adminPassword=Get-AzureKeyVaultSecret -VaultName BatchVault -Name batchAdminPass
Toto jsou přihlašovací údaje, které se mají použít ve skriptu.
Další kroky
- Přečtěte si další informace o službě Azure Key Vault.
- Projděte si standardní hodnoty zabezpečení Azure pro službu Batch.
- Seznamte se s funkcemi služby Batch, jako je konfigurace přístupu k výpočetním uzlům, používání výpočetních uzlů Linuxu a používání privátních koncových bodů.