Edge for Private Cloud v4.19.01
ฟีเจอร์ mTLS ของ Apigee จะเพิ่มความปลอดภัยให้กับการสื่อสารระหว่างคอมโพเนนต์ใน 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 อื่นๆ | |
| Edge UI | SMTP (สำหรับ IDP ภายนอกเท่านั้น) | |
| Postgres | โหนด Postgres, Zookeeper และ Cassandra อื่นๆ |
การเข้ารหัส/ถอดรหัสข้อความ
โครงข่ายบริการ mTLS ของ Apigee ประกอบด้วยเซิร์ฟเวอร์ Consul ที่ทำงานบนโหนด ZooKeeper แต่ละโหนดในคลัสเตอร์และบริการ Consul ต่อไปนี้ในทุกโหนดในคลัสเตอร์
- พร็อกซีขาออกที่สกัดกั้นข้อความขาออกในโหนดโฮสต์ บริการนี้จะเข้ารหัสข้อความขาออกก่อนส่งไปยังปลายทาง
- พร็อกซีขาเข้าที่สกัดกั้นข้อความขาเข้าในโหนดโฮสต์ บริการนี้จะถอดรหัสข้อความขาเข้าก่อนส่งไปยังปลายทางสุดท้าย
ตัวอย่างเช่น เมื่อเซิร์ฟเวอร์การจัดการส่งข้อความไปยังเราเตอร์ บริการพร็อกซีขาออกจะสกัดกั้นข้อความขาออก เข้ารหัส แล้วส่งไปยังเราเตอร์ เมื่อโหนดของเราเตอร์ได้รับข้อความ บริการพร็อกซีขาเข้าจะถอดรหัสข้อความแล้วส่งไปยังคอมโพเนนต์เราเตอร์เพื่อประมวลผล
การดำเนินการทั้งหมดนี้เกิดขึ้นอย่างโปร่งใสสำหรับคอมโพเนนต์ Edge โดยคอมโพเนนต์จะไม่ทราบถึงกระบวนการเข้ารหัสและถอดรหัสที่ดำเนินการโดยบริการพร็อกซี Consul
นอกจากนี้ Apigee mTLS ยังใช้ยูทิลิตี iptables ซึ่งเป็นบริการไฟร์วอลล์ Linux ที่จัดการการเปลี่ยนเส้นทางการรับส่งข้อมูล
ข้อกำหนด
Apigee mTLS มีวิธีที่ได้มาตรฐานอุตสาหกรรมในการกำหนดค่าและติดตั้งโครงข่ายบริการ โดยรองรับการจัดการแพ็กเกจและระบบอัตโนมัติสำหรับการกำหนดค่า
เนื่องจากบริการพร็อกซี Consul มีการเชื่อมต่อแบบแน่นเป็นการกำหนดพอร์ตสำหรับแต่ละกระบวนการ การเปลี่ยนแปลงโหนดหนึ่งจึงส่งผลต่อโหนดอื่นๆ ทั้งหมด ด้วยเหตุนี้ หากโทโพโลยีมีการเปลี่ยนแปลง คุณต้องกำหนดค่าและเริ่มต้นบริการใหม่ในทุกโหนดในคลัสเตอร์
ก่อนที่จะติดตั้ง Apigee mTLS สภาพแวดล้อมของคุณต้องเป็นไปตามข้อกำหนดต่อไปนี้ที่อธิบายไว้ในส่วนนี้
ซึ่งข้อกำหนดเหล่านี้ได้แก่
- Edge สำหรับเวอร์ชัน Private Cloud
- ชุดยูทิลิตีที่ติดตั้งและเปิดใช้
- บัญชีผู้ใช้ที่มีสิทธิ์ในระดับที่เหมาะสม
- เครื่องสำหรับการดูแลระบบ (แนะนำ)
ข้อกำหนดของ Edge for 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-bashgnu-sedgnu-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
- สร้างและแจกจ่ายคู่คีย์/ใบรับรองและคีย์การเข้ารหัส Gossip
- อัปเดตและเผยแพร่ไฟล์การกำหนดค่า
เครื่องที่ใช้ดูแลระบบต้องมีคุณสมบัติดังนี้
- คุณได้ดาวน์โหลดและติดตั้งยูทิลิตี
apigee-serviceและapigee-setupไว้แล้วตามที่อธิบายไว้ในติดตั้งยูทิลิตี apigee-setup ของ Edge - มีสิทธิ์เข้าถึง
scp/sshสำหรับโหนดทั้งหมดในคลัสเตอร์ หากต้องการเผยแพร่ไฟล์การกำหนดค่าและข้อมูลเข้าสู่ระบบ คุณต้องมีสิทธิ์เข้าถึงscp/sshสำหรับโฮสต์ทั้งหมดภายในคลัสเตอร์ - คุณมีสิทธิ์เข้าถึงระดับรูทในเครื่องที่ใช้ดูแลระบบ
การใช้งานและการกำหนดพอร์ต
ส่วนนี้จะอธิบายการใช้พอร์ตและการกำหนดพอร์ตเพื่อรองรับการสื่อสารของ Consul กับ mTLS ของ Apigee
การใช้พอร์ต: โหนดทั้งหมดที่ใช้ apigee-mtls
โหนดทั้งหมดในคลัสเตอร์ที่ใช้บริการ apigee-mtls ต้องอนุญาตการเชื่อมต่อจากบริการใน Localhost (127.0.0.1) ซึ่งจะช่วยให้พร็อกซี Consul สื่อสารกับบริการอื่นๆ ได้ขณะประมวลผลข้อความขาเข้าและข้อความขาออก
การใช้พอร์ต: โหนดเซิร์ฟเวอร์ Consul (โหนดที่เรียกใช้ ZooKeeper)
คุณต้องเปิดพอร์ตต่อไปนี้ส่วนใหญ่ในโหนดเซิร์ฟเวอร์ Consul (โหนดที่เรียกใช้ ZooKeeper) เพื่อยอมรับคำขอจากโหนดทั้งหมดในคลัสเตอร์
| โหนด | พอร์ตเซิร์ฟเวอร์ Consul | คำอธิบาย | โปรโตคอล | อนุญาต mtls-agent ภายนอก * |
|---|---|---|---|---|
| เซิร์ฟเวอร์ Consul (โหนด ZooKeeper) | 8300 |
เชื่อมต่อเซิร์ฟเวอร์ Consul ทั้งหมดในคลัสเตอร์ | RPC | |
8301 |
จัดการการเป็นสมาชิกและข้อความประกาศภายในคลัสเตอร์ | UDP/TCP | ||
8302 |
พอร์ต WAN ที่จัดการการเป็นสมาชิกและข้อความประกาศในการกำหนดค่าศูนย์ข้อมูลหลายแห่ง | UDP/TCP | ||
8500 |
จัดการการเชื่อมต่อ HTTP กับ API ของเซิร์ฟเวอร์ Consul จากกระบวนการในโหนดเดียวกัน
พอร์ตนี้ไม่ได้ใช้สำหรับการสื่อสารหรือการประสานงานระยะไกล แต่จะฟังบน localhost เท่านั้น |
HTTP | ||
8502 |
จัดการการเชื่อมต่อ gRPC+HTTPS กับ API ของเซิร์ฟเวอร์ Consul จากโหนดอื่นๆ ในคลัสเตอร์ | 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 |
| 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 โหนดคูณ 2 พอร์ตต่อโหนด)
ข้อควรทราบ
- พร็อกซี Consul ไม่สามารถรอการเชื่อมต่อในพอร์ตเดียวกับบริการ Apigee
- Consul มีพื้นที่ที่อยู่พอร์ตเพียงแห่งเดียว การกำหนดพอร์ตพร็อกซี Consul ต้องไม่ซ้ำกันในคลัสเตอร์ ซึ่งรวมถึงศูนย์ข้อมูล ซึ่งหมายความว่าหากพร็อกซี A ในโฮสต์ A ฟังพอร์ต 15000 พร็อกซี B ในโฮสต์ B จะฟังพอร์ต 15000 ไม่ได้
- จำนวนพอร์ตที่ใช้จะแตกต่างกันไปตามโทโพโลยีตามที่อธิบายไว้ก่อนหน้านี้
ในการกำหนดค่าศูนย์ข้อมูลหลายแห่ง โฮสต์ทั้งหมดที่ใช้ mTLS ต้องเปิดพอร์ต 8302 ด้วย
คุณปรับแต่งพอร์ตเริ่มต้นที่ Apigee mTLS ใช้ได้ ดูข้อมูลเกี่ยวกับวิธีดำเนินการนี้ได้ที่หัวข้อการปรับแต่งช่วงพอร์ตพร็อกซี
ข้อจำกัด
mTLS ของ Apigee มีข้อจำกัดดังต่อไปนี้
- ไม่เข้ารหัสการสื่อสาร Cassandra ระหว่างโหนด (พอร์ต 7000)
- การกำหนดค่าและการตั้งค่าไม่เป็นแบบ Idempotent ซึ่งหมายความว่าหากคุณทำการเปลี่ยนแปลง 1 รายการในโหนดเดียว คุณต้องทำการเปลี่ยนแปลงเดียวกันในโหนดทั้งหมด ระบบจะไม่เลือกการเปลี่ยนแปลงนั้นและนำไปใช้กับโหนดอื่นๆ ให้คุณ ดูข้อมูลเพิ่มเติมได้ที่หัวข้อเปลี่ยนการกำหนดค่า apigee-mtls ที่มีอยู่
คำศัพท์
ส่วนนี้จะใช้คำศัพท์ต่อไปนี้
| คำศัพท์ | คำจำกัดความ |
|---|---|
| cluster | กลุ่มเครื่องที่ประกอบกันเป็น Edge สำหรับการติดตั้ง Private Cloud |
| Consul | โครงข่ายบริการที่ Apigee mTLS ใช้ ดูข้อมูลเกี่ยวกับวิธีที่ Consul รักษาความปลอดภัยให้กับการสื่อสารใน Private Cloud ได้ที่โมเดลความปลอดภัยของ Consul |
| mTLS | Mutually Authenticated TLS |
| โครงข่ายบริการ | เครือข่ายโอเวอร์เลย์ (หรือเครือข่ายภายในเครือข่าย) |
| TLS | Transaction Layer Security โปรโตคอลการตรวจสอบสิทธิ์ตามมาตรฐานอุตสาหกรรมสำหรับการสื่อสารที่ปลอดภัย |