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

ویژگی Apigee mTLS امنیت ارتباطات بین مؤلفه‌ها را در Edge برای خوشه Private Cloud اضافه می‌کند. این ابزار روشی مطابق با استانداردهای صنعت برای پیکربندی و نصب مش سرویس ارائه می‌دهد. این ابزار از مدیریت بسته و خودکارسازی پیکربندی پشتیبانی می‌کند.

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

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

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

(توجه داشته باشید که درگاه‌های مشخص‌شده با «M» برای مدیریت مؤلفه استفاده می‌شوند و باید در مؤلفه برای دسترسی توسط «سرور مدیریت» باز باشند.)

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

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

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

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

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

برای مثال، وقتی «سرور مدیریت» پیامی به «مسیریاب» ارسال می‌کند، سرویس پیشکار خروجی پیام ارسالی را رهگیری می‌کند، آن را رمزگذاری می‌کند، و سپس آن را به «مسیریاب» ارسال می‌کند. وقتی گره «مسیریاب» پیام را دریافت می‌کند، پیشکار ورودی پیام را رمزگشایی می‌کند و سپس آن را برای پردازش به مؤلفه «مسیریاب» ارسال می‌کند.

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

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

الزامات

قبل‌از اینکه بتوانید Apigee mTLS را نصب کنید، محیط شما باید الزامات زیر را برآورده کند:

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

نسخه، پلاتفرم، و توپولوژی

جدول زیر الزامات mTLS را فهرست می‌کند:

الزام شرح
نسخه‌ها
  • 4.51.00
  • 4.50.00
  • 4.19.06
توپولوژی باید حداقل سه گره Zookeeper داشته باشد. درنتیجه، فقط می‌توانید Apigee mTLS را در توپولوژی‌هایی نصب کنید که از ۵، ۹، ۱۲ (چند مرکز داده)، یا ۱۳ گره استفاده می‌کنند. برای اطلاعات بیشتر، به توپولوژی‌های نصب مراجعه کنید.
پلاتفرم‌ها/سیستم‌عامل‌ها

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

سیستم‌عامل نسخه پشتیبانی‌شده فضای ابری خصوصی
v4.19.06 v4.50.00 v4.51.00
CentOS
RedHat Enterprise Linux (RHEL)
Oracle Linux
‫۷.۵، ۷.۶، ۷.۷ ‫۷.۵،‏ ۷.۶،‏ ۷.۷،‏ ۷.۸،‏ ۷.۹ 7.5, 7.6, 7.7, 7.8, 7.9, 8.0

توجه داشته باشید که Apigee mTLS لزوماً از همه سیستم‌عامل‌هایی که توسط نسخه مربوطه Apigee Edge برای Private Cloud که روی آن اجرا می‌شود پشتیبانی نمی‌کند.

برای مثال، اگر نسخه v4.19.06 از CentOS x و y پشتیبانی می‌کند، لزوماً به این معنی نیست که Apigee mTLS در CentOS x و y برای نسخه v4.19.06 پشتیبانی می‌شود.

برنامه‌های کمکی/بسته‌ها

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

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

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

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

اجازه‌های حساب کاربر

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

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

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

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

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

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

هنگام راه‌اندازی دستگاه مدیریت:

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

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

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

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

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

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

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

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

از این درگاه برای ارتباط یا هماهنگی ازراه‌دور استفاده نمی‌شود؛ این درگاه فقط در localhost گوش می‌دهد.

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

همان‌طور که این جدول نشان می‌دهد، گره‌هایی که مؤلفه consul-server را اجرا می‌کنند (گره‌های ZooKeeper) باید درگاه‌های ۸۳۰۱، ۸۳۰۲، ۸۵۰۲، و ۸۵۰۳ را برای همه اعضای خوشه‌ای که سرویس apigee-mtls را اجرا می‌کنند، حتی در مراکز داده، باز کنند. گره‌هایی که ZooKeeper را اجرا نمی‌کنند نیازی به باز کردن این درگاه‌ها ندارند.

تخصیص درگاه برای همه گره‌های Consul (ازجمله گره‌های درحال اجرای ZooKeeper)

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

Apigee Component بُرد تعداد درگاه‌های موردنیاز برای هر گره
Apigee mTLS ‫۱۰۷۰۰ تا ۱۰۷۹۹ 1
Cassandra ۱۰۱۰۰ تا ۱۰۱۹۹ 2
پردازشگر پیام ‫۱۰۵۰۰ تا ۱۰۵۹۹ 2
OpenLDAP ‫۱۰۲۰۰ تا ۱۰۲۹۹ 1
Postgres ‫۱۰۳۰۰ تا ۱۰۳۹۹ 3
Qpid ‫۱۰۴۰۰ تا ۱۰۴۹۹ 2
رهیاب ‫۱۰۶۰۰ تا ۱۰۶۹۹ 2
ZooKeeper ‫۱۰۰۰۰ تا ۱۰۰۹۹ 3

کنسول درگاه‌ها را به‌صورت خطی ساده اختصاص می‌دهد. برای مثال، اگر خوشه‌تان دو گره Postgres داشته باشد، گره اول از دو درگاه استفاده می‌کند، بنابراین Consul درگاه‌های ۱۰۳۰۰ و ۱۰۳۰۱ را به آن اختصاص می‌دهد. گره دوم نیز از دو درگاه استفاده می‌کند، بنابراین Consol درگاه‌های ۱۰۳۰۲ و ۱۰۳۰۳ را به آن گره اختصاص می‌دهد. این مورد برای همه انواع مؤلفه اعمال می‌شود.

As you can see, the actual number of ports depends on topology: If your cluster has two Postgres nodes, then you'll need to open four ports (two nodes times two ports each).

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

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

در پیکربندی مرکز چندداده‌ای، همه میزبان‌هایی که mTLS را اجرا می‌کنند باید درگاه ۸۳۰۲ را نیز باز کنند.

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

محدودیت‌ها

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

  • ارتباطات Cassandra بین گره‌ها را رمزگذاری نمی‌کند (درگاه ۷۰۰۰)
  • پیکربندی و راه‌اندازی یکسان‌توان نیست. این یعنی اگر تغییری در یک گره ایجاد کنید، باید همان تغییر را در همه گره‌ها ایجاد کنید؛ سیستم آن تغییر را در هیچ گره دیگری برای شما اعمال نمی‌کند. برای اطلاعات بیشتر، به تغییر پیکربندی apigee-mtls موجود مراجعه کنید.

اصطلاحات

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

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