Pengantar Apigee mTLS

Fitur mTLS Apigee menambahkan keamanan pada komunikasi antara komponen di Edge untuk cluster Private Cloud.

Ringkasan arsitektur

Untuk menyediakan komunikasi yang aman antar-komponen, mTLS Apigee menggunakan mesh layanan yang membuat koneksi TLS yang aman dan saling diautentikasi antar-komponen.

Gambar berikut menunjukkan koneksi antara komponen Apigee yang diamankan oleh mTLS Apigee (in red). Port yang ditampilkan dalam gambar adalah contoh; lihat Penggunaan port untuk mengetahui daftar rentang yang dapat digunakan setiap komponen.

(Perhatikan bahwa port yang ditunjukkan dengan "M" digunakan untuk mengelola komponen dan harus terbuka pada komponen untuk akses oleh Server Pengelolaan.)

Seperti yang dapat Anda lihat pada diagram di atas, mTLS Apigee menambahkan keamanan ke koneksi antara sebagian besar komponen dalam cluster, termasuk:

Sumber Destination
Server Pengelolaan Node Router, MP, QPid, LDAP, Postgres, Zookeeper, dan Cassandra
Router Loopback; Node Qpid, Zookeeper, dan Cassandra
Message Processor Loopback; Node Qpid, Zookeeper, dan Cassandra
ZooKeeper dan Cassandra Node Zookeeper dan Cassandra lainnya
Edge UI SMTP (khusus untuk IDP eksternal)
Postgres Node Postgres, Zookeeper, dan Cassandra lainnya

Enkripsi/dekripsi pesan

Mesh layanan mTLS Apigee terdiri dari server Consul yang berjalan di setiap node ZooKeeper di cluster Anda dan layanan Consul berikut di setiap node dalam cluster:

  • Proxy egress yang mencegat pesan keluar di node host. Layanan ini mengenkripsi pesan keluar sebelum mengirimkannya ke tujuan.
  • Proxy ingress yang mencegat pesan masuk di node host. Layanan ini mendekripsi pesan masuk sebelum mengirimkannya ke tujuan akhir.

Misalnya, saat Server Pengelolaan mengirim pesan ke Router, layanan proxy egress akan menangkap pesan keluar, mengenkripsinya, lalu mengirimkannya ke Router. Saat node Router menerima pesan, layanan proxy ingress akan mendekripsi pesan, lalu meneruskannya ke komponen Router untuk diproses.

Semua ini terjadi secara transparan pada komponen Edge: komponen tersebut tidak mengetahui proses enkripsi dan dekripsi yang dilakukan oleh layanan proxy Consul.

Selain itu, mTLS Apigee menggunakan utilitas iptables, layanan firewall Linux yang mengelola pengalihan traffic.

Persyaratan

Apigee mTLS menyediakan cara standar industri untuk mengonfigurasi dan menginstal mesh layanan. Alat ini mendukung pengelolaan paket dan otomatisasi konfigurasi.

Karena layanan proxy Consul terkait erat sebagai penetapan port untuk setiap proses, perubahan pada satu node akan memengaruhi setiap node lainnya. Akibatnya, jika topologi Anda berubah, Anda harus mengonfigurasi ulang dan melakukan inisialisasi ulang layanan di setiap node dalam cluster.

Sebelum Anda dapat menginstal mTLS Apigee, lingkungan Anda harus memenuhi persyaratan berikut yang dijelaskan di bagian ini.

Persyaratan ini mencakup:

  • Edge untuk versi cloud pribadi
  • Kumpulan utilitas yang diinstal dan diaktifkan
  • Akun pengguna dengan tingkat izin yang sesuai
  • Mesin administrasi (direkomendasikan)

Persyaratan Edge for Private Cloud

Apigee mTLS mendukung versi Edge untuk cloud pribadi berikut (tetapi tidak di semua platform yang didukung, seperti yang dijelaskan dalam Persyaratan OS):

  • 4.19.06
  • 4.19.01

Apigee mTLS mengharuskan cluster Private Cloud Anda menggunakan topologi yang mencakup setidaknya tiga node Zookeeper. Akibatnya, Anda hanya dapat menginstal mTLS Apigee pada topologi yang menggunakan 5, 9, 12 (multi-pusat data), atau 13 node. Untuk mengetahui informasi selengkapnya, lihat Topologi penginstalan.

