คู่มือ Encryption in Transit Add-On สำหรับ ฐานข้อมูล
คู่มือนี้เรียบเรียงสำหรับ Ruk-Com PaaS หน้าจอและตัวเลือกอาจแตกต่างตามเวอร์ชันและสิทธิ์ของบัญชี
ตรวจสอบ Environment, Region, สิทธิ์บัญชี และสำรองค่าปัจจุบันก่อนดำเนินการกับระบบจริง
คำสั่ง ชื่อเมนู พารามิเตอร์ และค่าตัวอย่างในกรอบ Code คงรูปแบบตามระบบเพื่อให้คัดลอกและตรวจสอบได้ถูกต้อง
แพลตฟอร์มนี้มีส่วนเสริมในตัวที่ใช้ “การเข้ารหัสระหว่างทาง” ฟังก์ชันการทำงานสำหรับโซลูชัน PostgreSQL ส่วนเสริมจะสร้างการเชื่อมต่อที่เข้ารหัส SSL/TLS เพื่อปกป้องข้อมูลในขณะที่เคลื่อนย้ายระหว่างไคลเอนต์และเซิร์ฟเวอร์ฐานข้อมูลการป้องกันรวมถึงการเข้ารหัสข้อมูลก่อนการส่งข้อมูลการตรวจสอบสิทธิ์ปลายทางการถอดรหัสเนื้อหาและการตรวจสอบเมื่อมาถึง
การติดตั้งส่วนเสริม
ส่วนเสริมสามารถติดตั้งได้ที่ด้านบนของเท่านั้นPostgreSQLและพีจีพูล-ทู(สำหรับคลัสเตอร์ฐานข้อมูล) Node
- ค้นหาเลเยอร์ฐานข้อมูล PostgreSQL ที่เหมาะสมในแดชบอร์ดของคุณไปที่ส่วนเสริมส่วนแล้วคลิกติดตั้งสำหรับการเข้ารหัส SSL/TLSส่วนเสริม
2. ภายในหน้าต่างการติดตั้งที่เปิดอยู่ให้เลือกเป้าหมายEnvironmentและกลุ่ม Nodeตำแหน่งที่จะติดตั้งส่วนเสริม
บันทึก:ควรเลือกทั้งสองเลเยอร์หากติดตั้งสำหรับคลัสเตอร์ PostgreSQL พร้อม Pgpool-IINode สมดุลโหลด
คลิกติดตั้งเพื่อดำเนินการต่อ
- ภายในไม่กี่นาทีฐานข้อมูลของคุณจะได้รับการกำหนดค่าใหม่ให้ทำงานผ่านการเชื่อมต่อที่เข้ารหัส
ข้อมูลจำเพาะของส่วนเสริม
ด้านล่างคุณสามารถเรียนรู้เกี่ยวกับกระบวนการสร้างใบรับรองและข้อมูลเฉพาะ:
- ใบรับรองถูกสร้างขึ้นด้วย/usr/local/sbin/selfcertgenคุณประโยชน์.
- ใบรับรองจะลงนามด้วยตนเองและออกให้สำหรับชื่อโฮสต์ของ Node นั้นๆหมายความว่าแต่ละ Node มีชุดใบรับรองของตัวเองและคุณต้องใช้ใบรับรองที่สอดคล้องกับ Node ที่เข้าถึงเพื่อตรวจสอบความถูกต้อง
- ใบรับรองจะถูกเก็บไว้ภายใน/var/lib/Ruk-Com PaaS/keys/SSL-TLSโฟลเดอร์ (เข้าถึงได้ผ่านทางกุญแจทางลัดในตัวจัดการไฟล์) มีโฟลเดอร์ย่อยสองโฟลเดอร์:
- เซิร์ฟเวอร์– ใบรับรองเซิร์ฟเวอร์ใช้เพื่อจัดเตรียมการเข้ารหัส TLS ของการเชื่อมต่อกับฐานข้อมูล PostgreSQL
- ลูกค้า– สามารถใช้ใบรับรองไคลเอนต์ที่ดาวน์โหลดได้เพื่อตรวจสอบการเชื่อมต่อไคลเอนต์กับเซิร์ฟเวอร์ฐานข้อมูล (ฟังก์ชั่นไม่พร้อมใช้งานสำหรับพีจีพูล-ทูNode)
- ที่md5auth เปลี่ยนเป็นสแครมชา-256เพื่อให้ระดับความปลอดภัยดีขึ้น (ถือเป็นแนวทางปฏิบัติที่ดีที่สุดโดยนักพัฒนา PostgreSQL) และเพื่อรองรับ SSL ในโทโพโลยีคลัสเตอร์ด้วยพีจีพูล-ทูNode สมดุลโหลด
- ถ้าmd5ถูกใช้เป็นโปรโตคอลการตรวจสอบสิทธิ์เริ่มต้นก่อนการติดตั้งโปรแกรมเสริม SSL - การตั้งค่าจะเปลี่ยนไปทั่วโลกสำหรับ PostgreSQL daemon
- การเปลี่ยนแปลงต่อไปนี้เกิดขึ้นกับ/var/lib/pgsql/data/postgresql.confไฟล์การกำหนดค่า:
สำเนา
ssl_cert_file = '/var/lib/jelastic/keys/SSL-TLS/server/server.crt'
ssl_ca_file = '/var/lib/jelastic/keys/SSL-TLS/server/root.crt'
ssl_key_file = '/var/lib/jelastic/keys/SSL-TLS/server/server.key'
ssl = on
* เนื่องจากการเปลี่ยนแปลงอัลกอริทึมรหัสผ่านผู้ใช้ฐานข้อมูลที่มีอยู่จะต้องถูกรีเซ็ตมันทำโดยอัตโนมัติสำหรับค่าเริ่มต้น ‘เวแบดมิน’ ผู้ใช้ (ใช้รหัสผ่านเดียวกันกับเมื่อก่อน) แต่จะต้องดำเนินการด้วยตนเองสำหรับผู้ใช้ที่กำหนดเองที่มีอยู่. * 'เจ้าภาพ' กฎถูกใช้แทน 'เจ้าภาพ' ใน/var/lib/pgsql/data/pg_hba.confไฟล์เพื่อให้แน่ใจว่ามีการตรวจสอบสิทธิ์ SSL สำหรับผู้ใช้
สำเนา
hostssl all all 0.0.0.0/0 scram-sha-256
* หากคุณต้องการเปิดใช้งานการตรวจสอบสิทธิ์ผู้ใช้ผ่านใบรับรองไคลเอนต์คุณต้องเพิ่มด้วยตนเอง “ใบรับรอง" เช่นวิธีการรับรองความถูกต้อง.
การกำหนดค่า Pgpool-II:
- ตัวเลือก SSL ถูกเปิดใช้งานในการกำหนดค่า Pgpool-II (/etc/pgpool-II/pgpool.conf) โดยอัตโนมัติระหว่างการติดตั้งส่วนเสริม
สำเนา
ssl = on
enable_pool_hba = on
ssl_key = '/var/lib/jelastic/keys/SSL-TLS/server/server.key'
ssl_cert = '/var/lib/jelastic/keys/SSL-TLS/server/server.crt'
pool_passwd = 'pool_passwd'
* 'เจ้าภาพ' กฎถูกใช้แทน 'เจ้าภาพ' ใน/etc/pgpool-II/pool_hba.confไฟล์เพื่อให้แน่ใจว่ามีการตรวจสอบสิทธิ์ SSL สำหรับผู้ใช้
สำเนา
hostssl all all 0.0.0.0/0 scram-sha-256
* บันทึกที่เหมาะสมจะต้องเพิ่มสำหรับผู้ใช้ที่กำหนดเองไปที่/etc/pgpool-II/pool_passwdไฟล์. สองระเบียนสำหรับค่าเริ่มต้น 'เวแบดมิน' และ 'พีจีพูล’ ผู้ใช้จะถูกเพิ่มโดยอัตโนมัติสำหรับผู้ใช้รายอื่นทั้งหมดโปรดใช้pg_encคุณประโยชน์:
สำเนา
pg_enc -m -f /etc/pgpool-II/pgpool.conf -u $USERNAME $PASSWORD
การกำหนดค่าส่วนเสริม
หลังการติดตั้งคุณจะพบส่วนเสริมภายใต้ส่วนเสริมแท็บสำหรับเลเยอร์ที่เหมาะสม
ตัวเลือกการกำหนดค่าที่ใช้ได้นั้นตรงไปตรงมา:
- ออกใบรับรองใหม่อีกครั้ง– สร้างใบรับรอง SSL สำหรับการเชื่อมต่อที่ปลอดภัยอีกครั้ง (เช่นหากถูกบุกรุกหรือถูกลบออกโดยไม่ตั้งใจ)
- บทช่วยสอนการกำหนดค่า– เปิดคำแนะนำคู่มือบนการสร้างการเชื่อมต่อ SSL ไปยัง PostgreSQL
- ถอนการติดตั้ง(ในเมนูของส่วนเสริมที่มุมขวาบน) - ลบส่วนเสริมการกำหนดค่าที่กำหนดเองและใบรับรอง SSL ที่สร้างขึ้นออกจากเลเยอร์
การเชื่อมต่อที่ปลอดภัยกับ PostgreSQL
- “การเข้ารหัสระหว่างทาง” (การเข้ารหัสฝั่งเซิร์ฟเวอร์) ฟังก์ชันการทำงานจะทำงานทันทีหลังการติดตั้งคุณสามารถตรวจสอบได้โดยให้ข้อมูลประจำตัวการเข้าถึงแก่ลูกค้าและสร้างการเชื่อมต่อเราจะใช้psqlยูทิลิตี้สำหรับตัวอย่างนี้
เคล็ดลับ:คุณสามารถใช้จุดสิ้นสุดหรือไอพีสาธารณะเป็นจุดเริ่มต้นฐานข้อมูลของคุณสำหรับการเชื่อมต่อภายนอกลองตรวจสอบตัวอย่างจุดสิ้นสุด (ไปที่พีจีพูล-ทูNode สำหรับคลัสเตอร์):
เชื่อมต่อจากไคลเอนต์ด้วยคำสั่งต่อไปนี้ (คุณสามารถรับข้อมูลรับรองการเข้าถึงเริ่มต้นจากอีเมลที่ได้รับหลังการติดตั้งฐานข้อมูล):
สำเนา
psql -U {userName} {dbName} -h {host} -p {port} -W
ที่นี่:
- {ชื่อผู้ใช้}- ชื่อผู้ใช้ฐานข้อมูลสำหรับการเชื่อมต่อ
- {ดีบีชื่อ}- ชื่อฐานข้อมูลที่จะเชื่อมต่อ
- {เจ้าภาพ}- จุดเข้าฐานข้อมูล (จุดสิ้นสุดในกรณีของเรา)
- {ท่าเรือ}- พอร์ตสำหรับการเชื่อมต่อ (จากจุดสิ้นสุดในกรณีของเรา)
2. นอกจากนี้คุณยังสามารถใช้ใบรับรองไคลเอ็นต์สำหรับการตรวจสอบสิทธิ์ (การเข้ารหัสฝั่งเซิร์ฟเวอร์และไคลเอ็นต์). ในกรณีนี้ควรจัดเตรียมไฟล์ใบรับรอง SSL ให้กับไคลเอ็นต์คุณสามารถดาวน์โหลดได้จาก/var/lib/Ruk-Com PaaS/keys/SSL-TLS/clientไดเร็กทอรีของ Node PostgreSQL ที่ต้องการ
ลูกค้าจำเป็นต้องอัปโหลดไฟล์ใบรับรอง (ลูกค้า.crt,ลูกค้า.คีย์,root.crt) ไปยังคอมพิวเตอร์/คอนเทนเนอร์/VM หลังจากนั้นการเชื่อมต่อกับ Node PostgreSQL ที่ต้องการสามารถสร้างขึ้นได้ดังนี้:
สำเนา
psql "sslmode=verify-ca sslrootcert={path/to/root.crt} sslcert={path/to/client.crt} sslkey={path/to/client.key} host={host} port={port} user={userName} dbname={dbName}"
เคล็ดลับ:หรือคุณสามารถตรวจสอบการรับรองความถูกต้องด้วยใบรับรองไคลเอนต์ตามที่อธิบายไว้ในการเชื่อมต่อ SSL กับ PostgreSQLแนะนำ.





