فعال کردن اصالت‌سنجی Cassandra

به‌طور پیش‌فرض، Cassandra بدون فعال بودن احراز هویت نصب می‌شود. این یعنی هر کسی می‌تواند به Cassandra دسترسی داشته باشد. می‌توانید اصالت‌سنجی را پس‌از نصب Edge یا به‌عنوان بخشی از فرایند نصب فعال کنید.

می‌توانید بااستفاده از دستورات Cassandra CREATE/ALTER/DROP ROLES نقش‌ها را اضافه، حذف، و اصلاح کنید. برای اطلاعات بیشتر، به موارد زیر مراجعه کنید:

برخی ملاحظات کلی

  • به‌محض اینکه اصالت‌سنجی Cassandra را فعال کنید، ابرکاربر پیش‌فرضی به‌نام cassandra (با گذرواژه cassandra) به‌طور خودکار توسط Cassandra ایجاد می‌شود. این کاربر ارشد به‌طور گسترده‌ای شناخته‌شده است و نباید از این کاربر برای نیازهای تولید خود استفاده کنید. علاوه‌براین، اصالت‌سنجی ازطریق این کاربر ممتاز به یکپارچگی حدنصاب نیاز دارد. بنابراین، همه اتصال‌های Cassandra که ازطریق این کاربر اصالت‌سنجی می‌کنند به سازگاری سخت‌گیرانه‌تری نیاز دارند که منجر به عملکرد کندتر و با خطاپذیری کمتر می‌شود.
  • گردش کار معمول شامل فعال کردن اصالت‌سنجی در Cassandra درحالی‌که نام کاربری و گذرواژه سفارشی ازطریق فایل پیکربندی ارسال می‌شود. با این کار، کاربر و گذرواژه سفارشی ایجاد می‌شود که می‌توانید به‌طور ایمن برای نیازهایتان از آن استفاده کنید و اصالت‌سنجی ازطریق چنین کاربرانی محدودیت‌های یکپارچگی حدنصاب ندارد.
  • به‌خاطر داشته باشید که حتی اگر کاربر سفارشی ایجاد شده باشد، Cassandra همچنان کاربر ممتاز پیش‌فرض cassandra را ایجاد می‌کند و ازطریق کاربر ممتاز می‌توانید به خوشه Cassandra دسترسی داشته باشید. معمولاً باید از دستور ALTER ROLE برای تغییر گذرواژه این کاربر cassandra به چیزی غیراز cassandra پیش‌فرض پس‌از فعال شدن موفقیت‌آمیز اصالت‌سنجی Cassandra در سراسر Apigee استفاده کنید. گذرواژه را برای مراجعه‌های بعدی ثبت کنید.
  • نباید گذرواژه نقشی را که عناصر edge-* برای اصالت‌سنجی استفاده می‌کنند تغییر دهید، زیرا این کار بلافاصله باعث اختلال در سرویس می‌شود. درعوض، باید کاربر کاملاً جدیدی ایجاد کنید، عناصر edge-* را برای استفاده از کاربر جدید اصلاح کنید، و پس‌از تکمیل، کاربر قدیمی را بااستفاده از فرمان DROP ROLE حذف کنید.
  • برای تغییر نقش استفاده‌شده توسط عناصر edge-* برای اصالت‌سنجی Cassandra، این مراحل را دنبال کنید:
    1. برای ایجاد کاربر جدید، مراحل بخش فعال کردن اصالت‌سنجی را دنبال کنید. توجه داشته باشید که اگر ازقبل در خوشه‌تان اصالت‌سنجی فعال باشد و گذرواژه کاربر cassandra را تغییر داده باشید، باید ترکیب نام کاربری/گذرواژه کاربر موجود را ازطریق CASS_EXISTING_USERNAME و CASS_EXISTING_PASSWORD ارسال کنید.
    2. پس‌از تکمیل، ازطریق cqlsh تأیید کنید که می‌توانید ازطریق کاربر قدیمی و جدید به Cassandra متصل شوید.
    3. همه عناصر edge-* را به‌گونه‌ای تنظیم کنید که از کاربر جدید برای اتصال به Cassandra استفاده کنند. برای این کار، دستورالعمل‌های به‌روزرسانی عناصر Edge که به Cassandra متصل می‌شوند را دنبال کنید.
    4. درنهایت، وقتی همه عناصر از کاربر جدید برای ارتباط با Cassandra استفاده می‌کنند، می‌توانید کاربر قدیمی را بااستفاده از دستور DROP ROLE حذف کنید. توجه داشته باشید که نقش پیش‌فرض cassandra نباید حذف شود. می‌توانید نقش‌های سفارشی‌سازی‌شده‌ای را که توسط عناصر edge-* برای ارتباط با Cassandra استفاده نمی‌شوند حذف کنید.
  • به‌خاطر داشته باشید که نام کاربری و گذرواژه عملکردی Cassandra را در فایل پیکربندی که برای نصب یا ارتقای اجزای Edge استفاده می‌کنید به‌روز کنید. این کار هرگونه اختلال درطول عملیات لبه‌ای را ازبین می‌برد یا به حداقل می‌رساند.

