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

Edge สำหรับ Private Cloud เวอร์ชัน 4.19.01

ฟีเจอร์ 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 เป็นวิธีที่เป็นไปตามมาตรฐานอุตสาหกรรมสำหรับการกำหนดค่าและติดตั้งโครงข่ายบริการ โดยรองรับการจัดการแพ็กเกจและการกำหนดค่าอัตโนมัติ

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

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

ข้อกำหนดเหล่านี้ ได้แก่

  • Edge สำหรับเวอร์ชัน Private Cloud
  • ชุดยูทิลิตีที่ติดตั้งและเปิดใช้งาน
  • บัญชีผู้ใช้ที่มีระดับสิทธิ์ที่เหมาะสม
  • เครื่องดูแลระบบ (แนะนำ)

ข้อกำหนดของ Edge สำหรับ Private Cloud

Apigee mTLS รองรับ Edge เวอร์ชันต่อไปนี้สำหรับ Private Cloud (แต่ไม่ใช่ในแพลตฟอร์มที่รองรับทั้งหมดตามที่อธิบายไว้ในข้อกำหนดของระบบปฏิบัติการ)

  • 4.19.06
  • 4.19.01

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

ข้อกำหนดของระบบปฏิบัติการ

Apigee mTLS รองรับแพลตฟอร์มต่อไปนี้สำหรับคลัสเตอร์ Private Cloud ของคุณ (ระบบปฏิบัติการที่รองรับสำหรับ mTLS จะขึ้นอยู่กับเวอร์ชันของ Private Cloud)

ระบบปฏิบัติการ เวอร์ชัน 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 กำหนดให้คุณต้องติดตั้งและเปิดใช้แพ็กเกจต่อไปนี้บนแต่ละเครื่องในคลัสเตอร์ รวมถึงเครื่องดูแลระบบก่อนที่จะเริ่มขั้นตอนการติดตั้ง

ยูทิลิตี/แพ็กเกจ คำอธิบาย ต้องการนำออกหลังจากติดตั้งหรือไม่
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 ในโหนดทั้งหมดในคลัสเตอร์ หากต้องการแจกจ่ายไฟล์การกำหนดค่าและข้อมูลเข้าสู่ระบบ คุณต้องมีสิทธิ์เข้าถึง 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 (ความปลอดภัยของเลเยอร์ธุรกรรม) โปรโตคอลการตรวจสอบสิทธิ์มาตรฐานอุตสาหกรรมสำหรับการสื่อสารที่ปลอดภัย