Edge untuk Private Cloud v4.19.01
Fitur Apigee mTLS menambahkan keamanan pada komunikasi antarkomponen di Edge untuk cluster Private Cloud.
Ringkasan arsitektur
Untuk memberikan komunikasi yang aman antar-komponen, Apigee mTLS menggunakan mesh layanan yang membuat koneksi TLS aman dan saling diautentikasi antar-komponen.
Gambar berikut menunjukkan koneksi antara komponen Apigee yang diamankan oleh Apigee mTLS (in red). Port yang ditampilkan dalam gambar adalah contohnya. Lihat Penggunaan port untuk mengetahui daftar rentang yang dapat digunakan oleh setiap komponen.
(Perhatikan bahwa port yang ditunjukkan dengan "M" digunakan untuk mengelola komponen dan harus terbuka di komponen untuk diakses oleh Server Pengelolaan.)
Seperti yang dapat Anda lihat pada diagram di atas, Apigee mTLS menambahkan keamanan pada koneksi di antara sebagian besar komponen dalam cluster, termasuk:
Sumber | Destination | |
---|---|---|
Server Pengelolaan | 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 | |
UI Edge | SMTP (hanya untuk IDP eksternal) | |
Postgres | Node Postgres, Zookeeper, dan Cassandra lainnya |
Enkripsi/dekripsi pesan
Mesh layanan Apigee mTLS terdiri dari server Konsul yang berjalan di setiap node ZooKeeper di cluster Anda dan layanan Konsul berikut di setiap node di cluster:
- Proxy traffic keluar yang mencegah pesan keluar pada node host. Layanan ini mengenkripsi pesan keluar sebelum mengirimkannya ke tujuan.
- Proxy masuk 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 keluar akan mencegat pesan keluar, mengenkripsinya, lalu mengirimkannya ke Router. Saat node Router menerima pesan, layanan proxy ingress mendekripsi pesan tersebut, lalu meneruskannya ke komponen Router untuk diproses.
Semua ini terjadi secara transparan pada komponen Edge: mereka tidak mengetahui proses enkripsi dan dekripsi yang dilakukan oleh layanan proxy Consul.
Selain itu, Apigee mTLS menggunakan utilitas iptables
, layanan firewall Linux yang
mengelola pengalihan traffic.
Persyaratan
Apigee mTLS memberikan cara standar industri untuk mengonfigurasi dan menginstal mesh layanan. Emulator 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 menginisialisasi ulang layanan pada setiap node di cluster.
Sebelum dapat menginstal Apigee mTLS, lingkungan Anda harus memenuhi persyaratan berikut yang dijelaskan di bagian ini.
Persyaratan tersebut mencakup:
- Edge untuk versi Private Cloud
- Sekumpulan utilitas yang diinstal dan diaktifkan
- Akun pengguna dengan tingkat izin yang sesuai
- Mesin administrasi (direkomendasikan)
Edge untuk persyaratan Private Cloud
Apigee mTLS mendukung versi Edge untuk Private Cloud berikut (tetapi tidak di semua platform yang didukung, seperti yang dijelaskan dalam persyaratan OS):
- 4.19.06
- 4.19.01
Apigee mTLS mewajibkan cluster Private Cloud Anda menggunakan topologi yang mencakup setidaknya tiga node Zookeeper. Akibatnya, Anda hanya dapat menginstal Apigee mTLS di topologi yang menggunakan 5, 9, 12 (pusat multi-data), atau 13 node. Untuk 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 Private Cloud 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 mewajibkan Anda menginstal dan mengaktifkan paket berikut di setiap komputer di cluster Anda, termasuk mesin administrasi Anda, sebelum Anda memulai proses penginstalan:
Utilitas/paket | Deskripsi | Hapus 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 |
Menyediakan fungsi ke utilitas iptables . |
|
lsof |
Digunakan oleh skrip penginstalan. | |
nc |
Memverifikasi rute iptables . |
|
openssl |
Menandatangani sertifikat secara lokal selama proses bootstrapping awal. |
Selama penginstalan, Anda juga menginstal paket Consul di mesin administrasi sehingga Anda dapat membuat kredensial dan kunci enkripsi.
Paket apigee-mtls
menginstal dan mengonfigurasi server Konsul termasuk
proxy masuk dan keluar pada node ZooKeeper di cluster.
Izin akun pengguna
Akun yang menjalankan penginstalan Apigee mTLS pada setiap node di cluster harus dapat untuk:
- Memulai, menghentikan, memulai ulang, dan menginisialisasi komponen Apigee
- Menetapkan aturan firewall
- Buat akun pengguna OS/sistem baru
- Aktifkan, nonaktifkan, mulai, hentikan, dan samarkan 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:
- Instal HashiCorp Consul 1.6.2.
- Buat dan distribusikan pasangan sertifikat/kunci dan kunci enkripsi gosip.
- Update dan distribusikan file konfigurasi.
Sistem administrasi mewajibkan:
- Anda telah mendownload dan menginstal utilitas
apigee-service
danapigee-setup
di dalamnya, seperti yang dijelaskan dalam Utilitas penyiapan apigee Edge. - Memiliki akses
scp/ssh
ke semua node di cluster. Untuk mendistribusikan kredensial dan file konfigurasi, Anda harus memiliki aksesscp/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 Konsul dengan Apigee mTLS.
Penggunaan port: Semua node yang menjalankan apigee-mtls
Semua node di cluster yang menggunakan layanan apigee-mtls
harus mengizinkan koneksi dari layanan di localhost (127.0.0.1). Hal ini memungkinkan proxy Konsul 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 di cluster:
Node | Port Server Konsul | Deskripsi | Protocol | Mengizinkan agen mtls eksternal * |
---|---|---|---|---|
Server Konsul (node ZooKeeper) | 8300 |
Menghubungkan semua server Consul dalam cluster. | RPC | |
8301 |
Menangani pesan keanggotaan dan siaran dalam cluster. | UDP/TCP | ||
8302 |
Port WAN yang menangani pesan keanggotaan dan siaran dalam beberapa konfigurasi pusat data. | UDP/TCP | ||
8500 |
Menangani koneksi HTTP ke Consul Server API dari proses di node yang sama.
Port ini tidak digunakan untuk koordinasi atau komunikasi jarak jauh; port ini hanya memproses localhost. |
HTTP | ||
8502 |
Menangani koneksi gRPC+HTTPS ke Consul Server API dari node lain di cluster. | gRPC+HTTPS | ||
8503 |
Menangani koneksi HTTPS ke Consul Server API dari node lain di cluster. | HTTPS | ||
8600 |
Menangani DNS server Konsul. | UDP/TCP | ||
* Apigee merekomendasikan agar Anda membatasi permintaan masuk hanya untuk anggota cluster
(termasuk lintas-datastore). Anda dapat melakukannya dengan iptables .
|
Seperti yang ditunjukkan 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 Konsul, 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 | 10.700 hingga 10.799 | 1 |
Cassandra | 10.100 hingga 10.199 | 2 |
Message Processor | 10.500 hingga 10.599 | 2 |
OpenLDAP | 10.200 hingga 10.299 | 1 |
Postgres | 10.300 hingga 10.399 | 3 |
QPID | 10.400 hingga 10.499 | 2 |
Router | 10.600 hingga 10.699 | 2 |
Penjaga Kebun Binatang | 10.001 hingga 10.099 | 3 |
Konsul menetapkan port dengan cara linear sederhana. Misalnya, jika cluster Anda memiliki dua node Postgres, node pertama menggunakan dua port, sehingga Consul menetapkan port 10300 dan 10301 pada node tersebut. Node kedua juga menggunakan dua port, sehingga Consol menetapkan 10302 dan 10303 ke node tersebut. 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 (masing-masing dua node dikalikan dua port).
Perhatikan hal berikut:
- Proxy konsul tidak dapat memproses port yang sama dengan layanan Apigee.
- Konsul 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 memproses port 15000, proxy B pada host B tidak dapat memproses port 15000.
- Jumlah port yang digunakan bervariasi berdasarkan topologi, seperti yang 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 akan memilih perubahan tersebut dan menerapkannya ke node lain untuk Anda. Untuk informasi selengkapnya, lihat Mengubah konfigurasi apigee-mtls yang ada.
Terminologi
Bagian ini menggunakan terminologi berikut:
Masa Berlaku | Definisi |
---|---|
kluster | Sekelompok mesin yang membentuk Edge Anda untuk penginstalan Private Cloud. |
Konsul | Mesh layanan yang digunakan oleh Apigee mTLS. Untuk informasi tentang cara Consul mengamankan komunikasi Cloud Pribadi, lihat Model Keamanan Konsul. |
mTLS | TLS Diautentikasi Bersama. |
mesh layanan | Jaringan overlay (atau jaringan dalam jaringan). |
TLS | Keamanan Lapisan Transaksi. Protokol autentikasi standar industri untuk komunikasi yang aman. |