برنامه نویسی

افزودن خودکار گواهی‌ها به Key Vault با استفاده از فایل‌های امن Azure DevOps با Terraform

Summarize this content to 400 words in Persian Lang

هنگام کار با گواهینامه های مرجع گواهی، برای مثال، وقتی SSL را در Azure Application Gateway یا Azure API Management پیکربندی می کنیم، ممکن است با نیاز به افزودن گواهی ها به Azure Key Vault مواجه شویم. در این مقاله، روشی را برای افزودن خودکار گواهی‌ها به Key Vault، بدون نیاز به مداخلات دستی که می‌تواند باعث ایجاد وقفه در فرآیند اتوماسیون شود، بررسی می‌کنیم. برای رسیدن به این هدف از Azure DevOps Secure Files و Terraform استفاده خواهیم کرد.

تنظیمات در Azure DevOps

بیایید با سناریویی کار کنیم که در آن قبلاً یک گواهی در قالب داریم pfx و رمز عبور گواهی برای شروع، اجازه دهید گواهی خود را در بخش Secure Files Azure DevOps آپلود کنیم. دسترسی داشته باشید https://dev.azure.com///_library?itemType=SecureFiles

مانند تصویر بالا، روی دکمه کلیک کنید + Secure File برای آپلود گواهی شما برای مثال در مقاله، من یک گواهی ساختگی ایجاد کردم (نحوه ایجاد آن را در اینجا یا اینجا ببینید) با نام Certificate.pfx، آن را در Secure Files آپلود کردم و نام فایل را به آن تغییر دادم گواهی (من پسوند pfx. را از فایل حذف کردم تا استفاده از نام گواهی در متغیرها آسانتر شود).

پس از آپلود، به فایل گواهی دسترسی داشته باشید تا به خط لوله ای که می خواهید از آن استفاده کنید مجوز دهید. همانطور که در تصویر نشان داده شده است مراحل را دنبال کنید:

همانطور که زیرساخت را از طریق خط لوله yaml مستقر می کنیم، دو متغیر را به گروه متغیرهایی که برای این مقاله استفاده خواهیم کرد اضافه می کنیم: CERTIFICATE_NAME ه CERTIFICATE_PASSWORD.

کد Terraform

حالا بیایید کد terraform را برای ایجاد Key Vault بیاوریم.در کد زیر، ما یک Key Vault حاوی خط‌مشی‌های دسترسی را داریم که به مدیر سرویس ما اجازه می‌دهد تا ایجاد (ایجاد)، واردات (واردات) و دریافت کنید (دریافت کنید) گواهینامه ها

علاوه بر این، در بلوک azurerm_key_vault_certificate ما باید خود گواهی را ایجاد کنیم، محتوای گواهی را از طریق تابع filebase64 و متغیر بدست آوریم. گواهی_مسیر که حاوی مسیر فایل گواهی است.

خط لوله

در خط لوله، باید فایل گواهی را که در داخل Secure Files قرار دارد دانلود کنیم. برای این کار از وظیفه DownloadSecureFile@1 استفاده می کنیم. این یک کار نسبتا ساده است که یک فایل را از Secure Files بر اساس نام آن بازیابی می کند.

در این بلوک کد، می بینیم که وظیفه دارای دو پارامتر مهم است: نام ه فایل امن (داخل بلوک ورودی ها). پارامتر نام به عنوان یک متغیر برای به دست آوردن خروجی های کار (مانند مسیری که فایل دانلود شده است) خدمت می کند.پارامتر فایل امن مقدار متغیر را دریافت خواهد کرد CERTIFICATE_NAME که قبلا در گروه متغیر خود ایجاد کردیم.

در وظیفه ای که دستور را اجرا می کند terraform اعمال شودهمانطور که در بالا می بینیم، مسیر گواهی را به متغیر منتقل می کنیم گواهی_مسیر با استفاده از همان مقدار پارامتر نام وظیفه DownloadSecureFile@1 و ارجاع به مقدار خروجی با .secureFilePath. در این مثال، نتیجه این است $(certificate_secure_file.secureFilePath).

حذف فایل گواهی

ما می توانیم فایل گواهی را از داخل عامل استقرار با استفاده از وظیفه DeleteFiles@1 حذف کنیم. این کار فایل ها و/یا پوشه ها را از مسیر مشخص شده در پارامتر Contents حذف می کند. در اینجا از متغیر نیز استفاده خواهیم کرد $(certificate_secure_file.secureFilePath) برای اطمینان از اینکه پس از استفاده توسط terraform، گواهی ما از نماینده حذف خواهد شد.

کد نمونه کامل این مقاله را می توانید در اینجا بیابید.

این مقاله ترجمه و اقتباس شده از مقاله اصلی نوشته T. Constantini است.

