برنامه نویسی

مدیریت مخفی با استفاده از طاق Key Pulumi ESC SDK و Azure Key

این یک ارسال برای استقرار و Document Document Pulumi است: Shhh ، این یک راز است!

آنچه من ساختم

من یک محلول تهیه زیرساخت خودکار را با استفاده از Pulumi و Azure ساختم. این پروژه از زیرساخت های Pulumi به عنوان Code (IAC) برای استقرار منابع لاجورد مانند ماشین مجازی (VM) و شبکه و مدیریت اسرار با Pulumi ESC استفاده می کند. این زیرساخت ها یک شبکه مجازی ، یک زیر شبکه ، یک IP عمومی و یک VM مبتنی بر لینوکس را ارائه می دهند و با Azure Key Vault ادغام می شوند تا اعتبار خود را به طور ایمن اداره کنند.

لینک نسخه ی نمایشی زنده

شرح تصویر

repo پروژه

این پروژه را می توان در محیط لاجورد خود با پیگیری مراحل موجود در مخزن پروژه تکرار کرد.

کد کامل را می توان در اینجا یافت

من یک VM ایجاد کردم ، اسرار را در طاق های Key Azure نگه داشتم که آن را در Pulumi ESC SDK تکرار کرد و از اعتبارنامه با اسکریپت تهیه استفاده کردم.

شرح تصویر

سفر من

روند ساخت این راه حل یک تجربه روشنگری بود. در ابتدا ، من با مدیریت منابع لاجورد با استفاده از Pulumi ، به ویژه هنگام برخورد با سیستم های مدیریت مخفی ، با برخی از چالش ها روبرو شدم. یکی از مهمترین موانع کار با Pulumi ESC برای کنترل مخفی و اطمینان از انتقال اعتبار مناسب در هنگام تهیه به VM بود.

در اینجا نحوه غلبه بر آنها آمده است:

  • چالش با Azure Key Vault: اسرار را به طور ایمن از طاق Key Azure به استفاده از ادغام Pulumi با بسته Azure_Native و KeyVault.get_secret نیاز داشت. این پیچیدگی از اطمینان از انتقال صحیح این اسرار برای تأیید اعتبار امن به دستگاه مجازی ناشی می شود.

  • ادغام ESC: من با ادغام Pulumi Esc به طور مؤثر تلاش کردم ، اما بعد از خواندن اسناد و آزمایش ، مدیریت مخفی را با موفقیت با Pulumi ESC خودکار کردم ، و در صورت لزوم محیط هایی را ایجاد یا به روز کردم.

آنچه من آموختم:

  • نحوه کار با Pulumi برای تهیه زیرساخت ها به عنوان کد (IAC) در لاجورد.

  • نحوه استفاده از Pulumi ESC برای مدیریت مخفی ایمن و نحوه ادغام آن با سایر ابزارها.

  • اهمیت ساخت صحیح و آزمایش کد زیرساخت برای اطمینان از تکرارپذیری و امنیت.

تحت استدلال ESC

من از Pulumi ESC (کنترل مخفی خارجی) برای مدیریت ایمن داده های حساس مانند اعتبار مدیر استفاده کردم. با ذخیره اطلاعات حساس در طاق Key Key ، توانستم این اسرار را به پروژه Pulumi بکشم و در حین تهیه آنها را به دستگاه مجازی تزریق کنم.

این قطعه کد است که اعتبار را از آن بازیابی می کند Azure Key Vault و آنها را وارد کنید Pulumi ESC

# === Get secrets from Azure Key Vault ===
key_vault_id = f"/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.KeyVault/vaults/{key_vault_name}"

admin_username_secret = azure.keyvault.get_secret(name="adminUsername", key_vault_id=key_vault_id)
admin_password_secret = azure.keyvault.get_secret(name="adminPassword", key_vault_id=key_vault_id)

admin_username = admin_username_secret.value
admin_password = admin_password_secret.value

# === Upload secrets to ESC ===
env_def.values.additional_properties = {
    "adminUsername": {"fn::secret": admin_username},
    "adminPassword": {"fn::secret": admin_password},
}

client.update_environment(org_name, project_name, esc_env_name, env_def)
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

در اینجا نحوه کمک Pulumi ESC آمده است:

  • مدیریت مخفی: به جای اینکه به صورت دستی اطلاعات حساس را در پرونده های پیکربندی من وارد کنید ، Pulumi ESC روشی ایمن و خودکار برای واکشی اسرار فراهم کرد.

  • تعاریف محیط: من از ESC برای تعریف محیطی استفاده کردم که این اسرار به طور ایمن به روز شود. این امر برای مدیریت محیط های مختلف (به عنوان مثال ، توسعه ، مرحله بندی ، تولید) به طور ایمن ضروری است.

با تشکر خاص:

به جامعه Pulumi برای نمونه های ESC SDK و تیم ESC برای مستندات استثنایی آنها

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

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

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

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