Aracılığıyla paylaş


Batch ile Azure Key Vault'a güvenli bir şekilde erişmek için sertifikaları kullanma

Uyarı

Bu makalede ayrıntılı olarak açıklandığı gibi Batch hesabı sertifikaları kullanım dışı bırakılmıştır. Azure Key Vault'a güvenli bir şekilde erişmek için, kullanıcı tarafından atanan yönetilen kimliğin Key Vault'unuza erişmesi için yapılandırılmış uygun erişim izinlerine sahip Havuz yönetilen kimlikleri kullanmanız yeterlidir. Batch düğümlerinde sertifika sağlamanız gerekiyorsa, Batch havuzunuzda sertifikaları yüklemek ve yönetmek için havuz Yönetilen Kimliği ile birlikte kullanılabilir Azure Key Vault VM uzantısını kullanın. Batch havuzlarında Yönetilen Kimlik ile Azure Key Vault'tan sertifika dağıtma hakkında daha fazla bilgi için bkz . Batch havuzunda otomatik sertifika döndürmeyi etkinleştirme.

Bu makalede, Azure Key Vault'ta depolanan kimlik bilgilerine güvenli bir şekilde erişmek için sertifikalarla Batch düğümlerini ayarlamayı öğreneceksiniz.

Batch düğümünden Azure Key Vault'ta kimlik doğrulaması yapmak için şunları yapmanız gerekir:

  • Microsoft Entra kimlik bilgileri
  • Sertifika
  • Batch hesabı
  • En az bir düğüme sahip bir Batch havuzu

Sertifika alma

Henüz bir sertifikanız yoksa, otomatik olarak imzalanan yeni bir sertifika oluşturmak için PowerShell cmdlet'ini New-SelfSignedCertificate kullanın.

Hizmet sorumlusu oluşturma

Key Vault'a erişim bir kullanıcıya veya hizmet sorumlusuna verilir. Key Vault'a program aracılığıyla erişmek için önceki adımda oluşturduğunuz sertifikayla bir hizmet sorumlusu kullanın. Hizmet sorumlusu, Key Vault ile aynı Microsoft Entra kiracısında olmalıdır.

$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

Uygulama URL'leri önemli değildir, çünkü bunları yalnızca Key Vault erişimi için kullanıyoruz.

Key Vault'a hak verme

Önceki adımda oluşturulan hizmet sorumlusunun Key Vault'tan gizli dizileri almak için izin alması gerekir. İzin, Azure portalı aracılığıyla veya aşağıdaki PowerShell komutuyla verilebilir.

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

Batch hesabına sertifika atama

Batch havuzu oluşturun, ardından havuzdaki sertifika sekmesine gidin ve oluşturduğunuz sertifikayı atayın. Sertifika artık tüm Batch düğümlerindedir.

Ardından, sertifikayı Batch hesabına atayın. Sertifikayı hesaba atamak Batch'in bunu havuzlara ve ardından düğümlere atamasına olanak tanır. Bunu yapmanın en kolay yolu portalda Batch hesabınıza gitmek, Sertifikalar'a gitmek ve Ekle'yi seçmektir. .pfx Daha önce oluşturduğunuz dosyayı karşıya yükleyin ve parolayı sağlayın. Tamamlandıktan sonra sertifika listeye eklenir ve parmak izini doğrulayabilirsiniz.

Artık bir Batch havuzu oluşturduğunuzda, havuzdaki Sertifikalar'a gidebilir ve oluşturduğunuz sertifikayı bu havuza atayabilirsiniz. Bunu yaptığınızda, mağaza konumu için LocalMachine'i seçtiğinizden emin olun. Sertifika havuzdaki tüm Batch düğümlerine yüklenir.

Azure PowerShell'i yükleme

Düğümlerinizdeki PowerShell betiklerini kullanarak Key Vault'a erişmeyi planlıyorsanız Azure PowerShell kitaplığının yüklü olması gerekir. Düğümlerinizde Windows Management Framework (WMF) 5 yüklüyse, indirmek için install-module komutunu kullanabilirsiniz. WMF 5'e sahip olmayan düğümler kullanıyorsanız, bunu yüklemenin en kolay yolu Azure PowerShell .msi dosyasını Batch dosyalarınızla birlikte paketlemek ve ardından Yükleyiciyi Batch başlangıç betiğinizin ilk parçası olarak çağırmaktır. Ayrıntılar için şu örne bakın:

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

Key Vault'a Erişim

Artık Batch düğümlerinizde çalışan betiklerde Key Vault'a erişmeye hazırsınız. Bir betikten Key Vault'a erişmek için tek ihtiyacınız olan, betiğinizin sertifikayı kullanarak Microsoft Entra Id'de kimlik doğrulaması yapmaktır. PowerShell'de bunu yapmak için aşağıdaki örnek komutları kullanın. Parmak İzi, Uygulama Kimliği (hizmet sorumlunuzun kimliği) ve Kiracı Kimliği (hizmet sorumlunuzun bulunduğu kiracı) için uygun GUID'yi belirtin.

Add-AzureRmAccount -ServicePrincipal -CertificateThumbprint -ApplicationId

Kimlik doğrulaması yaptıktan sonra normalde yaptığınız gibi KeyVault'a erişin.

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

Bunlar betiğinizde kullanılacak kimlik bilgileridir.

Sonraki adımlar