Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ostrzeżenie
Certyfikaty konta Batch opisane w tym artykule są wycofane. Aby bezpiecznie uzyskać dostęp do Azure Key Vault, użyj tożsamości zarządzanych puli z odpowiednimi uprawnieniami dostępu skonfigurowanymi dla tożsamości zarządzanej przypisanej przez użytkownika w celu uzyskania dostępu do Key Vault. Jeśli musisz wdrożyć certyfikaty w węzłach Batch, użyj dostępnego rozszerzenia Azure Key Vault dla maszyn wirtualnych w połączeniu z tożsamością zarządzaną puli, aby instalować certyfikaty w puli Batch i zarządzać nimi. Aby uzyskać więcej informacji na temat wdrażania certyfikatów z usługi Azure Key Vault z tożsamością zarządzaną w pulach usługi Batch, zobacz Włączanie automatycznego obracania certyfikatów w puli usługi Batch.
W tym artykule dowiesz się, jak skonfigurować węzły usługi Batch przy użyciu certyfikatów w celu bezpiecznego uzyskiwania dostępu do poświadczeń przechowywanych w Azure Key Vault.
Aby uwierzytelnić się w Azure Key Vault z węzła usługi Batch, potrzebne są następujące elementy:
- Poświadczenie Microsoft Entra
- Certyfikat
- Konto usługi Batch
- Pula usługi Batch z co najmniej jednym węzłem
Uzyskaj certyfikat
Jeśli nie masz jeszcze certyfikatu, użyj polecenia cmdlet New-SelfSignedCertificateprogramu PowerShell, aby utworzyć nowy certyfikat z podpisem własnym.
Utwórz kierownika usługi
Dostęp do Key Vault jest udzielany użytkownikowi lub jednostce usługi. Aby uzyskać dostęp do usługi Key Vault programistycznie, użyj nazwy głównej usługi z certyfikatem utworzonym w poprzednim kroku. Jednostka usługi musi znajdować się w tej samej dzierżawie Microsoft Entra co 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 aplikacji nie są ważne, ponieważ używamy ich tylko do Key Vault dostępu.
Udzielanie praw do Key Vault
Jednostka usługi utworzona w poprzednim kroku potrzebuje uprawnień do pobierania sekretów z usługi Key Vault. Uprawnienie można udzielić za pośrednictwem portalu Azure lub za pomocą poniższego polecenia programu PowerShell.
Set-AzureRmKeyVaultAccessPolicy -VaultName 'BatchVault' -ServicePrincipalName '"https://batch.mydomain.com' -PermissionsToSecrets 'Get'
Przypisywanie certyfikatu do konta usługi Batch
Utwórz pulę usługi Batch, a następnie przejdź do karty Certyfikaty w tej puli i przypisz utworzony certyfikat. Certyfikat znajduje się teraz we wszystkich węzłach usługi Batch.
Następnie przypisz certyfikat do konta usługi Batch. Przypisanie certyfikatu do konta umożliwia usłudze Batch przypisanie go do pul, a następnie do węzłów. Najprostszym sposobem wykonania tej czynności jest przejście do konta usługi Batch w portalu, przejście do pozycji Certyfikaty i wybranie pozycji Dodaj.
.pfx Przekaż wygenerowany wcześniej plik i podaj hasło. Po zakończeniu certyfikat zostanie dodany do listy i będzie można zweryfikować odcisk palca.
Teraz po utworzeniu puli usługi Batch możesz przejść do obszaru Certyfikaty w puli i przypisać utworzony certyfikat do tej puli. W tym celu upewnij się, że wybrano pozycję LocalMachine dla lokalizacji sklepu. Certyfikat jest wczytywany do wszystkich węzłów usługi Batch w puli.
Instalowanie programu Azure PowerShell
Jeśli planujesz uzyskiwać dostęp do usługi Key Vault za pomocą skryptów programu PowerShell na swoich węzłach, musisz mieć zainstalowaną bibliotekę Azure PowerShell. Jeśli węzły mają zainstalowany program Windows Management Framework (WMF) 5, możesz użyć polecenia install-module, aby go pobrać. Jeśli używasz węzłów, które nie mają programu WMF 5, najprostszym sposobem jego zainstalowania jest łączenie pliku Azure PowerShell .msi z plikami usługi Batch, a następnie wywołanie instalatora jako pierwszej części skryptu uruchamiania usługi Batch. Zobacz ten przykład, aby uzyskać szczegółowe informacje:
$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
}
Dostęp do Key Vault
Teraz możesz uzyskać dostęp do usługi Key Vault w skryptach uruchomionych na węzłach usługi Batch. Aby uzyskać dostęp do Key Vault ze skryptu, wystarczy, aby skrypt uwierzytelnił się w Microsoft Entra ID przy użyciu certyfikatu. Aby to zrobić w programie PowerShell, użyj następujących przykładowych poleceń. Określ odpowiedni identyfikator GUID dla odcisku palca, identyfikatora aplikacji (identyfikatora nazwy głównej usługi) oraz identyfikatora dzierżawy (dzierżawy, w której istnieje nazwa główna usługi).
Add-AzureRmAccount -ServicePrincipal -CertificateThumbprint -ApplicationId
Po uwierzytelnieniu uzyskaj dostęp do usługi KeyVault w zwykły sposób.
$adminPassword=Get-AzureKeyVaultSecret -VaultName BatchVault -Name batchAdminPass
Są to dane uwierzytelniające, których należy użyć w skrypcie.
Następne kroki
- Dowiedz się więcej o usłudze Azure Key Vault.
- Przejrzyj punkt odniesienia zabezpieczeń platformy Azure dla usługi Batch.
- Dowiedz się więcej o funkcjach usługi Batch, takich jak konfigurowanie dostępu do węzłów obliczeniowych, korzystanie z węzłów obliczeniowych systemu Linux i używanie prywatnych punktów końcowych.