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

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

คุณสามารถเพิ่ม นําออก และแก้ไขบทบาทได้โดยใช้คำสั่ง CREATE/ALTER/DROP ROLES ของ Cassandra ดูข้อมูลเพิ่มเติมได้ที่

ข้อควรพิจารณาทั่วไป

  • เมื่อคุณเปิดใช้การตรวจสอบสิทธิ์ Cassandra ระบบของ Cassandra จะสร้างผู้ใช้ขั้นสูงเริ่มต้น cassandra (ซึ่งมีรหัสผ่าน cassandra) โดยอัตโนมัติ ซึ่งเป็นผู้ใช้ขั้นสูงที่รู้จักกันอย่างกว้างขวาง และคุณไม่ควรใช้ผู้ใช้นี้สำหรับการใช้งานจริง นอกจากนี้ การตรวจสอบสิทธิ์ผ่านผู้ใช้ที่ดูแลระบบนี้ต้องมีความสอดคล้องกันตามจํานวน quorum ดังนั้นการเชื่อมต่อทั้งหมดกับ 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. เข้าสู่ระบบโหนด 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. หากยังไม่ได้ติดตั้งเซิร์ฟเวอร์การจัดการ เครื่องประมวลผลข้อความ รูทเตอร์ เซิร์ฟเวอร์ 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 สำหรับบริการต่อไปนี้
    • Message Processor ทั้งหมด
    • เราเตอร์ทั้งหมด
    • เซิร์ฟเวอร์ 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 ทั้งหมด