ข้อมูลเบื้องต้นเกี่ยวกับ Apigee mTLS

ฟีเจอร์ mTLS ของ Apigee จะเพิ่มความปลอดภัยให้กับการสื่อสารระหว่างคอมโพเนนต์ใน Edge สำหรับคลัสเตอร์ Private Cloud โดยจะช่วยให้คุณกำหนดค่าและติดตั้ง Service Mesh ได้ตามมาตรฐานอุตสาหกรรม รองรับการจัดการแพ็กเกจและการกำหนดค่าอัตโนมัติ

ภาพรวมสถาปัตยกรรม

Apigee mTLS ใช้ Service Mesh ที่สร้างการเชื่อมต่อ TLS ที่ปลอดภัยและมีการตรวจสอบสิทธิ์ร่วมกันระหว่างคอมโพเนนต์ต่างๆ เพื่อให้การสื่อสารระหว่างคอมโพเนนต์มีความปลอดภัย

รูปภาพต่อไปนี้แสดงการเชื่อมต่อระหว่างคอมโพเนนต์ Apigee ที่ Apigee mTLS รักษาความปลอดภัย (in red) พอร์ตที่แสดงในรูปภาพเป็นเพียงตัวอย่าง โปรดดูรายการช่วงที่แต่ละคอมโพเนนต์ใช้ได้ในการใช้พอร์ต

(โปรดทราบว่าพอร์ตที่ระบุด้วย "M" ใช้เพื่อจัดการคอมโพเนนต์และต้องเปิดใน คอมโพเนนต์เพื่อให้เซิร์ฟเวอร์การจัดการเข้าถึงได้)

ดังที่เห็นในแผนภาพด้านบน Apigee mTLS จะเพิ่มความปลอดภัยให้กับการเชื่อมต่อระหว่างคอมโพเนนต์ส่วนใหญ่ในคลัสเตอร์ ซึ่งรวมถึง

แหล่งที่มา ปลายทาง
เซิร์ฟเวอร์การจัดการ เราเตอร์, MP, QPid, LDAP, Postgres, Zookeeper และโหนด Cassandra
เราเตอร์ Loopback, โหนด Qpid, Zookeeper และ Cassandra
Message Processor Loopback, โหนด Qpid, Zookeeper และ Cassandra
ZooKeeper และ Cassandra โหนด Zookeeper และ Cassandra อื่นๆ
UI ของ Edge SMTP (สำหรับ IdP ภายนอกเท่านั้น)
Postgres โหนดอื่นๆ ของ Postgres, Zookeeper และ Cassandra

การเข้ารหัส/การถอดรหัสข้อความ

Apigee mTLS Service Mesh ประกอบด้วยเซิร์ฟเวอร์ Consul ที่ทำงานในแต่ละโหนด ZooKeeper ในคลัสเตอร์ และบริการ Consul ต่อไปนี้ในทุกโหนดในคลัสเตอร์

  • พร็อกซีขาออกที่สกัดกั้นข้อความขาออกในโหนดโฮสต์ บริการนี้ จะเข้ารหัสข้อความขาออกก่อนส่งไปยังปลายทาง
  • พร็อกซีขาเข้าที่สกัดกั้นข้อความขาเข้าในโหนดโฮสต์ บริการนี้ จะถอดรหัสข้อความที่เข้ามา ก่อนส่งไปยังปลายทางสุดท้าย

เช่น เมื่อเซิร์ฟเวอร์การจัดการส่งข้อความไปยังเราเตอร์ บริการพร็อกซีขาออกจะ สกัดกั้นข้อความขาออก เข้ารหัส แล้วส่งไปยังเราเตอร์ เมื่อโหนดของ เราเตอร์ได้รับข้อความ บริการพร็อกซีขาเข้าจะถอดรหัสข้อความ แล้วส่งไปยังคอมโพเนนต์เราเตอร์เพื่อประมวลผล

การดำเนินการทั้งหมดนี้จะเกิดขึ้นอย่างโปร่งใสต่อคอมโพเนนต์ Edge โดยคอมโพเนนต์จะไม่ทราบกระบวนการเข้ารหัสและ ถอดรหัสที่ดำเนินการโดยบริการพร็อกซีของ Consul

นอกจากนี้ Apigee mTLS ยังใช้ยูทิลิตี iptables ซึ่งเป็นบริการไฟร์วอลล์ Linux ที่ จัดการการเปลี่ยนเส้นทางการรับส่งข้อมูล