توضیحات تصویر

هنگام کار با گواهینامه های مرجع گواهی، برای مثال، وقتی SSL را در Azure Application Gateway یا Azure API Management پیکربندی می کنیم، ممکن است با نیاز به افزودن گواهی ها به Azure Key Vault مواجه شویم. در این مقاله، روشی را برای افزودن خودکار گواهی‌ها به Key Vault، بدون نیاز به مداخلات دستی که می‌تواند باعث ایجاد وقفه در فرآیند اتوماسیون شود، بررسی می‌کنیم. برای رسیدن به این هدف از Azure DevOps Secure Files و Terraform استفاده خواهیم کرد.

تنظیمات در Azure DevOps

بیایید با سناریویی کار کنیم که در آن قبلاً یک گواهی در قالب داریم pfx و رمز عبور گواهی برای شروع، اجازه دهید گواهی خود را در بخش Secure Files Azure DevOps آپلود کنیم. دسترسی داشته باشید https://dev.azure.com///_library?itemType=SecureFiles

توضیحات تصویر

مانند تصویر بالا، روی دکمه کلیک کنید + Secure File برای آپلود گواهی شما برای مثال در مقاله، من یک گواهی ساختگی ایجاد کردم (نحوه ایجاد آن را در اینجا یا اینجا ببینید) با نام Certificate.pfx، آن را در Secure Files آپلود کردم و نام فایل را به آن تغییر دادم گواهی (من پسوند pfx. را از فایل حذف کردم تا استفاده از نام گواهی در متغیرها آسانتر شود).

پس از آپلود، به فایل گواهی دسترسی داشته باشید تا به خط لوله ای که می خواهید از آن استفاده کنید مجوز دهید. همانطور که در تصویر نشان داده شده است مراحل را دنبال کنید:

توضیحات تصویر

همانطور که زیرساخت را از طریق خط لوله yaml مستقر می کنیم، دو متغیر را به گروه متغیرهایی که برای این مقاله استفاده خواهیم کرد اضافه می کنیم: CERTIFICATE_NAME ه CERTIFICATE_PASSWORD.

توضیحات تصویر

کد Terraform

حالا بیایید کد terraform را برای ایجاد Key Vault بیاوریم.
در کد زیر، ما یک Key Vault حاوی خط‌مشی‌های دسترسی را داریم که به مدیر سرویس ما اجازه می‌دهد تا ایجاد (ایجاد)، واردات (واردات) و دریافت کنید (دریافت کنید) گواهینامه ها

علاوه بر این، در بلوک azurerm_key_vault_certificate ما باید خود گواهی را ایجاد کنیم، محتوای گواهی را از طریق تابع filebase64 و متغیر بدست آوریم. گواهی_مسیر که حاوی مسیر فایل گواهی است.

خط لوله

در خط لوله، باید فایل گواهی را که در داخل Secure Files قرار دارد دانلود کنیم. برای این کار از وظیفه DownloadSecureFile@1 استفاده می کنیم. این یک کار نسبتا ساده است که یک فایل را از Secure Files بر اساس نام آن بازیابی می کند.

در این بلوک کد، می بینیم که وظیفه دارای دو پارامتر مهم است: نام ه فایل امن (داخل بلوک ورودی ها).
پارامتر نام به عنوان یک متغیر برای به دست آوردن خروجی های کار (مانند مسیری که فایل دانلود شده است) خدمت می کند.
پارامتر فایل امن مقدار متغیر را دریافت خواهد کرد CERTIFICATE_NAME که قبلا در گروه متغیر خود ایجاد کردیم.

در وظیفه ای که دستور را اجرا می کند terraform اعمال شودهمانطور که در بالا می بینیم، مسیر گواهی را به متغیر منتقل می کنیم گواهی_مسیر با استفاده از همان مقدار پارامتر نام وظیفه DownloadSecureFile@1 و ارجاع به مقدار خروجی با .secureFilePath. در این مثال، نتیجه این است $(certificate_secure_file.secureFilePath).

حذف فایل گواهی

ما می توانیم فایل گواهی را از داخل عامل استقرار با استفاده از وظیفه DeleteFiles@1 حذف کنیم. این کار فایل ها و/یا پوشه ها را از مسیر مشخص شده در پارامتر Contents حذف می کند. در اینجا از متغیر نیز استفاده خواهیم کرد $(certificate_secure_file.secureFilePath) برای اطمینان از اینکه پس از استفاده توسط terraform، گواهی ما از نماینده حذف خواهد شد.

کد نمونه کامل این مقاله را می توانید در اینجا بیابید.

این مقاله ترجمه و اقتباس شده از مقاله اصلی نوشته T. Constantini است.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا