مقدمه ای بر Apigee mTLS، مقدمه ای بر Apigee mTLS

ویژگی Apigee mTLS امنیت را به ارتباطات بین اجزای موجود در Edge برای کلاستر Private Cloud اضافه می کند.

نمای کلی معماری

Apigee mTLS برای ایجاد ارتباطات ایمن بین مؤلفه ها از یک سرویس مش استفاده می کند که اتصالات TLS ایمن و تأیید شده متقابل را بین مؤلفه ها برقرار می کند.

تصویر زیر اتصالات بین اجزای Apigee را نشان می دهد که Apigee mTLS ایمن می کند ( in red ). پورت های نشان داده شده در تصویر نمونه هایی هستند. برای فهرستی از محدوده هایی که هر جزء می تواند استفاده کند، به استفاده از پورت مراجعه کنید.

(توجه داشته باشید که پورت های نشان داده شده با "M" برای مدیریت کامپوننت استفاده می شوند و برای دسترسی سرور مدیریت باید روی کامپوننت باز باشند.)

همانطور که در نمودار بالا می بینید، Apigee mTLS امنیت را به اتصالات بین اکثر اجزای خوشه اضافه می کند، از جمله:

منبع مقصد
سرور مدیریت گره های روتر، MP، QPid، LDAP، Postgres، Zookeeper و Cassandra
روتر Loopback; گره های Qpid، Zookeeper و Cassandra
پردازشگر پیام Loopback; گره های Qpid، Zookeeper و Cassandra
ZooKeeper و Cassandra سایر گره های Zookeeper و Cassandra
رابط کاربری لبه SMTP (فقط برای IDP خارجی)
Postgres سایر گره های Postgres، Zookeeper و Cassandra

رمزگذاری/رمزگشایی پیام

مش سرویس Apigee mTLS شامل سرورهای Consul است که روی هر گره ZooKeeper در خوشه شما و خدمات Consul زیر در هر گره در خوشه اجرا می شود:

  • یک پراکسی خروجی که پیام های خروجی را در گره میزبان رهگیری می کند. این سرویس پیام های خروجی را قبل از ارسال به مقصد رمزگذاری می کند.
  • یک پروکسی ورودی که پیام های دریافتی را در گره میزبان رهگیری می کند. این سرویس پیام های دریافتی را قبل از ارسال به مقصد نهایی رمزگشایی می کند.

به عنوان مثال، هنگامی که سرور مدیریت پیامی را به روتر ارسال می کند، سرویس پراکسی egress پیام خروجی را رهگیری می کند، آن را رمزگذاری می کند و سپس آن را به روتر می فرستد. هنگامی که گره روتر پیام را دریافت می کند، سرویس پروکسی ورودی پیام را رمزگشایی می کند و سپس آن را برای پردازش به جزء روتر ارسال می کند.

همه اینها به طور شفاف برای اجزای Edge اتفاق می افتد: آنها از فرآیند رمزگذاری و رمزگشایی انجام شده توسط سرویس های پروکسی کنسول بی اطلاع هستند.

علاوه بر این، Apigee mTLS از ابزار iptables استفاده می کند، یک سرویس فایروال لینوکس که هدایت ترافیک را مدیریت می کند.

الزامات

Apigee mTLS یک روش استاندارد صنعتی برای پیکربندی و نصب مش سرویس ارائه می دهد. از مدیریت بسته و اتوماسیون پیکربندی پشتیبانی می کند.

از آنجایی که خدمات پراکسی Consul به‌عنوان تخصیص پورت برای فرآیندهای فردی به‌طور محکمی همراه هستند، تغییر به یک گره بر هر گره دیگر تأثیر می‌گذارد. در نتیجه، اگر توپولوژی شما تغییر کند، باید سرویس‌ها را در هر گره در خوشه پیکربندی و مجدداً راه‌اندازی کنید.

قبل از اینکه بتوانید Apigee mTLS را نصب کنید، محیط شما باید شرایط زیر را که در این بخش توضیح داده شده است را برآورده کند.

این الزامات عبارتند از:

  • Edge برای نسخه Private Cloud
  • مجموعه ای از برنامه های کاربردی که نصب و فعال شده اند
  • یک حساب کاربری با سطح مناسب از مجوزها
  • دستگاه مدیریت (توصیه می شود)

Edge برای الزامات Private Cloud

Apigee mTLS از نسخه زیر Edge برای Private Cloud پشتیبانی می کند (اما نه در همه پلتفرم های پشتیبانی شده، همانطور که در الزامات سیستم عامل توضیح داده شده است):

  • 4.19.06
  • 4.19.01

Apigee mTLS مستلزم آن است که خوشه ابر خصوصی شما از توپولوژی استفاده کند که شامل حداقل سه گره Zookeeper باشد. در نتیجه، Apigee mTLS را فقط می‌توانید روی توپولوژی‌هایی نصب کنید که از 5، 9، 12 (مرکز چند داده) یا 13 گره استفاده می‌کنند. برای اطلاعات بیشتر، توپولوژی های نصب را ببینید.

الزامات سیستم عامل

Apigee mTLS از پلتفرم های زیر برای کلاستر Private Cloud شما پشتیبانی می کند (سیستم عامل پشتیبانی شده برای mTLS به نسخه Private Cloud بستگی دارد):

سیستم عامل پشتیبانی از نسخه ابر خصوصی
نسخه 4.19.06 v4.50.00 v4.51.00
CentOS
RedHat Enterprise Linux (RHEL)
اوراکل لینوکس
7.5، 7.6، 7.7 7.5، 7.6، 7.7، 7.8، 7.9 7.5، 7.6، 7.7، 7.8، 7.9، 8.0

آب و برق / بسته ها

Apigee mTLS مستلزم این است که قبل از شروع فرآیند نصب، بسته‌های زیر را روی هر دستگاه در کلاستر خود، از جمله دستگاه مدیریت خود، نصب و فعال کنید:

ابزار/بسته شرح برای حذف پس از نصب خوب است؟
base64 داده های داخل اسکریپت های نصب را تأیید می کند.
gnu-bash
gnu-sed
gnu-grep
توسط اسکریپت نصب و سایر ابزارهای رایج استفاده می شود.
iptables جایگزین فایروال پیش فرض، firewalld می شود.
iptables-services عملکردی را به ابزار iptables ارائه می دهد.
lsof توسط اسکریپت نصب استفاده می شود.
nc مسیرهای iptables را تأیید می کند.
openssl در طول فرآیند بوت استرپ اولیه گواهی ها را به صورت محلی امضا می کند.

در حین نصب، بسته Consul را نیز روی دستگاه مدیریت نصب می‌کنید تا بتوانید اعتبار و کلید رمزگذاری را تولید کنید.

بسته apigee-mtls سرورهای Consul شامل پراکسی های ورودی و خروجی را در گره های ZooKeeper در خوشه نصب و پیکربندی می کند.

مجوزهای حساب کاربری

حسابی که نصب mTLS Apigee را روی هر گره در خوشه اجرا می‌کند باید بتواند:

  • شروع، توقف، راه اندازی مجدد، و مقداردهی اولیه اجزای Apigee
  • قوانین فایروال را تنظیم کنید
  • یک حساب کاربری جدید سیستم عامل/سیستم ایجاد کنید
  • خدمات را با systemctl فعال، غیرفعال، شروع، توقف و ماسک کنید

دستگاه مدیریت (توصیه می شود)

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

  1. HashiCorp Consul 1.6.2 را نصب کنید.
  2. تولید و توزیع یک جفت گواهی/کلید و کلید رمزگذاری شایعات.
  3. فایل پیکربندی را به روز رسانی و توزیع کنید.

ماشین مدیریت نیاز دارد که:

  • همانطور که در Install Edge apigee-setup utility توضیح داده شده است، ابزارهای apigee-service و apigee-setup دانلود و نصب کرده اید.
  • دسترسی scp/ssh به تمام گره‌های خوشه دارد. برای توزیع فایل پیکربندی و اعتبارنامه خود، باید دسترسی scp/ssh به همه میزبان‌های درون خوشه داشته باشید.
  • شما به دستگاه مدیریت دسترسی روت دارید.

استفاده و تخصیص پورت

این بخش استفاده از پورت و تخصیص پورت را برای پشتیبانی از ارتباطات کنسول با Apigee mTLS توضیح می‌دهد.

استفاده از پورت: همه گره هایی که apigee-mtls را اجرا می کنند

تمام گره‌های خوشه که از سرویس apigee-mtls استفاده می‌کنند باید اجازه اتصال از سرویس‌های روی لوکال هاست را بدهند (127.0.0.1). این به پراکسی‌های کنسول اجازه می‌دهد تا هنگام پردازش پیام‌های دریافتی و خروجی، با سرویس‌های دیگر ارتباط برقرار کنند.

استفاده از پورت: گره های سرور کنسول (گره هایی که ZooKeeper را اجرا می کنند)

شما باید اکثر پورت های زیر را در گره های سرور Consul (گره هایی که ZooKeeper را اجرا می کنند) باز کنید تا درخواست های همه گره های خوشه را بپذیرید:

گره پورت سرور کنسول شرح پروتکل mtls-agent های خارجی را مجاز کنید
*
سرور کنسول (گره های ZooKeeper) 8300 همه سرورهای Consul را در خوشه متصل می کند. RPC
8301 عضویت و پیام های پخش شده را در خوشه مدیریت می کند. UDP/TCP
8302 پورت WAN که عضویت و پخش پیام ها را در یک پیکربندی مرکز داده چندگانه مدیریت می کند. UDP/TCP
8500 اتصالات HTTP به APIهای سرور Consul را از فرآیندهای روی همان گره مدیریت می کند.

