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

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

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

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

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

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

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

منبع مقصد
سرور مدیریت گره‌های رهیاب، 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 را نصب کنید، محیط شما باید الزامات زیر را برآورده کند:

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

الزامات توپولوژی

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

کاربردهای/بسته‌ها

‫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 نسخه ۱.۶.۲ را نصب کنید.
  2. تولید و توزیع جفت گواهینامه/کلید و کلید رمزگذاری شایعه.
  3. فایل پیکربندی را به‌روزرسانی و توزیع کنید.

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

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

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

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

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

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

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

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

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

این درگاه برای ارتباط یا هماهنگی از دور استفاده نمی‌شود؛ فقط در 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 بُرد تعداد درگاه‌های موردنیاز برای هر گره
‫Apigee mTLS ۱۰۷۰۰ تا ۱۰۷۹۹ 1
Cassandra ‫۱۰۱۰۰ تا ۱۰۱۹۹ 2
پردازشگر پیام ۱۰۵۰۰ تا ۱۰۵۹۹ 2
SymasLDAP ‫۱۰۲۰۰ تا ۱۰۲۹۹ 1
Postgres ۱۰۳۰۰ تا ۱۰۳۹۹ 3
Qpid ۱۰۴۰۰ تا ۱۰۴۹۹ 2
رهیاب ۱۰۶۰۰ تا ۱۰۶۹۹ 2
ZooKeeper ‫۱۰۰۰۰ تا ۱۰۰۹۹ 3

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

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

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

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

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

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

محدودیت‌ها

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

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

اصطلاحات

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

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