ویژگی 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 را نصب کنید، محیط شما باید شرایط زیر را داشته باشد:
- الزامات نسخه، پلت فرم و توپولوژی
- ابزارهای کمکی نصب و فعال شدند
- حساب کاربری با سطح مناسبی از مجوزها
- دستگاه مدیریت (توصیه می شود)
- استفاده از پورت
بخش های بعدی هر یک از این الزامات را به تفصیل شرح می دهند.
نسخه، پلتفرم و توپولوژی
جدول زیر الزامات mTLS را فهرست می کند:
مورد نیاز | شرح | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
نسخه ها |
| ||||||||||||
توپولوژی | باید شامل حداقل سه گره Zookeeper باشد. در نتیجه، Apigee mTLS را فقط میتوانید روی توپولوژیهایی نصب کنید که از 5، 9، 12 (مرکز چند داده) یا 13 گره استفاده میکنند. برای اطلاعات بیشتر، توپولوژی های نصب را ببینید. | ||||||||||||
پلتفرم ها/سیستم های عامل | برای تعیین اینکه آیا Apigee mTLS در یک سیستم عامل خاص پشتیبانی می شود یا خیر از مقادیر زیر استفاده کنید:
توجه داشته باشید که Apigee mTLS لزوماً از همه سیستمعاملهایی که توسط نسخه مربوطه Apigee Edge برای Private Cloud پشتیبانی میشوند، پشتیبانی نمیکند. به عنوان مثال، اگر نسخه 4.19.06 از CentOS x و y پشتیبانی می کند، لزوماً به این معنی نیست که Apigee mTLS در CentOS x و y برای نسخه 4.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 در خوشه نصب و پیکربندی می کند.
مجوزهای حساب کاربری
قبل از نصب، یک حساب کاربری جدید ایجاد کنید یا اطمینان حاصل کنید که به حسابی که دارای امتیازات بالاتر است دسترسی دارید.
حسابی که نصب mTLS Apigee را روی هر گره در خوشه اجرا میکند باید بتواند:
- شروع، توقف، راه اندازی مجدد، و مقداردهی اولیه اجزای Apigee
- قوانین فایروال را تنظیم کنید
- یک حساب کاربری جدید سیستم عامل/سیستم ایجاد کنید
- خدمات را با
systemctl
فعال، غیرفعال، شروع، توقف و ماسک کنید
دستگاه مدیریت (توصیه می شود)
Apigee توصیه می کند که یک گره در کلاستر داشته باشید که می توانید وظایف اداری مختلفی را که در این سند شرح داده شده است، انجام دهید، از جمله:
- HashiCorp Consul 1.6.2 را نصب کنید.
- تولید و توزیع یک جفت گواهی/کلید و کلید رمزگذاری شایعات.
- فایل پیکربندی را به روز رسانی و توزیع کنید.
هنگام راه اندازی دستگاه مدیریت:
- اطمینان حاصل کنید که به آن دسترسی ریشه دارید.
- همانطور که در Install Edge apigee-setup utility توضیح داده شده است،
apigee-service
وapigee-setup
utilities را بر روی آن دانلود و نصب کنید. - اطمینان حاصل کنید که می توانید از
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 | امنیت لایه تراکنش یک پروتکل احراز هویت استاندارد صنعتی برای ارتباطات ایمن. |