ข้อกำหนด

ก่อนที่จะติดตั้ง Apigee mTLS ได้ สภาพแวดล้อมของคุณต้องเป็นไปตามข้อกำหนดต่อไปนี้

ส่วนต่อไปนี้จะอธิบายข้อกำหนดแต่ละข้อโดยละเอียด

ข้อกำหนดด้านโทโพโลยี

Apigee mTLS กำหนดให้โทโพโลยีของสภาพแวดล้อมต้องมีโหนด Zookeeper อย่างน้อย 3 โหนด ด้วยเหตุนี้ คุณจึงติดตั้ง Apigee mTLS ได้เฉพาะในโทโพโลยีที่ใช้โหนด 5, 9, 12 (ศูนย์ข้อมูลหลายแห่ง) หรือ 13 เท่านั้น โปรดดูข้อมูลเพิ่มเติมที่โทโพโลยีการติดตั้ง

สาธารณูปโภค/แพ็กเกจ

Apigee mTLS กำหนดให้คุณต้องติดตั้งและเปิดใช้แพ็กเกจต่อไปนี้ในเครื่องแต่ละเครื่อง ในคลัสเตอร์ รวมถึงเครื่องที่ใช้ในการดูแลระบบ ก่อนที่จะเริ่ม กระบวนการติดตั้ง

ยูทิลิตี/แพ็กเกจ คำอธิบาย นำออกหลังการติดตั้งได้ไหม
base64 ยืนยันข้อมูลภายในสคริปต์การติดตั้ง
gnu-bash
gnu-sed
gnu-grep
ใช้โดยสคริปต์การติดตั้งและเครื่องมืออื่นๆ ที่ใช้กันทั่วไป
iptables แทนที่ไฟร์วอลล์เริ่มต้น firewalld
iptables-services มีฟังก์ชันการทำงานสำหรับยูทิลิตี iptables
lsof ใช้โดยสคริปต์การติดตั้ง
nc ยืนยันเส้นทาง iptables
openssl ลงนามในใบรับรองในเครื่องระหว่างกระบวนการเริ่มต้นครั้งแรก

ในระหว่างการติดตั้ง คุณยังติดตั้งแพ็กเกจ Consul ในเครื่องของผู้ดูแลระบบเพื่อให้ สร้างข้อมูลเข้าสู่ระบบและคีย์การเข้ารหัสได้

แพ็กเกจ apigee-mtls จะติดตั้งและกำหนดค่าเซิร์ฟเวอร์ Consul รวมถึงพร็อกซีขาเข้าและขาออกในโหนด ZooKeeper ในคลัสเตอร์

สิทธิ์ของบัญชีผู้ใช้

ก่อนติดตั้ง ให้สร้างบัญชีผู้ใช้ใหม่หรือตรวจสอบว่าคุณมีสิทธิ์เข้าถึงบัญชีที่มี สิทธิ์ระดับสูง

บัญชีที่ดำเนินการติดตั้ง Apigee mTLS ในแต่ละโหนดในคลัสเตอร์ต้องทำสิ่งต่อไปนี้ได้

  • เริ่ม หยุด รีสตาร์ท และเริ่มต้นคอมโพเนนต์ Apigee
  • ตั้งค่ากฎไฟร์วอลล์
  • สร้างบัญชีผู้ใช้ระบบ/OS ใหม่
  • เปิดใช้ ปิดใช้ เริ่ม หยุด และมาสก์บริการด้วย systemctl

เครื่องที่ใช้ในการดูแลระบบ (แนะนำ)

Apigee ขอแนะนำให้คุณมีโหนดภายในคลัสเตอร์ซึ่งคุณสามารถดำเนินการต่างๆ ในฐานะผู้ดูแลระบบตามที่อธิบายไว้ในเอกสารนี้ ซึ่งรวมถึง

  1. ติดตั้ง HashiCorp Consul 1.6.2
  2. สร้างและแจกจ่ายคู่ใบรับรอง/คีย์และคีย์การเข้ารหัสแบบกอสซิป
  3. อัปเดตและเผยแพร่ไฟล์การกำหนดค่า

