ข้อมูลเบื้องต้นเกี่ยวกับ 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, ผู้ดูแลสวนสัตว์ และโหนด Cassandra อื่นๆ

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

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

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

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

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

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

ข้อกำหนด

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

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

เวอร์ชัน แพลตฟอร์ม และโทโพโลยี

ตารางต่อไปนี้แสดงข้อกำหนด mTLS

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

ใช้ค่าต่อไปนี้เพื่อระบุว่า Apigee mTLS ในระบบปฏิบัติการที่เฉพาะเจาะจงหรือไม่

ระบบปฏิบัติการ เวอร์ชัน Private Cloud ที่รองรับ
v4.19.06 v4.50.00 v4.51.00
CentOS
RedHat Enterprise Linux (RHEL)
Oracle Linux
7.5, 7.6, 7.7 7.5, 7.6, 7.7, 7.8, 7.9 7.5, 7.6, 7.7, 7.8, 7.9, 8.0

โปรดทราบว่า Apigee mTLS ไม่ได้รองรับระบบปฏิบัติการทั้งหมดที่ Apigee Edge เวอร์ชันที่เกี่ยวข้องสำหรับ Private Cloud ที่ทำงานอยู่เสมอไป

ตัวอย่างเช่น หาก v4.19.06 รองรับ CentOS x และ y นั่นไม่ได้หมายความว่า Apigee mTLS จะได้รับการรองรับใน CentOS x และ y สำหรับ v4.19.06 เสมอไป

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

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. สร้างและเผยแพร่ใบรับรอง/คู่คีย์และคีย์การเข้ารหัส Gossip
  3. อัปเดตและเผยแพร่ไฟล์การกำหนดค่า

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

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

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

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

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

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

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

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

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

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

HTTP
8502 จัดการการเชื่อมต่อ gRPC+HTTPS กับ Consul Server API จากโหนดอื่นๆ ในคลัสเตอร์ gRPC+HTTPS
8503 จัดการการเชื่อมต่อ HTTPS กับ Consul Server API จากโหนดอื่นๆ ในคลัสเตอร์ 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 10500 ถึง 10599 2
OpenLDAP 10200 ถึง 10299 1
Postgres 10300 ถึง 10399 3
Qpid 10400 ถึง 10499 2
เราเตอร์ 10600 ถึง 10699 2
ZooKeeper 10001 ถึง 10099 3

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

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

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

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

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

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

ข้อจำกัด

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

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

คำศัพท์

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

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