گروه دسترسی امن (Security Group) این امکان را به شما می‌دهد تا ترافیک ورودی و خروجی ماشین‌های مجازی خود را در یک VPC مدیریت کنید. با تخصیص یک یا مجموعه‌ای از گروه‌های دسترسی امن به یک ماشین مجازی، می‌توانید دقیقاً مشخص کنید که آن ماشین از کجا، با کجا و به چه صورت‌هایی در شبکه امکان تعامل دارد.

پیش از ساخت یک ماشین فایروال

برای کنترل ترافیک ورودی و خروجی ماشین‌های مجازی نیازی به راه‌اندازی یک ماشین فایروال جداگانه ندارید؛ Security Group همین کار را در لایه‌ی شبکه و پیش از رسیدن ترافیک به ماشین انجام می‌دهد.

۱. ساختار پیشین

تا زمانی که گروه دسترسی امن فعال نشده باشد، به صورت پیش‌فرض:

  • ارتباط بین ماشین‌های یک سابنت مشترک برقرار است.
  • ارتباط بین ماشین‌های دو سابنت مجزا محدود است.

در این ساختار، ماشین‌های دو سابنت مختلف در یک VPC ارتباط مستقیمی با یکدیگر ندارند و تنها منبع مشترکشان، Internet Gateway آن VPC است.

۲. ساختار جدید

گروه دسترسی امن را می‌توان در دو سطح فعال کرد: روی یک VPC، یا روی interface یک ماشین مجازی. با فعال شدن آن، رفتار شبکه در همان محدوده به شکل زیر تغییر می‌کند:

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

به این ترتیب، قرار گرفتن دو ماشین مجازی در یک سابنت مشترک یا دو سابنت مجزا، تفاوتی در ارتباط آن دو ایجاد نمی‌کند؛ یعنی به کمک گروه دسترسی امن هم می‌توان ارتباط دو ماشین مجازی در یک سابنت را قطع کرد و هم ارتباط دو ماشین مجازی در یک VPC را برقرار کرد.

نحوه‌ی فعال‌سازی گروه دسترسی امن روی یک interface در بخش «فعال‌سازی گروه دسترسی امن روی یک interface» توضیح داده شده است.

۳. مفاهیم پایه

پیش از کار با گروه دسترسی امن، توجه به نکات زیر ضروری است:

  • گروه دسترسی امن روی interface شبکه اعمال می‌شود. اگر یک ماشین مجازی چند interface داشته باشد، گروه‌های دسترسی امن باید برای هر interface به صورت جداگانه تعریف و مدیریت شوند.
  • اگر به یک ماشین مجازی هیچ گروه دسترسی امنی داده نشود، آن ماشین قادر به برقراری ارتباط با هیچ‌جا نخواهد بود.
  • گروه‌ها با یکدیگر جمع می‌شوند. اگر به interface یک ماشین مجازی چند گروه دسترسی امن داده شود، ترافیکی که با هر یک از این گروه‌ها مطابقت پیدا کند مجاز خواهد بود و در غیر این صورت drop می‌شود.
  • برای برقراری ارتباط بین دو ماشین مجازی، باید ترافیک خروجی در مبدأ و ترافیک ورودی در مقصد باز شوند.
  • گروه دسترسی امن به صورت stateful است. اگر یک ترافیک خروجی منجر به یک ترافیک reply شود، نیازی به باز کردن ترافیک ورودی روی ماشین مبدأ برای دریافت پاسخ نیست.

۴. مشاهده و مدیریت گروه‌های دسترسی امن

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

در صورت واضح نبودن جزئیات عملکرد یک گروه دسترسی، با کلیک روی نشانگر تعداد قانون‌ها، فهرست قانون‌های دسترسی آن گروه برای شما باز می‌شود.

۵. گروه‌های دسترسی امن پیش‌فرض

تعدادی گروه دسترسی به صورت پیش‌فرض در هر فضای کاری ساخته می‌شود که می‌توانید علاوه بر گروه‌های دسترسی خودتان، از آن‌ها نیز استفاده کنید. این گروه‌ها مواردی هستند که از نظر کاربرد فراگیرتر بوده و برای سهولت کار، به صورت پیش‌فرض در فضای کاری وجود دارند. برای نمونه، با اختصاص دادن گروه دسترسی امن ssh-access به یک ماشین مجازی، دسترسی SSH به آن ماشین را از همه‌جا باز می‌کنید.

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

