با ارائهی نسخهی 8 از سرویس Elasticsearch تغییرات و بهبودهای مهمی در این سرویس اعمال شده است. در ادامه این موارد بررسی خواهند شد:
قابلیت سازگاری API ها با نسخهی 7 به بالا (REST API compatibility)
نسخهی 8 شامل تغییرات متعددی در API ها است که منجر به breaking change خواهند شد. به دلیل سازگاری بهتر کلاینتهای Elasticsearch، امکان افزودن header های سازگاری API در نسخهی 8 اضافه شده است. با این روش میتوان پس از بروزرسانی سرویس Elasticsearch، همچنان از API های نسخهی 7 تا قبل از بروزرسانی کلاینت Elasticsearch به نسخهی 8 و یا برطرف کردن breaking change ها، استفاده کرد.
توجه: منظور از "کلاینت Elasticsearch"، پکیجی است که در زبانهای مختلف برنامهنویسی توسط تیم رسمی Elastic توسعه داده شده است تا از طریق آن بتوان API های Elasticsearch را در کد پروژه اجرا کرد.
با توجه به این قابلیت چنانچه سرویس Elasticsearch به نسخه 8 بروزرسانی شده اما هنوز از کلاینت نسخه 7 در برنامهتان استفاده کنید، اگر در request ارسالی توسط کلاینت، header های زیر تنظیم شده باشند، به صورت خودکار request و response سازگار با نسخهی 7 پردازش خواهد شد: 3.5
Accept: "application/vnd.elasticsearch+json;compatible-with=7"
Content-Type: "application/vnd.elasticsearch+json;compatible-with=7"
فعال شدن خودکار تنظیمات Basic security و پروتکل TLS
در نسخههای پایینتر از 8، تنظیمات authorization ،authentication و TLS باید به صورت دستی فعال شود. در نسخهی 8 ضمن نصب و راهاندازی الستیک سرچ به صورت خودکار موارد زیر انجام میشود:
- فعالسازی basic authentication و ایجاد رمز عبور برای کاربر elastic: در پایان فرایند نصب سرویس، برای کاربر elastic (کاربر superuser مخصوص سرویس Elasticsearch که به صورت built-in تعریف شده است)، رمز عبوری تولید شده و در اختیار شما قرار میگیرد. همچنین در تنظیمات سرویس، سطح امنیت basic (استفاده از رمز عبور و نام کاربری برای اتصال به Elasticsearch) به صورت خودکار فعال میشود.
- فعالسازی تنظیمات TLS: پس از نصب سرویس، تنظیمات TLS (SSL) برای لایهی transport (ارتباط داخلی بین node ها) و لایهی http (ارتباط بین Elasticsearch با سایر برنامهها) فعال میشود. این فرایند شامل موارد زیر است:
- گواهینامه و کلیدهای TLS در مسیر تنظیمات سرویس ایجاد میشوند که شامل فایلهای http.p12 ،http_ca.crt و transport.p12 میباشد.
- تنظیمات مربوط به TLS برای هر دو لایهی transport و http در فایل elasticsearch.yml ثبت میشوند!
- تنظیم دسترسی شبکه در لایهی http: در ادامهی موارد فوق که به صورت خودکار در تنظیمات Elasticsearch ایجاد میشوند، دسترسی host در لایهی http نیز برخلاف نسخههای قبل که به صورت پیشفرض روی (127.0.0.1) _local_ تنظیم شده بود، در این نسخه بر روی _local_ و _site_ تنظیم میشود (به عبارتی آدرسهای موجود در شبکه داخلی نیز میتوانند به سرور Elasticsearch به صورت پیشفرض دسترسی داشته باشند). جزییات این موارد در بخش "تنظیمات Elasticsearch و سیستم قبل از شروع به کار" توضیح داده شده است!
محافظت بهتر از ایندکسهای سیستمی
در نسخهی 8 دسترسی مستقیم به ایندکسهای سیستمی و تغییر در آنها محدود شده است و حتی کاربر elastic به صورت پیشفرض دسترسی مشاهده و تغییر ندارد!