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