فعالسازی Elasticsearch security features و تنظیم نام کاربری و رمزعبور برای elasticsearch داخل جنگو

سلام و درود،
اگر با elasticsearch کار کرده باشید اخیرا در حد ۳ ماهی میشه که داخل کیبانا یه اخطار میده که security ساده ای را به صورت رایگان برای الستیک سرچ ارائه داده و برای اینکه مطمین بشید یه بیت داده هم از دست نمیدید این security رو فعال کنید.

فعال کردن خود security کار سختی نیست و با اضافه و تغییر دو خط کد داخل کانفیگ elasticsearch حل میشه که می تونید اینجا آموزشش رو ببینید.

ابتدا Kibana و Elasticsearch را غیر فعال کنید.

sudo systemctl stop kibana.service
sudo systemctl stop elasticsearch

حال کافیست فایل کانفیگ رو تغییر دهیم. فایل کانفیگ داخل /etc/elasticsearch قرار دارد.

دو خط زیر رو اضافه کنید و تمام:

xpack.security.enabled: true

discovery.type: single-node

اما بحث اصلی اینجاست که با فعال کردن این ویژگی امنیتی دیگه باید با user و password با الستیک سرچ ارتباط برقرار کرد.

برای همین کافیست فقط داخل settings.py آدرس URL مربوط به elasticsearch رو با نام کاربری و رمز عبور بفرستید.

کار شاق و سختی نیست ولی من از روش زیر نام کاربری و رمز عبور رو ارسال می کنم، احتمالا مفید باشه:

from urllib.parse import quote_plus as urlquote

elk_base_url = 'elasticsearch://{user_name}:{password}@{host_ip}:{host_port}'
elastic_search_url = elk_base_url.format(user_name='my_username',
                                         password=urlquote('mysecret_password'),
                                         # password may contain special characters
                                         host_ip='my-elastic-host-ip',
                                         host_port=9200)
ELASTICSEARCH_DSL = {
    'default': {
        'hosts': [elastic_search_url]
    },
}