Persyaratan OS

Apigee mTLS mendukung platform berikut untuk cluster Private Cloud Anda (OS yang didukung untuk mTLS bergantung pada versi Private Cloud):

Sistem Operasi Versi Cloud Pribadi yang Didukung
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

Utilitas/paket

Apigee mTLS mengharuskan Anda menginstal dan mengaktifkan paket berikut di setiap mesin dalam cluster, termasuk mesin administrasi, sebelum memulai proses penginstalan:

Utilitas/paket Deskripsi Bolehkah Dilepas Setelah Pemasangan?
base64 Memverifikasi data dalam skrip penginstalan.
gnu-bash
gnu-sed
gnu-grep
Digunakan oleh skrip penginstalan dan alat umum lainnya.
iptables Mengganti firewall default, firewalld.
iptables-services Menyediakan fungsi untuk utilitas iptables.
lsof Digunakan oleh skrip penginstalan.
nc Memverifikasi rute iptables.
openssl Menandatangani sertifikat secara lokal selama proses bootstrap awal.

Selama penginstalan, Anda juga menginstal paket Consul di mesin administrasi agar dapat membuat kredensial dan kunci enkripsi.

Paket apigee-mtls menginstal dan mengonfigurasi server Consul, termasuk proxy ingress dan egress di node ZooKeeper dalam cluster.

Izin akun pengguna

Akun yang menjalankan penginstalan mTLS Apigee di setiap node dalam cluster harus dapat:

  • Memulai, menghentikan, memulai ulang, dan melakukan inisialisasi komponen Apigee
  • Menetapkan aturan firewall
  • Membuat akun pengguna OS/sistem baru
  • Mengaktifkan, menonaktifkan, memulai, menghentikan, dan menyamarkan layanan dengan systemctl

Mesin administrasi (direkomendasikan)

Apigee merekomendasikan agar Anda memiliki node dalam cluster yang dapat digunakan untuk melakukan berbagai tugas yang dijelaskan dalam dokumen ini, termasuk:

  1. Instal HashiCorp Consul 1.6.2.
  2. Membuat dan mendistribusikan pasangan sertifikat/kunci dan kunci enkripsi gossip.
  3. Perbarui dan distribusikan file konfigurasi.

Mesin administrasi mengharuskan:

  • Anda telah mendownload dan menginstal utilitas apigee-service dan apigee-setup di dalamnya, seperti yang dijelaskan dalam Menginstal utilitas apigee-setup Edge.
  • Memiliki akses scp/ssh ke semua node dalam cluster. Untuk mendistribusikan file konfigurasi dan kredensial, Anda harus memiliki akses scp/ssh ke semua host dalam cluster.
  • Anda memiliki akses root ke mesin administrasi.

Penggunaan dan penetapan port

Bagian ini menjelaskan penggunaan port dan penetapan port untuk mendukung komunikasi Consul dengan mTLS Apigee.

Penggunaan port: Semua node yang menjalankan apigee-mtls

Semua node dalam cluster yang menggunakan layanan apigee-mtls harus mengizinkan koneksi dari layanan di localhost (127.0.0.1). Hal ini memungkinkan proxy Consul berkomunikasi dengan layanan lain saat memproses pesan masuk dan keluar.

Penggunaan port: Node server Consul (node yang menjalankan ZooKeeper)

Anda harus membuka sebagian besar port berikut di node server Consul (node yang menjalankan ZooKeeper) untuk menerima permintaan dari semua node di cluster:

Node Port Server Consul Deskripsi Protokol Mengizinkan mtls-agent eksternal
*
Server Consul (node ZooKeeper) 8300 Menghubungkan semua server Consul dalam cluster. PPK
8301 Menangani keanggotaan dan pesan siaran dalam cluster. UDP/TCP
8302 Port WAN yang menangani pesan keanggotaan dan siaran dalam konfigurasi beberapa pusat data. UDP/TCP
8500 Menangani koneksi HTTP ke API Server Consul dari proses di node yang sama.