فعال کردن اصالت‌سنجی Cassandra درطول نصب

می‌توانید اصالت‌سنجی Cassandra را در زمان نصب فعال کنید.

برای فعال کردن اصالت‌سنجی Cassandra در زمان نصب، ویژگی CASS_AUTH را در فایل پیکربندی برای همه گره‌های Cassandra اضافه کنید:

CASS_AUTH=y # The default value is n.

عناصر Edge زیر به Cassandra دسترسی دارند:

  • سرور مدیریت
  • پردازنده‌های پیام
  • رهیاب
  • سرورهای Qpid
  • سرورهای Postgres

وقتی این عناصر را نصب می‌کنید، باید نام کاربری و گذرواژه‌ای را در فایل پیکربندی تنظیم کنید:

CASS_USERNAME=cassandra_username
CASS_PASSWORD=cassandra_password

پس‌از نصب Cassandra می‌توانید اطلاعات اعتباری Cassandra را تغییر دهید. بااین‌حال، اگر قبلاً «سرور مدیریت»، «پردازشگرهای پیام»، «مسیریاب‌ها»، سرورهای Qpid، یا سرورهای Postgres را نصب کرده‌اید، باید این عناصر را نیز به‌روزرسانی کنید تا از اطلاعات اعتباری جدید استفاده کنید.

برای تغییر دادن اطلاعات اعتباری Cassandra پس‌از نصب Cassandra:

  1. بااستفاده از ابزار cqlsh و اعتبارنامه‌های پیش‌فرض، به سیستم یکی از گره‌های Cassandra وارد شوید. فقط باید گذرواژه را در یک گره تغییر دهید و این گذرواژه به همه گره‌های Cassandra در حلقه پخش خواهد شد:
    /opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra_username -p cassandra_password

    مکان:

    1. ‫cassIP نشانی IP گره Cassandra است.
    2. ‫9042 درگاه پیش‌فرض Cassandra است.
  2. فرمان زیر را در پیام‌واره cqlsh>‎ اجرا کنید تا گذرواژه را به‌روز کنید:
    ALTER ROLE <username> WITH PASSWORD='';
  3. همان‌طور که در مثال زیر نشان داده شده است، از ابزار cqlsh خارج شوید:
    exit
  4. اگر هنوز «سرور مدیریت»، «پردازشگرهای پیام»، «مسیریاب‌ها»، سرورهای Qpid، یا سرورهای Postgres را نصب نکرده‌اید، ویژگی‌های زیر را در فایل پیکربندی تنظیم کنید و سپس این مؤلفه‌ها را نصب کنید:
    CASS_USERNAME=cassandra_username
    CASS_PASSWORD=new_cassandra_password
  5. اگر قبلاً «سرور مدیریت»، «پردازشگرهای پیام»، «مسیریاب‌ها»، سرورهای Qpid، یا سرورهای Postgres را نصب کرده‌اید، برای اطلاع از رویه به‌روزرسانی این عناصر برای استفاده از گذرواژه جدید، بازنشانی گذرواژه‌های Edge را ببینید.

فعال کردن اصالت‌سنجی Cassandra پس‌از نصب

برای فعال کردن اصالت‌سنجی پس‌از نصب:

  • همه عناصر Edge را که به Cassandra متصل می‌شوند با نام کاربری و گذرواژه Cassandra به‌روز کنید.
  • اصالت‌سنجی را در همه گره‌های Cassandra فعال کنید، و نام کاربری و گذرواژه Cassandra را در هر یک از گره‌ها تنظیم کنید. فقط باید اطلاعات اعتباری را در یک گره Cassandra تغییر دهید و این اطلاعات به همه گره‌های Cassandra در حلقه پخش خواهد شد.

به‌روزرسانی اجزای Edge که به Cassandra متصل می‌شوند

