یکی از چالش‌های هر گردش کار DevOps، مدیریت اسرار، رمزهای عبور و نشانه‌هایی است که به دلایل امنیتی باید خصوصی نگه داشته شوند. این به ویژه برای مخازن منبع باز، که کد معمولاً عمومی است، صادق است. هنگام کار با اسکریپت های GitHub Actions، GitHub Secrets به مدیریت این مشکل کمک می کند.

اسرار GitHub چیست؟

GitHub Secrets اساساً یک انبار است که می‌توانید کلیدهای خصوصی را در آن ذخیره کنید، که می‌تواند توسط اسکریپت‌های GitHub Actions بر اساس نام، مانند متغیرهای محیطی، قابل دسترسی باشد. این مشکل حفظ آن را به صورت متن ساده در پایگاه کد حل می کند، که یک مشکل امنیتی بزرگ حتی برای مخازن خصوصی است و برای مخازن عمومی بدون هک شدن فوری غیرممکن است.

این در بسیاری از موارد که ممکن است کد عمومی باشد مفید است، اما اسکریپت Actions باید با برخی از سرویس های شخص ثالث احراز هویت شود. به عنوان مثال، اگر روی سطل های آمازون S3 میزبانی باینری دارید، باید به اسکریپت رمز دسترسی برای نوشتن در فضای ذخیره سازی AWS بدهید. البته، شما نمی خواهید به کسی که مخزن را مشاهده می کند، اجازه بازنویسی محتویات سطل را بدهید. استفاده از رمز دسترسی را محدود می کند و همچنین از لو رفتن تصادفی کلید محافظت می کند.

  • اسرار مخزن برای یک مخزن منفرد اعمال می شود. شما باید آنها را از پانل تنظیمات مخزن تنظیم کنید، که سپس مانند متغیرهای محیطی در ساخت‌های GitHub Actions قابل دسترسی هستند.
  • اسرار سازمان‌های GitHub در تمام مخازن داخل آن سازمان اعمال می‌شود و راهی آسان برای مدیریت مرکزی کلیدها فراهم می‌کند. آنها از تنظیمات سازمان تنظیم شده اند.
  • اسرار محیطی برای محیط‌های خاص GitHub در مخزن مانند develop و production. این یک راه آسان برای نادیده گرفتن اسرار مخزن/سازمان برای ساخت‌های مختلف، مانند استقرار در یک محیط آزمایشی در مقابل یک محیط تولید، فراهم می‌کند.

در حال حاضر، هیچ راهی برای تنظیم اسرار خاص کاربر وجود ندارد. اگر چنین عملکردی را می خواهید، ایجاد یک سازمان شخصی را در نظر بگیرید.

شما می توانید تا 1000 راز سازمان، 100 راز مخزن و 100 راز محیطی را ذخیره کنید. حجم اسرار نیز به 64 کیلوبایت محدود شده است، اگرچه راه حل هایی برای این محدودیت وجود دارد. همچنین می توانید داده های باینری را به عنوان رشته های کدگذاری شده Base64 ذخیره کنید.

اگر مثلاً آنها را با دستوری مانند روی کنسول چاپ کرده باشید، هنوز هم ممکن است آنها را از اسکریپت Actions درز کنید. echo. شما باید مطمئن شوید که هیچ یک از اسکریپت‌هایی که اسرار را برای آن‌ها تغذیه می‌کنید، آن را برای کاربر نخوانده یا به هیچ فایل گزارشی خروجی نمی‌دهند. خوشبختانه، GitHub از انتقال راز به دستورات لاگ خاص، از جمله، جلوگیری می کند echo.

استفاده از GitHub Secrets

برای تنظیم یک راز در کل مخزن، باید به پنل تنظیمات مخزن بروید و روی Secrets > Actions کلیک کنید. همچنین می‌توانید اسرار را برای GitHub Codespace و Dependabot تنظیم کنید، اگر از آن‌ها استفاده می‌کنید.

می توانید نام متغیر را تنظیم کنید و محتوای مخفی را در آن قرار دهید. هر چند وقتی این پنجره را ترک کنید، دیگر نمی‌توانید کلید را ببینید، اگرچه می‌توانید آن را ویرایش کرده و در یک کلید جدید جای‌گذاری کنید. به طور کلی اکثر فروشگاه های مخفی باید اینگونه کار کنند و یک ویژگی امنیتی خوب است، اما انتظار نداشته باشید که دوباره بتوانید این کلید را ببینید.

قرارداد نامگذاری اسامی مخفی با حروف بزرگ همراه با زیرخط است، که در غیر این صورت به عنوان “جعبه مار جیغ” شناخته می شود، اما این توسط هیچ چیزی اجرا نمی شود.

سپس، در اسکریپت Actions خود، می توانید با فرار از آن به عنوان یک متغیر YAML به آن ارجاع دهید، مانند:

${{ secrets.SECRET_NAME }}

توجه داشته باشید که “اسرار” متن باید قبل از نام مخفی درج شود. همچنین لازم نیست برای ارجاع اسرار سازمان در مقابل مخازن تک مخزن کار خاصی انجام دهید.

این مقدار می تواند به دستورات منتقل شود، اما می توانید از آن برای تنظیم متغیرهای محیطی برای یک فرآیند نیز استفاده کنید. به‌طور معمول، اکثر ابزارها اسرار را می‌پذیرند، زیرا امن‌ترین و منعطف‌ترین سیستم است.

اگر رمزی در حساب شما وجود نداشته باشد، GitHub از یک رشته خالی به عنوان مقدار استفاده می کند.

اسرار سازمان

تنظیم اسرار در سطح سازمان به همین ترتیب انجام می شود، با این حال برخی کنترل های اضافی بر روی دسترسی و توزیع وجود دارد.

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

برای ایجاد یا ویرایش یک راز سازمانی، باید به خود سازمان دسترسی «ادمین» داشته باشید. این را می توان با ویرایش مجوزهای پایه به همه اعضا داد، اما معمولاً برای سازمان های بزرگ توصیه نمی شود.





سایت محتوا مارکتینگ

برای دیدن مطالب آموزشی بیشتر در زمینه سخت افزار و نرم افزار اینجا کلیک کنید!

توسط psychen

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

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