Tanúsítványok használata az Azure Key Vault biztonságos eléréséhez a Batch használatával

Figyelmeztetés:

A cikkben részletezett Batch-fióktanúsítványok elavultak. Az Azure Key Vault biztonságos eléréséhez egyszerűen használja a készlet által felügyelt identitásokat a felhasználó által hozzárendelt felügyelt identitáshoz konfigurált megfelelő hozzáférési engedélyekkel a Key Vault eléréséhez. Ha tanúsítványokat kell kiépítenie a Batch-csomópontokon, használja a rendelkezésre álló Azure Key Vault virtuálisgép-bővítményt a készlet felügyelt identitásával együtt a tanúsítványok Batch-készleten való telepítéséhez és kezeléséhez. További információ a tanúsítványok Azure Key Vaultból történő üzembe helyezéséről felügyelt identitással a Batch-készletekben: Automatikus tanúsítványváltás engedélyezése Batch-készletben.

CloudServiceConfigurationa készletek nem biztosítják a felügyelt identitás vagy az Azure Key Vault virtuálisgép-bővítmény megadását, és ezek a készletek elavultak. Olyan készletekbe kell migrálnia VirtualMachineConfiguration , amelyek a fent említett alternatívákat biztosítják.

Ebben a cikkben megtudhatja, hogyan állíthat be Batch-csomópontokat tanúsítványokkal az Azure Key Vaultban tárolt hitelesítő adatok biztonságos eléréséhez.

A Batch-csomópontból az Azure Key Vaultba történő hitelesítéshez a következőkre van szükség:

  • Microsoft Entra-hitelesítő adatok
  • Tanúsítvány
  • Batch-fiók
  • Batch-készlet legalább egy csomóponttal

Tanúsítvány beszerzése

Ha még nem rendelkezik tanúsítvánnyal, a PowerShell-parancsmaggal New-SelfSignedCertificate hozzon létre egy új önaláírt tanúsítványt.

Egyszerű szolgáltatás létrehozása

A Key Vaulthoz való hozzáférés egy felhasználó vagy egy szolgáltatásnév számára érhető el. A Key Vault programozott eléréséhez használjon egy egyszerű szolgáltatást az előző lépésben létrehozott tanúsítvánnyal. A szolgáltatásnévnek ugyanabban a Microsoft Entra-bérlőben kell lennie, mint a Key Vaultnak.

$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

Az alkalmazás URL-címei nem fontosak, mivel csak a Key Vault-hozzáféréshez használjuk őket.

Jogosultságok megadása a Key Vaulthoz

Az előző lépésben létrehozott szolgáltatásnévnek engedéllyel kell lekérnie a titkos kulcsokat a Key Vaultból. Az engedély az Azure Portalon vagy az alábbi PowerShell-paranccsal adható meg.

Set-AzureRmKeyVaultAccessPolicy -VaultName 'BatchVault' -ServicePrincipalName '"https://batch.mydomain.com' -PermissionsToSecrets 'Get'

Tanúsítvány hozzárendelése Batch-fiókhoz

Hozzon létre egy Batch-készletet, majd lépjen a készlet tanúsítványlapjára, és rendelje hozzá a létrehozott tanúsítványt. A tanúsítvány most már az összes Batch-csomóponton található.

Ezután rendelje hozzá a tanúsítványt a Batch-fiókhoz. A tanúsítvány fiókhoz való hozzárendelésével a Batch hozzárendelheti a készletekhez, majd a csomópontokhoz. Ennek legegyszerűbb módja, ha a portálon a Batch-fiókjára lép, a Tanúsítványok elemre lép, majd a Hozzáadás gombra. Töltse fel a .pfx korábban létrehozott fájlt, és adja meg a jelszót. Miután elkészült, a rendszer hozzáadja a tanúsítványt a listához, és ellenőrizheti az ujjlenyomatot.

Most, amikor létrehoz egy Batch-készletet, navigálhat a készleten belüli tanúsítványokhoz, és hozzárendelheti a létrehozott tanúsítványt a készlethez. Ha így tesz, győződjön meg arról, hogy a LocalMachine lehetőséget választja az áruház helyéhez. A rendszer betölti a tanúsítványt a készlet összes Batch-csomópontjára.

Az Azure PowerShell telepítése

Ha PowerShell-szkriptekkel szeretné elérni a Key Vaultot a csomópontokon, akkor telepítenie kell az Azure PowerShell-kódtárat. Ha a csomópontokon telepítve van a Windows Management Framework (WMF) 5, a telepítési modul parancsával letöltheti azt. Ha olyan csomópontokat használ, amelyek nem rendelkeznek WMF 5-ös verzióval, a telepítés legegyszerűbb módja az, ha az Azure PowerShell-fájlt .msi kötegeli a Batch-fájlokkal, majd hívja meg a telepítőt a Batch indítási szkriptjének első részeként. A részletekért tekintse meg ezt a példát:

$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
}

A Key Vault elérése

Most már készen áll a Key Vault elérésére a Batch-csomópontokon futó szkriptekben. A Key Vault parancsfájlból való eléréséhez mindössze annyit kell tudnia, hogy a szkript hitelesíteni tudja a Microsoft Entra-azonosítót a tanúsítvány használatával. Ehhez használja a következő példaparancsokat a PowerShellben. Adja meg a megfelelő GUID azonosítót az ujjlenyomathoz, az alkalmazásazonosítóhoz (a szolgáltatásnév azonosítójához) és a bérlőazonosítóhoz (az a bérlő, ahol a szolgáltatásnév létezik).

Add-AzureRmAccount -ServicePrincipal -CertificateThumbprint -ApplicationId

A hitelesítés után a KeyVaultot a szokásos módon érheti el.

$adminPassword=Get-AzureKeyVaultSecret -VaultName BatchVault -Name batchAdminPass

Ezek a szkriptben használandó hitelesítő adatok.

Következő lépések