Port ini tidak digunakan untuk komunikasi atau koordinasi jarak jauh; port ini hanya memproses localhost.

HTTP
8502 Menangani koneksi gRPC+HTTPS ke Consul Server API dari node lain dalam cluster. gRPC+HTTPS
8503 Menangani koneksi HTTPS ke Consul Server API dari node lain dalam cluster. HTTPS
8600 Menangani DNS server Consul. UDP/TCP
* Apigee merekomendasikan agar Anda membatasi permintaan masuk hanya untuk anggota cluster (termasuk lintas datastore). Anda dapat melakukannya dengan iptables.

Seperti yang ditunjukkan tabel ini, node yang menjalankan komponen consul-server (node ZooKeeper) harus membuka port 8301, 8302, 8502, dan 8503 ke semua anggota cluster yang menjalankan layanan apigee-mtls, bahkan di seluruh pusat data. Node yang tidak menjalankan ZooKeeper tidak perlu membuka port ini.

Penetapan port untuk semua node Consul (termasuk node yang menjalankan ZooKeeper)

Untuk mendukung komunikasi Consul, node yang menjalankan komponen Apigee berikut harus mengizinkan koneksi eksternal ke port dalam rentang berikut:

Komponen Apigee Rentang Jumlah Port yang Diperlukan Per Node
Apigee mTLS 10700 hingga 10799 1
Cassandra 10100 hingga 10199 2
Message Processor 10500 hingga 10599 2
OpenLDAP 10200 hingga 10299 1
Postgres 10300 hingga 10399 3
Qpid 10400 hingga 10499 2
Router 10600 hingga 10699 2
ZooKeeper 10001 hingga 10099 3

Consul menetapkan port dengan cara linear yang sederhana. Misalnya, jika cluster Anda memiliki dua node Postgres, node pertama menggunakan dua port, sehingga Consul menetapkan port 10300 dan 10301 ke node tersebut. Node kedua juga menggunakan dua port, sehingga Consol menetapkan 10302 dan 10303 ke node tersebut. Hal ini berlaku untuk semua jenis komponen.

Seperti yang Anda lihat, jumlah port sebenarnya bergantung pada topologi: Jika cluster Anda memiliki dua node Postgres, Anda harus membuka empat port (dua node dikalikan dua port).

Perhatikan hal berikut:

  • Proxy Consul tidak dapat memproses port yang sama dengan layanan Apigee.
  • Consul hanya memiliki satu ruang alamat port. Penetapan port proxy Consul harus unik di seluruh cluster, yang mencakup pusat data. Artinya, jika proxy A di host A memproses port 15000, proxy B di host B tidak dapat memproses port 15000.
  • Jumlah port yang digunakan bervariasi berdasarkan topologi, seperti yang dijelaskan sebelumnya.

Dalam konfigurasi multi-pusat data, semua host yang menjalankan mTLS juga harus membuka port 8302.

Anda dapat menyesuaikan port default yang digunakan mTLS Apigee. Untuk mengetahui informasi tentang cara melakukannya, lihat Penyesuaian rentang port proxy.

Batasan

Apigee mTLS memiliki batasan berikut:

  • Tidak mengenkripsi komunikasi Cassandra antar-node (port 7000)
  • Konfigurasi dan penyiapan tidak idempoten. Artinya, jika Anda membuat satu perubahan pada satu node, Anda harus membuat perubahan yang sama pada semua node; sistem tidak akan mengambil perubahan tersebut dan menerapkannya ke node lain untuk Anda. Untuk mengetahui informasi selengkapnya, lihat Mengubah konfigurasi apigee-mtls yang ada.

Terminologi

Bagian ini menggunakan terminologi berikut:

Istilah Definisi
cluster Grup mesin yang membentuk penginstalan Edge for Private Cloud Anda.
Consul Mesh layanan yang digunakan oleh mTLS Apigee. Untuk mengetahui informasi tentang cara Consul mengamankan komunikasi Cloud Pribadi Anda, lihat Model Keamanan Consul.
mTLS TLS yang Diautentikasi Bersama.
mesh layanan Jaringan overlay (atau jaringan dalam jaringan).
TLS Transaction Layer Security. Protokol autentikasi standar industri untuk komunikasi yang aman.