Fitur Apigee mTLS menambahkan keamanan pada komunikasi antarkomponen di Edge untuk cluster Private Cloud. Menyediakan cara standar industri untuk mengonfigurasi dan menginstal mesh layanan. Alat ini mendukung pengelolaan paket dan otomatisasi konfigurasi.
Ringkasan arsitektur
Untuk menyediakan komunikasi yang aman antar-komponen, Apigee mTLS menggunakan mesh layanan yang membuat koneksi TLS yang aman dan diautentikasi antarkomponen.
Gambar berikut menunjukkan koneksi antara komponen Apigee yang diamankan oleh Apigee mTLS (in red). Port yang ditampilkan pada gambar adalah contohnya; lihat Penggunaan port untuk mengetahui daftar rentang yang dapat digunakan oleh setiap komponen.
(Perhatikan bahwa port yang ditunjukkan dengan huruf "M" digunakan untuk mengelola komponen dan harus terbuka pada komponen untuk diakses oleh Server Pengelolaan.)
Seperti yang dapat Anda lihat pada diagram di atas, Apigee mTLS 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 lain | |
UI Edge | SMTP (hanya untuk IDP eksternal) | |
Postgres | Node Postgres, Zookeeper, dan Cassandra lainnya |
Enkripsi/dekripsi pesan
Mesh layanan Apigee mTLS terdiri dari server Consul yang berjalan pada setiap node ZooKeeper di cluster Anda dan layanan Consul berikut di setiap node dalam cluster:
- Proxy keluar yang mencegat pesan keluar pada node host. Layanan ini mengenkripsi pesan keluar sebelum mengirimkannya ke tujuannya.
- Proxy masuk yang mencegah 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 keluar menangkap pesan keluar, mengenkripsinya, lalu mengirimkannya ke Router. Saat node Router menerima pesan, layanan proxy ingress akan mendekripsi pesan tersebut, 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, Apigee mTLS menggunakan utilitas iptables
, yaitu layanan firewall Linux yang
mengelola pengalihan traffic.
Persyaratan
Sebelum Anda dapat menginstal Apigee mTLS, lingkungan Anda harus memenuhi persyaratan berikut:
- Persyaratan versi, platform, dan topologi
- Utilitas yang diinstal dan diaktifkan
- Akun pengguna dengan tingkat izin yang sesuai
- Mesin administrasi (direkomendasikan)
- Penggunaan port
Bagian berikut menjelaskan setiap persyaratan ini secara mendetail.
Versi, platform, dan topologi
Tabel berikut mencantumkan persyaratan mTLS:
Persyaratan | Deskripsi | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Versions |
|
||||||||||||
Topologi | Harus menyertakan setidaknya tiga node Zookeeper. Akibatnya, Anda hanya dapat menginstal Apigee mTLS pada topologi yang menggunakan 5, 9, 12 (pusat multi-data), atau 13 node. Untuk mengetahui informasi selengkapnya, lihat Topologi penginstalan. | ||||||||||||
Platform/Sistem Operasi | Gunakan nilai berikut untuk menentukan apakah Apigee mTLS didukung di OS tertentu:
Perhatikan bahwa Apigee mTLS tidak selalu mendukung semua OS yang didukung oleh versi Apigee Edge untuk Private Cloud yang dijalankan. Misalnya, jika v4.19.06 mendukung CentOS x dan y, bukan berarti Apigee mTLS didukung di CentOS x dan y untuk v4.19.06. |
Utilitas/paket
Apigee mTLS mengharuskan Anda menginstal dan mengaktifkan paket berikut di setiap mesin di cluster, termasuk mesin administrasi, sebelum memulai proses penginstalan:
Utilitas/paket | Deskripsi | Ingin Menghapus Setelah Penginstalan? |
---|---|---|
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 |
Memberikan fungsi ke utilitas iptables . |
|
lsof |
Digunakan oleh skrip penginstalan. | |
nc |
Memverifikasi iptables rute. |
|
openssl |
Menandatangani sertifikat secara lokal selama proses bootstrap awal. |
Selama penginstalan, Anda juga menginstal paket Consul di mesin administrasi sehingga Anda dapat membuat kredensial dan kunci enkripsi.
Paket apigee-mtls
akan menginstal dan mengonfigurasi server Consul, termasuk
proxy masuk dan keluar pada node ZooKeeper dalam cluster.
Izin akun pengguna
Sebelum menginstal, buat akun pengguna baru atau pastikan Anda memiliki akses ke akun yang telah meningkatkan hak istimewa.
Akun yang menjalankan penginstalan Apigee mTLS pada 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 tempat Anda dapat melakukan berbagai tugas administratif yang dijelaskan dalam dokumen ini, termasuk:
- Instal HashiCorp Consul 1.6.2.
- Membuat dan mendistribusikan pasangan sertifikat/kunci dan kunci enkripsi gosip.
- Update dan distribusikan file konfigurasi.
Saat menyiapkan mesin administrasi:
- Pastikan Anda memiliki akses root ke aplikasi tersebut.
- Download dan instal utilitas
apigee-service
danapigee-setup
di dalamnya, seperti yang dijelaskan dalam Menginstal utilitas apigee-setup Edge. - Pastikan Anda dapat menggunakan
scp/ssh
untuk mengakses semua node dalam cluster dari mesin administrasi. Ini diperlukan agar Anda dapat mendistribusikan file konfigurasi dan kredensial Anda.
Penggunaan dan penetapan port
Bagian ini menjelaskan penggunaan port dan penetapan port untuk mendukung komunikasi Consul dengan Apigee mTLS.
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 konsul (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 dalam cluster:
Node | Port Server Consul | Deskripsi | Protocol | Izinkan agen mtls-eksternal * |
---|---|---|---|---|
Server Konsul (node ZooKeeper) | 8300 |
Menghubungkan semua server Consul di cluster. | RPC | |
8301 |
Menangani keanggotaan dan pesan siaran dalam cluster. | UDP/TCP | ||
8302 |
Port WAN yang menangani pesan keanggotaan dan siaran dalam konfigurasi multi-pusat data. | UDP/TCP | ||
8500 |
Menangani koneksi HTTP ke Consul Server API dari proses pada node yang sama.
Port ini tidak digunakan untuk komunikasi atau koordinasi jarak jauh; port ini hanya memantau 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 terlihat dalam tabel ini, node yang menjalankan komponen consul-server
(node ZooKeeper)
harus membuka port 8301, 8302, 8502, dan 8503 untuk 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 |
---|---|---|
mTLS Apigee | 10700 sampai 10799 | 1 |
Cassandra | 10100 sampai 10199 | 2 |
Message Processor | 10.500 sampai 10.599 | 2 |
OpenLDAP | 10200 sampai 10299 | 1 |
Postgres | 10300 sampai 10399 | 3 |
Qpid | 10.400 hingga 10.499 | 2 |
Router | 10600 sampai 10699 | 2 |
ZooKeeper | 10.000 sampai 10.099 | 3 |
Consul menetapkan porta secara linear sederhana. Misalnya, jika cluster Anda memiliki dua node Postgres, node pertama menggunakan dua port, sehingga Consul menetapkan port 10300 dan 10301 ke cluster tersebut. Node kedua juga menggunakan dua port, sehingga Consol menetapkan 10302 dan 10303 ke node tersebut. Ini berlaku untuk semua jenis komponen.
Seperti yang dapat Anda lihat, jumlah port sebenarnya bergantung pada topologi: Jika cluster 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 konsul harus unik di seluruh cluster, yang mencakup pusat data. Artinya, jika proxy A pada host A memantau port 15000, proxy B pada host B tidak akan dapat memantau port 15000.
- Jumlah port yang digunakan bervariasi berdasarkan topologi, sebagaimana dijelaskan sebelumnya.
Dalam konfigurasi pusat multi-data, semua host yang menjalankan mTLS juga harus membuka port 8302.
Anda dapat menyesuaikan port default yang digunakan Apigee mTLS. Untuk 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 menerapkan perubahan itu untuk Anda pada node lainnya. Untuk informasi selengkapnya, lihat Mengubah konfigurasi apigee-mtls yang ada.
Terminologi
Bagian ini menggunakan terminologi berikut:
Masa Berlaku | Definisi |
---|---|
cluster | Sekelompok mesin yang membentuk Edge untuk penginstalan Private Cloud. |
Konsul | Mesh layanan yang digunakan oleh Apigee mTLS. Untuk mengetahui informasi tentang cara Consul mengamankan komunikasi Private Cloud Anda, lihat Model Keamanan Konsul. |
mTLS | TLS Diautentikasi Bersama. |
mesh layanan | Jaringan overlay (atau jaringan dalam jaringan). |
TLS | {i> Transaction Layer Security<i}. Protokol autentikasi standar industri untuk komunikasi yang aman. |