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

Edge for Private Cloud نسخه ۴.۱۹.۰۱

ویژگی 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 روشی استاندارد در صنعت برای پیکربندی و نصب شبکه سرویس ارائه می‌دهد. این ابزار از مدیریت بسته و خودکارسازی پیکربندی پشتیبانی می‌کند.

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

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

این الزامات شامل موارد زیر است:

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

الزامات Edge for the Private Cloud

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

  • 4.19.06
  • 4.19.01

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

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

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

سیستم‌عامل نسخه پشتیبانی‌شده فضای ابری خصوصی
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 مستلزم این است که قبل‌از شروع فرایند نصب، بسته‌های زیر را در هر دستگاه در خوشه‌تان، ازجمله دستگاه سرپرستی، نصب و فعال کرده باشید:

برنامه کمکی/بسته شرح بعداز نصب برداشته شود؟
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 به همه گره‌های خوشه دسترسی دارد. برای توزیع فایل پیکربندی و اعتبارنامه‌هایتان، باید دسترسی 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 امنیت لایه انتقال. پروتکل اصالت‌سنجی استاندارد صنعتی برای ارتباطات امن.