نکته

امکان حذف و ویرایش گروه‌های دسترسی امن پیش‌فرض وجود ندارد. در صورت نیاز به قوانین متفاوت، باید یک گروه دسترسی امن جدید تعریف کنید.

نام گروه دسترسی امنتوضیحات
full-http-https-ingress-accessارتباط ورودی TCP به پورت‌های 80 و 443 روی ماشین مجازی، از همه‌جا ممکن می‌شود.
icmp-accessترافیک ورودی از جنس ICMP از مبدأ همه‌جا روی ماشین باز می‌شود.
rdp-accessترافیک ورودی TCP روی پورت 3389 (پورت پیش‌فرض Remote Desktop در ماشین‌های مجازی ویندوز) از تمامی مبداها باز می‌شود.
ssh-accessترافیک ورودی TCP روی پورت 22 (پورت پیش‌فرض SSH در ماشین‌های مجازی لینوکس) از تمامی مبداها باز می‌شود.
allow-access-from-sotoon-cdnاگر یک ماشین مجازی قصد دارد از CDN ستون برای ارتباط استفاده کند، این گروه ارتباط از مبدأ تمام لبه‌های CDN ستون به مقصد ماشین مجازی را باز می‌کند. در صورت به‌روزرسانی فهرست لبه‌های CDN، این گروه دسترسی به صورت خودکار به‌روزرسانی می‌شود و نیازی به مدیریت آن از سمت شما نیست.
allow-access-to-sotoon-iamدر ماشین‌های مجازی لینوکس این امکان وجود دارد که برای مدیریت دسترسی SSH به یک ماشین مجازی از سیستم مدیریت دسترسی (IAM) ستون استفاده کنید. برای این کار، ماشین مجازی باید با این سرویس ارتباط برقرار کند که با اختصاص این گروه دسترسی امن ممکن می‌شود. در صورت تغییر در مقاصد لازم برای دسترسی به IAM، این گروه به صورت خودکار به‌روزرسانی می‌شود.
full-egress-accessامکان برقراری ارتباط از مبدأ ماشین مجازی به تمامی مقاصد با تمامی پروتکل‌ها ممکن می‌شود.
subnet-XXXX-accessبه ازای هر سابنت شما یک گروه دسترسی امن با این نام ساخته می‌شود (به جای XXXX نام سابنت قرار می‌گیرد) که تمامی انواع ارتباط از مبدأ این سابنت و تمامی انواع ارتباط به مقصد این سابنت را باز می‌کند. برای نمونه با تخصیص این گروه به یک ماشین، هم آن ماشین می‌تواند با ماشین‌های این سابنت ارتباط بگیرد و هم ماشین‌های آن سابنت با این ماشین.

۶. تعریف گروه دسترسی امن

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

در این صفحه می‌توانید نام گروه دسترسی، توضیحات مربوط به آن و قانون‌های دسترسی را تعریف کنید. هر قانون دسترسی شامل ۴ ویژگی است که باید از سمت شما مشخص شود:

ویژگیتوضیحات
نوع قانونمشخص می‌کند این قانون روی ترافیک ورودی اعمال می‌شود یا خروجی.
پروتکلپروتکلی که این قانون روی آن اعمال می‌شود.
‏Range آی‌پی‏Rangeای که این قانون روی آن اعمال می‌شود؛ برای ترافیک ورودی Range مبدأ و برای ترافیک خروجی Range مقصد.
پورتپورتی از ماشین مجازی که اجازه ارتباط دارد.

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

۷. تخصیص گروه دسترسی امن به ماشین مجازی

هنگام ساخت ماشین مجازی، در گام «گروه دسترسی امن»، گروه‌های دسترسی امن مورد نظر خود را انتخاب کنید.

برای افزودن یا کاستن گروه‌های دسترسی یک ماشین مجازی موجود:

  1. وارد جزئیات ماشین مجازی شوید.
  2. وارد بخش «اینترفیس‌ها» شوید.
  3. برای هر interface شبکه‌ای که به ماشین مجازی متصل است، در بخش «گروه‌های دسترسی امن» گروه‌های مورد نظر خود را مشاهده و مدیریت کنید.

