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

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

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

Apigee mTLS จะใช้โครงข่ายบริการที่สร้างการเชื่อมต่อ 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 อื่นๆ

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

Mesh ของ Apigee mTLS ประกอบด้วยเซิร์ฟเวอร์ 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
  • ตั้งค่ากฎไฟร์วอลล์
  • สร้างบัญชีระบบปฏิบัติการ/บัญชีผู้ใช้ระบบใหม่
  • เปิดใช้ ปิดใช้ เริ่ม หยุด และมาสก์ด้วย systemctl

เครื่องดูแลระบบ (แนะนำ)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

คอมโพเนนต์ Apigee ช่วง จำนวนพอร์ตที่ต้องการต่อโหนด
mTLS ของ Apigee 10700 ถึง 10799 1
Cassandra 10100 ถึง 10199 2
Message Processor 10,500 ถึง 10599 2
OpenLDAP 10200 ถึง 10299 1
Postgres 10300 ถึง 10399 3
Qpid 10400 ถึง 10499 2
เราเตอร์ 10600 ถึง 10699 2
ZooKeeper 10,000 ถึง 10099 3

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

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

โปรดทราบดังต่อไปนี้

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

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

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

ข้อจำกัด

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

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

คำศัพท์

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

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