เปิดใช้การตรวจสอบสิทธิ์ Cassandra

โดยค่าเริ่มต้น Cassandra จะติดตั้งโดยไม่ได้เปิดใช้การตรวจสอบสิทธิ์ ซึ่งหมายความว่าทุกคนสามารถเข้าถึง Cassandra ได้ คุณสามารถเปิดใช้การตรวจสอบสิทธิ์หลังจากติดตั้ง Edge หรือเป็นส่วนหนึ่งของกระบวนการติดตั้ง

คุณสามารถเพิ่ม นำออก และแก้ไขบทบาทได้โดยใช้คำสั่ง 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 การดำเนินการนี้จะช่วยลดหรือขจัดปัญหาที่อาจเกิดขึ้นระหว่างการดำเนินการ 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 แล้ว อย่างไรก็ตาม หากคุณได้ ติดตั้งเซิร์ฟเวอร์การจัดการ Message Processor เราเตอร์ เซิร์ฟเวอร์ Qpid หรือเซิร์ฟเวอร์ Postgres แล้ว คุณจะต้องอัปเดตคอมโพเนนต์เหล่านั้นให้ใช้ข้อมูลเข้าสู่ระบบใหม่ด้วย

วิธีเปลี่ยนข้อมูลเข้าสู่ระบบ Cassandra หลังจากติดตั้ง Cassandra

  1. เข้าสู่ระบบโหนด Cassandra โหนดใดโหนดหนึ่งโดยใช้เครื่องมือ cqlsh และข้อมูลเข้าสู่ระบบเริ่มต้น คุณต้องเปลี่ยนรหัสผ่านในโหนดเดียวเท่านั้น และระบบจะออกอากาศรหัสผ่านไปยังโหนด 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. หากคุณยังไม่ได้ ติดตั้งเซิร์ฟเวอร์การจัดการ Message Processor เราเตอร์ เซิร์ฟเวอร์ Qpid หรือเซิร์ฟเวอร์ Postgres ให้ตั้งค่าพร็อพเพอร์ตี้ต่อไปนี้ใน ไฟล์การกำหนดค่า แล้วติดตั้งคอมโพเนนต์เหล่านั้น
    CASS_USERNAME=cassandra_username
    CASS_PASSWORD=new_cassandra_password
  5. หากคุณได้ติดตั้ง เซิร์ฟเวอร์การจัดการ โปรเซสเซอร์ข้อความ เราเตอร์ เซิร์ฟเวอร์ Qpid หรือเซิร์ฟเวอร์ Postgres แล้ว โปรดดูหัวข้อ การรีเซ็ตรหัสผ่าน Edge เพื่อดูขั้นตอนการอัปเดตคอมโพเนนต์เหล่านั้นให้ใช้รหัสผ่านใหม่

เปิดใช้การตรวจสอบสิทธิ์ 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. ทำซ้ำขั้นตอนที่ 1 สำหรับบริการต่อไปนี้
    • โปรเซสเซอร์ข้อความทั้งหมด
    • เราเตอร์ทั้งหมด
    • เซิร์ฟเวอร์ Qpid ทั้งหมด (edge-qpid-server)
    • เซิร์ฟเวอร์ Postgres (edge-postgres-server)

    เมื่อทำซ้ำขั้นตอนที่ 1 สำหรับแต่ละบริการ ให้แทนที่ 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. ทำซ้ำขั้นตอนที่ 1 และ 2 ในโหนด Cassandra ทั้งหมด