۸. فعال‌سازی گروه دسترسی امن روی یک interface

فعال‌سازی گروه دسترسی امن دو سطح دارد: سطح VPC و سطح interface. رابطه‌ی این دو به شکل زیر است:

  • اگر گروه دسترسی امن روی VPC فعال نشده باشد، می‌توانید آن را با این کلید برای هر interface به صورت جداگانه فعال کنید.
  • اگر گروه دسترسی امن روی VPC فعال شود، به صورت خودکار روی تمام interfaceهای آن VPC اعمال می‌شود و تنظیم جداگانه‌ی این کلید برای هر interface دیگر موضوعیت ندارد.

بنابراین این کلید ابزار مهاجرت تدریجی است؛ پیش از فعال شدن گروه دسترسی امن روی کل VPC به شما اجازه می‌دهد ماشین‌ها را یکی‌یکی به ساختار جدید منتقل کنید و از درستی تنظیمات مطمئن شوید.

در بخش «گروه‌های دسترسی امن» هر interface یک کلید (toggle) وجود دارد که رفتار شبکه‌ی آن interface را تعیین می‌کند:

  • کلید غیرفعال: ساختار پیشین روی این interface اعمال می‌شود؛ یعنی ارتباط پیش‌فرض داخل سابنت برقرار است و گروه‌های دسترسی امنی که در فهرست زیر آن دیده می‌شوند اعمال نمی‌شوند. این گروه‌ها به صورت کم‌رنگ نمایش داده می‌شوند.
  • کلید فعال: ساختار پیشین روی این interface غیرفعال می‌شود و تنها گروه‌های دسترسی امنی که به صراحت روی همین interface تعریف شده‌اند اعمال می‌شوند. از این پس هر ترافیکی که با این گروه‌ها مطابقت نداشته باشد drop می‌شود.

توجه

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

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

اگر این کلید یا بخش «گروه دسترسی امن» را در پنل خود مشاهده نمی‌کنید، این ویژگی برای فضای کاری شما فعال نشده است. برای فعال‌سازی، از طریق کانال اختصاصی پشتیبانی با ستون در ارتباط باشید. راهنمای ثبت درخواست در مستند راهنمای ثبت درخواست پشتیبانی در ستون آمده است.

۹. گروه دسترسی امن و Load Balancer

‏Load Balancer خود امکان اعمال هیچ سیاستی روی ترافیک را ندارد و نمی‌توان گروه دسترسی امن را روی آن تعریف کرد. برای محدود کردن ترافیکی که از طریق Load Balancer به سرویس شما می‌رسد، باید گروه دسترسی امن را روی ماشین‌های Upstream اعمال کنید.

‏Load Balancer روی ترافیک ورودی تنها یک DNAT ساده انجام می‌دهد و IP مبدأ اصلی دست‌نخورده باقی می‌ماند. بنابراین قانون‌های گروه دسترسی امن روی ماشین‌های Upstream را باید بر اساس Range آی‌پی کلاینت واقعی بنویسید، نه آدرس Load Balancer.

برای آشنایی با این سرویس به مستند Load Balancer مراجعه کنید.

مدیریت Load Balancerهای کوبرنتیز

‏Load Balancerهایی که توسط کلاستر کوبرنتیز ستون ساخته می‌شوند، از طریق API کوبرنتیز مدیریت می‌شوند. برای این موارد به مستندات سرویس کوبرنتیز ستون (SKE) مراجعه کنید.

۱۰. ماشین‌های متعلق به سرویس‌های مدیریت‌شده

برخی از ماشین‌های مجازی فضای کاری شما به سرویس‌های مدیریت‌شده‌ی ستون تعلق دارند و گروه دسترسی امن آن‌ها توسط خود آن سرویس مدیریت می‌شود.

توجه

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

برای کنترل گروه دسترسی امن این ماشین‌ها، از پنل یا API همان سرویس اقدام کنید.

۱۱. تکمیل فرایند مهاجرت

برای تکمیل مهاجرت از ساختار پیشین به ساختار جدید، مراحل زیر را انجام دهید:

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