เมื่อตั้งค่าเครื่องดูแลระบบ ให้ทำดังนี้

  • ตรวจสอบว่าคุณมีสิทธิ์เข้าถึงระดับรูท
  • ดาวน์โหลดและติดตั้งยูทิลิตี apigee-service และ apigee-setup ในเครื่องตามที่อธิบายไว้ใน ติดตั้งยูทิลิตี apigee-setup ของ Edge
  • ตรวจสอบว่าคุณใช้ scp/ssh เพื่อเข้าถึงโหนดทั้งหมดในคลัสเตอร์จาก เครื่องการดูแลระบบได้ ขั้นตอนนี้จำเป็นเพื่อให้คุณสามารถเผยแพร่ไฟล์กำหนดค่าและ ข้อมูลเข้าสู่ระบบได้

การใช้งานและการกำหนดพอร์ต

ส่วนนี้อธิบายการใช้งานพอร์ตและการกำหนดพอร์ตเพื่อรองรับการสื่อสารของ Consul กับ Apigee mTLS

การใช้งานพอร์ต: โหนดทั้งหมดที่เรียกใช้ apigee-mtls

โหนดทั้งหมดในคลัสเตอร์ที่ใช้บริการ apigee-mtls ต้องอนุญาตการเชื่อมต่อ จากบริการใน localhost (127.0.0.1) ซึ่งจะช่วยให้พร็อกซี Consul สื่อสารกับ บริการอื่นๆ ได้ขณะประมวลผลข้อความขาเข้าและขาออก

การใช้งานพอร์ต: โหนดเซิร์ฟเวอร์ Consul (โหนดที่เรียกใช้ ZooKeeper)

คุณต้องเปิดพอร์ตส่วนใหญ่ต่อไปนี้ในโหนดเซิร์ฟเวอร์ Consul (โหนดที่เรียกใช้ ZooKeeper) เพื่อยอมรับคำขอจากโหนดทั้งหมดในคลัสเตอร์

โหนด พอร์ตเซิร์ฟเวอร์ Consul คำอธิบาย โปรโตคอล อนุญาต mtls-agents ภายนอก
*
เซิร์ฟเวอร์ Consul (โหนด ZooKeeper) 8300 เชื่อมต่อเซิร์ฟเวอร์ Consul ทั้งหมดในคลัสเตอร์ RPC
8301 จัดการการเป็นสมาชิกและข้อความออกอากาศภายในคลัสเตอร์ UDP/TCP
8302 พอร์ต WAN ที่จัดการข้อความการเป็นสมาชิกและการออกอากาศในการกำหนดค่าศูนย์ข้อมูลหลายแห่ง UDP/TCP
8500 จัดการการเชื่อมต่อ HTTP กับ Consul Server API จากกระบวนการในโหนดเดียวกัน

พอร์ตนี้ไม่ได้ใช้สำหรับการสื่อสารหรือการประสานงานระยะไกล แต่จะรับฟังเฉพาะ localhost เท่านั้น

HTTP
8502 จัดการการเชื่อมต่อ gRPC+HTTPS กับ Consul Server API จากโหนดอื่นๆ ในคลัสเตอร์ gRPC+HTTPS
8503 จัดการการเชื่อมต่อ HTTPS กับ Consul Server API จากโหนดอื่นๆ ในคลัสเตอร์ HTTPS
8600 จัดการ DNS ของเซิร์ฟเวอร์ Consul UDP/TCP
* Apigee ขอแนะนำให้คุณจำกัดคำขอขาเข้าเฉพาะสมาชิกคลัสเตอร์ (รวมถึงที่ข้าม Datastore) คุณทำได้โดยใช้ iptables

ดังที่ตารางนี้แสดง โหนดที่เรียกใช้คอมโพเนนต์ consul-server (โหนด ZooKeeper) ต้องเปิดพอร์ต 8301, 8302, 8502 และ 8503 ให้กับสมาชิกทั้งหมดของคลัสเตอร์ที่เรียกใช้ บริการ apigee-mtls แม้ว่าจะอยู่ต่างศูนย์ข้อมูลก็ตาม โหนดที่ไม่ได้เรียกใช้ ZooKeeper ไม่จำเป็นต้องเปิดพอร์ตเหล่านี้

การกำหนดพอร์ตสำหรับโหนด Consul ทั้งหมด (รวมถึงโหนดที่เรียกใช้ ZooKeeper)

หากต้องการรองรับการสื่อสารของ Consul โหนดที่เรียกใช้คอมโพเนนต์ Apigee ต่อไปนี้ต้องอนุญาต การเชื่อมต่อภายนอกกับพอร์ตในช่วงต่อไปนี้