این پورت برای ارتباط یا هماهنگی از راه دور استفاده نمی شود. فقط در لوکال هاست گوش می دهد.

HTTP
8502 اتصالات gRPC+HTTPS به APIهای سرور Consul را از سایر گره‌ها در خوشه مدیریت می‌کند. gRPC+HTTPS
8503 اتصالات HTTPS به APIهای سرور Consul را از سایر گره‌ها در خوشه مدیریت می‌کند. HTTPS
8600 DNS سرور کنسول را مدیریت می کند. UDP/TCP
* Apigee توصیه می کند که درخواست های ورودی را فقط به اعضای خوشه محدود کنید (از جمله داده های متقابل). شما می توانید این کار را با iptables انجام دهید.

همانطور که این جدول نشان می دهد، گره هایی که مؤلفه consul-server (گره های ZooKeeper) را اجرا می کنند، باید پورت های 8301، 8302، 8502 و 8503 را برای همه اعضای خوشه ای که سرویس apigee-mtls را اجرا می کنند، حتی در مراکز داده باز کنند. گره هایی که ZooKeeper را اجرا نمی کنند نیازی به باز کردن این پورت ها ندارند.

تخصیص پورت برای همه گره های کنسول ( از جمله گره هایی که ZooKeeper را اجرا می کنند)

برای پشتیبانی از ارتباطات Consul، گره‌هایی که اجزای Apigee زیر را اجرا می‌کنند باید اجازه اتصالات خارجی به پورت‌ها را در محدوده‌های زیر بدهند:

کامپوننت Apigee دامنه تعداد پورت های مورد نیاز در هر گره
Apigee mTLS 10700 تا 10799 1
کاساندرا 10100 تا 10199 2
پردازشگر پیام 10500 تا 10599 2
OpenLDAP 10200 تا 10299 1
Postgres 10300 تا 10399 3
Qpid 10400 تا 10499 2
روتر 10600 تا 10699 2
نگهبان باغ وحش 10001 تا 10099 3

کنسول پورت ها را به صورت خطی ساده اختصاص می دهد. به عنوان مثال، اگر خوشه شما دارای دو گره Postgres است، گره اول از دو پورت استفاده می کند، بنابراین Consul پورت های 10300 و 10301 را به آن اختصاص می دهد. گره دوم نیز از دو پورت استفاده می کند، بنابراین Consol 10302 و 10303 را به آن گره اختصاص می دهد. این برای همه انواع اجزا اعمال می شود.

همانطور که می بینید، تعداد واقعی پورت ها به توپولوژی بستگی دارد: اگر خوشه شما دارای دو گره Postgres است، باید چهار پورت را باز کنید (دو گره برابر دو پورت هر کدام).

به موارد زیر توجه کنید:

  • پروکسی‌های کنسول نمی‌توانند در پورت‌های مشابه سرویس‌های Apigee گوش دهند.
  • کنسول فقط یک فضای آدرس پورت دارد. تخصیص پورت های پروکسی کنسول باید در سراسر خوشه، که شامل مراکز داده است، منحصر به فرد باشد. این بدان معنی است که اگر پراکسی A در میزبان A به پورت 15000 گوش می دهد، پروکسی B در میزبان B نمی تواند به پورت 15000 گوش دهد.
  • همانطور که قبلا توضیح داده شد، تعداد پورت های استفاده شده بر اساس توپولوژی متفاوت است.

در پیکربندی چند مرکز داده ، همه میزبان هایی که mTLS را اجرا می کنند باید پورت 8302 را نیز باز کنند.

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

محدودیت ها

Apigee mTLS دارای محدودیت های زیر است:

  • ارتباطات بین گره ای کاساندرا را رمزگذاری نمی کند (پورت 7000)
  • پیکربندی و راه اندازی بی تاثیر نیست . این بدان معنی است که اگر یک تغییر را در یک گره ایجاد کنید، باید همان تغییر را در همه گره ها ایجاد کنید. سیستم آن تغییر را انتخاب نمی کند و آن را در گره های دیگر برای شما اعمال نمی کند. برای اطلاعات بیشتر، به تغییر پیکربندی موجود apigee-mtls مراجعه کنید.

واژه شناسی

این بخش از اصطلاحات زیر استفاده می کند:

مدت، اصطلاح تعریف
خوشه گروهی از ماشین‌هایی که Edge شما را برای نصب Private Cloud تشکیل می‌دهند.
کنسول مش سرویس استفاده شده توسط Apigee mTLS. برای اطلاعات در مورد اینکه کنسول چگونه ارتباطات ابر خصوصی شما را ایمن می‌کند، به مدل امنیتی کنسول مراجعه کنید.
mTLS TLS احراز هویت متقابل.
مش سرویس یک شبکه همپوشانی (یا یک شبکه در یک شبکه).
TLS امنیت لایه تراکنش یک پروتکل احراز هویت استاندارد صنعتی برای ارتباطات ایمن.