از روش زیر برای به‌روزرسانی همه عناصر Edge که با Cassandra با اطلاعات اعتباری جدید ارتباط برقرار می‌کنند استفاده کنید. توجه داشته باشید که این مرحله را قبل‌از اینکه واقعاً اطلاعات اعتباری Cassandra را به‌روز کنید انجام می‌دهید:

  1. در گره «سرور مدیریت»، فرمان زیر را اجرا کنید:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server
      store_cassandra_credentials -u cassandra_username -p cassandra_password

    درصورت تمایل، می‌توانید فایلی را به فرمان ارسال کنید که حاوی نام کاربری و گذرواژه جدید باشد:

    apigee-service edge-management-server store_cassandra_credentials  -f configFile

    که در آن configFile شامل موارد زیر است:

    CASS_USERNAME=cassandra_username # Default is cassandra
    CASS_PASSWORD='cassandra_password' # Default is cassandra; wrap in single quotes if it includes special chars

    این فرمان به‌طور خودکار «سرور مدیریت» را بازراه‌اندازی می‌کند.

  2. برای هریک از سرویس‌های زیر، «مرحله ۱» را تکرار کنید:
    • همه پردازنده‌های پیام
    • همه رهیاب‌ها
    • همه سرورهای Qpid (edge-qpid-server)
    • سرورهای Postgres (edge-postgres-server)

    وقتی «مرحله ۱» را برای هر سرویس تکرار می‌کنید، edge-management-server را در فرمان بالا با نام سرویس مناسب جایگزین کنید. برای مثال، وقتی مرحله مربوط به سرویس «مسیریاب» را اجرا می‌کنید، از فرمان زیر استفاده کنید:

    /opt/apigee/apigee-service/bin/apigee-service edge-router
      store_cassandra_credentials -u cassandra -p cassandra

فعال کردن اصالت‌سنجی

از روش زیر برای فعال کردن اصالت‌سنجی Cassandra و تنظیم نام کاربری و گذرواژه استفاده کنید:

  1. فایل پیکربندی بی‌صدایی با محتوای نشان‌داده‌شده در زیر ایجاد کنید:
    # Specify IP address or DNS name of cassandra node
    IP1=192.168.1.1
    IP2=192.168.1.2
    IP3=192.168.1.3
    # Must resolve to IP address or DNS name of host
    HOSTIP=$(hostname -i)
    # Set to ‘y’ to enable Cassandra authentication.
    CASS_AUTH=y # Possible values are ‘y/n’
    # Cassandra username. If it does not exist, this user would be created as a SUPERUSER
    CASS_USERNAME=cassandra_username # Default value is cassandra - don't use for production
    # Cassandra Password. If CASS_USERNAME does not exist, create SUPERUSER with this as password
    CASS_PASSWORD=cassandra_password # Default value is cassandra - don't use for production
    # Space-separated IP/DNS names of the Cassandra hosts
    CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1"
    
    # Username of an existing C* user. Only needed if you have disabled or changed details of the default cassandra user(‘cassandra’)
    CASS_EXISTING_USERNAME=existing_cassandra_username
    # Password of an existing C* user. Only needed if you have disabled or change password of the default cassandra user(‘cassandra’)
    CASS_EXISTING_PASSWORD=existing_cassandra_password
    # Cassandra port
    CASS_PORT=9042 # The default port is 9042.
  2. وارد سیستم اولین گره Cassandra شوید و فرمان زیر را اجرا کنید:

    apigee-service apigee-cassandra enable_cassandra_authentication -f CONFIG

    به‌صورت اختیاری، می‌توانید دارایی‌ها را به‌عنوان آرگومان‌های دستور به نوشتار منتقل کنید، همان‌طور که در مثال زیر نشان داده شده است:

    CASS_AUTH=y HOSTIP=$(hostname -i) CASS_PORT=9042 CASS_EXISTING_USERNAME=existing_cassandra_username CASS_EXISTING_PASSWORD=existing_cassandra_password CASS_USERNAME=cassandra_username CASS_PASSWORD=cassandra_password  CASS_HOSTS="192.168.1.1:1,1 192.168.1.2:1,1 192.168.1.3:1,1" apigee-service apigee-cassandra enable_cassandra_authentication

    نکته‌ها:

    • برای اطلاعات اعتباری پیش‌فرض Cassandra، فرمان بالا اصالت‌سنجی Cassandra را فعال می‌کند و Cassandra را بازراه‌اندازی می‌کند.
    • برای اطلاعات اعتباری غیرپیش‌فرض، این فرمان عامل تکثیر را نیز تغییر می‌دهد، ابرکاربر ایجاد می‌کند، و تعمیر system_auth keyspace را اجرا می‌کند.
  3. مراحل ۱ و ۲ را در همه گره‌های Cassandra تکرار کنید.