คอมโพเนนต์ Apigee ช่วง จำนวนพอร์ตที่จำเป็นต่อโหนด
Apigee mTLS 10700 ถึง 10799 1
Cassandra 10100 ถึง 10199 2
Message Processor 10500 ถึง 10599 2
SymasLDAP 10200 ถึง 10299 1
Postgres 10300 ถึง 10399 3
Qpid 10400 ถึง 10499 2
เราเตอร์ 10600 ถึง 10699 2
ZooKeeper 10000 ถึง 10099 3

Consul จะกำหนดพอร์ตในลักษณะเชิงเส้นอย่างง่าย ตัวอย่างเช่น หากคลัสเตอร์มีโหนด Postgres 2 โหนด โหนดแรกจะใช้ 2 พอร์ต ดังนั้น Consul จะกำหนดพอร์ต 10300 และ 10301 ให้กับโหนดดังกล่าว โหนดที่ 2 ใช้ 2 พอร์ตเช่นกัน ดังนั้น Consol จึงกำหนด 10302 และ 10303 ให้กับโหนดนั้น ซึ่งจะมีผลกับคอมโพเนนต์ทุกประเภท

ดังที่เห็น จำนวนพอร์ตจริงจะขึ้นอยู่กับโทโพโลยี หากคลัสเตอร์มีโหนด Postgres 2 โหนด คุณจะต้องเปิด 4 พอร์ต (2 โหนดคูณ 2 พอร์ตต่อโหนด)

ข้อควรทราบ

  • พร็อกซี Consul ไม่สามารถรับฟังในพอร์ตเดียวกับบริการ Apigee ได้
  • Consul มีพื้นที่ที่อยู่พอร์ตเพียงพื้นที่เดียว การกำหนดพอร์ตพร็อกซีของ Consul ต้องไม่ซ้ำกันในคลัสเตอร์ ซึ่งรวมถึงศูนย์ข้อมูล ซึ่งหมายความว่าหากพร็อกซี A ในโฮสต์ A กำลังรอการเชื่อมต่อในพอร์ต 15000 พร็อกซี B ในโฮสต์ B จะรอการเชื่อมต่อในพอร์ต 15000 ไม่ได้
  • จำนวนพอร์ตที่ใช้จะแตกต่างกันไปตามโทโพโลยี ดังที่อธิบายไว้ก่อนหน้านี้

ในการกำหนดค่าศูนย์ข้อมูลหลายแห่ง โฮสต์ทั้งหมดที่เรียกใช้ mTLS ต้องเปิดพอร์ต 8302 ด้วย

คุณปรับแต่งพอร์ตเริ่มต้นที่ Apigee mTLS ใช้ได้ ดูข้อมูลเกี่ยวกับวิธีดำเนินการนี้ได้ที่ การปรับแต่งช่วงพอร์ตพร็อกซี

ข้อจำกัด

Apigee mTLS มีข้อจำกัดต่อไปนี้

  • ไม่ได้เข้ารหัสการสื่อสารระหว่างโหนด Cassandra (พอร์ต 7000)
  • การกำหนดค่าและการตั้งค่านั้นไม่เป็นแบบ Idempotent ซึ่งหมายความว่าหากคุณทำการเปลี่ยนแปลงในโหนดหนึ่ง คุณจะต้องทำการเปลี่ยนแปลงเดียวกันในทุกโหนด ระบบจะไม่ใช้การเปลี่ยนแปลงนั้นกับโหนดอื่นๆ ให้คุณ ดูข้อมูลเพิ่มเติมได้ที่ เปลี่ยนการกำหนดค่า apigee-mtls ที่มีอยู่

คำศัพท์

ส่วนนี้ใช้คำศัพท์ต่อไปนี้

คำศัพท์ คำจำกัดความ
คลัสเตอร์ กลุ่มเครื่องที่ประกอบกันเป็น Edge สำหรับการติดตั้ง Private Cloud
Consul Service Mesh ที่ Apigee mTLS ใช้ ดูข้อมูลเกี่ยวกับวิธีที่ Consul รักษาความปลอดภัยให้การสื่อสารใน Private Cloud ได้ที่โมเดลความปลอดภัยของ Consul
mTLS TLS ที่มีการตรวจสอบสิทธิ์ร่วม
โครงข่ายบริการ เครือข่ายโอเวอร์เลย์ (หรือเครือข่ายภายในเครือข่าย)
TLS Transaction Layer Security โปรโตคอลการตรวจสอบสิทธิ์ตามมาตรฐานอุตสาหกรรมสำหรับการสื่อสารที่ปลอดภัย