استخدام الشهادات للوصول بأمان إلى Azure Key Vault باستخدام Batch
تحذير
يتم إهمال شهادات حساب الدفعة كما هو مفصل في هذه المقالة. للوصول بأمان إلى Azure Key Vault، ما عليك سوى استخدام الهويات المدارة للمجموعة مع أذونات الوصول المناسبة المكونة للهوية المدارة المعينة من قبل المستخدم للوصول إلى Key Vault الخاص بك. إذا كنت بحاجة إلى توفير الشهادات على عقد Batch، يرجى استخدام ملحق Azure Key Vault VM المتوفر بالاقتران مع تجمع الهوية المدارة لتثبيت الشهادات وإدارتها على تجمع الدفعات الخاص بك. لمزيد من المعلومات حول نشر الشهادات من Azure Key Vault مع الهوية المدارة على تجمعات الدفعات، راجع تمكين التدوير التلقائي للشهادات في تجمع Batch.
في هذه المقالة، ستتعلم كيفية إعداد عقد Batch مع الشهادات للوصول بأمان إلى بيانات الاعتماد المخزنة في Azure Key Vault.
للمصادقة على Azure Key Vault من عقدة Batch، تحتاج إلى:
- بيانات اعتماد Microsoft Entra
- شهادة
- حساب Batch
- تجمع Batch مع عقدة واحدة على الأقل
الحصول على شهادة
إذا لم يكن لديك شهادة بالفعل، فاستخدم PowerShell cmdlet New-SelfSignedCertificate
لإنشاء شهادة موقعة ذاتيًا جديدة.
إنشاء كيان خدمة
يتم منح الوصول إلى Key Vault إما مستخدم أو مدير خدمة. للوصول إلى Key Vault برمجيًّا، استخدم مدير الخدمة مع الشهادة التي أنشأتها في الخطوة السابقة. يجب أن يكون كيان الخدمة في نفس مستأجر Microsoft Entra مثل 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
عناوين URL الخاصة بالتطبيق ليست مهمة، لأننا نستخدمها فقط للوصول إلى Key Vault.
منح حقوق Key Vault
يحتاج مدير الخدمة الذي تم إنشاؤه في الخطوة السابقة إلى إذن لاسترداد الأسرار من Key Vault. يمكن منح الإذن إما من خلال مدخل Microsoft Azure أو باستخدام أمر PowerShell أدناه.
Set-AzureRmKeyVaultAccessPolicy -VaultName 'BatchVault' -ServicePrincipalName '"https://batch.mydomain.com' -PermissionsToSecrets 'Get'
قم بتعيين شهادة إلى حساب Batch
قم بإنشاء تجمع Batch، ثم انتقل إلى علامة تبويب الشهادة في المجموعة، وقم بتعيين الشهادة التي قمت بإنشائها. الشهادة الآن على جميع عُقد Batch.
بعد ذلك، قم بتعيين الشهادة لحساب Batch. يتيح تعيين الشهادة للحساب لـ Batch تعيينها إلى التجمعات ثم إلى العقد. أسهل طريقة للقيام بذلك هي الانتقال إلى حساب Batch الخاص بك في البوابة الإلكترونية، والانتقال إلى الشهادات، وتحديد إضافة. قم بتحميل ملف .pfx
الذي قمت بإنشائه سابقاً، وقم بتوفير كلمة المرور. بمخزون اكتمالها، تتم إضافة الشهادة إلى القائمة، ويمكنك التحقق من بصمة الإبهام.
الآن عند إنشاء تجمع Batch، يمكنك الانتقال إلى الشهادات في داخل المجموعة وتعيين الشهادة التي قمت بإنشائها لهذا التجمع. عند القيام بذلك، تأكد من تحديد LocalMachine لموقع المتجر. يتم تحميل الشهادة على جميع عُقد Batch في التجمع.
تثبيت برنامج Azure PowerShell
إذا كنت تخطط للوصول إلى Key Vault باستخدام برامج PowerShell النصية على العقد الخاصة بك، فأنت بحاجة إلى تثبيت مكتبة Azure PowerShell. إذا كانت العقد الخاصة بك تحتوي على Windows Management Framework (WMF) 5 مثبتاً، فيمكنك استخدام أمر وحدة التثبيت لتنزيله. إذا كنت تستخدم عُقداً لا تحتوي على WMF 5، فإن أسهل طريقة لتثبيتها هي تجميع ملف Azure PowerShell .msi
مع ملفات Batch الخاصة بك، ثم استدعاء المثبت باعتباره الجزء الأول من البرنامج النصي Batch لبدء التشغيل . انظر هذا المثال للحصول على التفاصيل:
$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
أنت الآن جاهز للوصول إلى Key Vault في البرامج النصية التي تعمل على عقد Batch الخاصة بك. للوصول إلى Key Vault من برنامج نصي، كل ما تحتاجه هو مصادقة البرنامج النصي الخاص بك مقابل معرف Microsoft Entra باستخدام الشهادة. للقيام بذلك في PowerShell، استخدم أمثلة الأوامر التالية. حدد الدليل المناسب لـ Thumbprint ومعرف التطبيق (معرف مدير الخدمة الخاص بك) ومعرِّف المستأجر (المستأجر حيث يوجد أساس الخدمة الخاص بك).
Add-AzureRmAccount -ServicePrincipal -CertificateThumbprint -ApplicationId
بمخزون المصادقة، قم بالوصول إلى KeyVault كما تفعل عادةً.
$adminPassword=Get-AzureKeyVaultSecret -VaultName BatchVault -Name batchAdminPass
هذه هي أوراق الاعتماد التي يجب استخدامها في البرنامج النصي الخاص بك.
الخطوات التالية
- تعرف على المزيد حول Azure Key Vault.
- راجع Azure Security Baseline لـ Batch.
- تعرف على ميزات Batch مثل تكوين الوصول إلى عُقد الحوسبة، واستخدام عُقد حساب Linux، واستخدام نقاط النهاية الخاصة.