Pengantar Apigee mTLS

Fitur Apigee mTLS meningkatkan keamanan pada komunikasi antarkomponen di Edge Anda untuk cluster Private Cloud. Protokol ini menyediakan cara standar industri untuk mengonfigurasi dan menginstal mesh layanan. Cloud SQL mendukung pengelolaan paket dan otomatisasi konfigurasi.

Ringkasan arsitektur

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

Gambar berikut menunjukkan koneksi antara komponen Apigee yang diamankan oleh Apigee mTLS (in red). Port yang ditampilkan pada gambar adalah contoh; 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 agar dapat diakses oleh Server Pengelolaan.)

Seperti yang terlihat 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 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 Consul yang berjalan di setiap node ZooKeeper di cluster Anda dan layanan Consul berikut di setiap node dalam cluster:

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

Misalnya, saat Server Pengelolaan mengirim pesan ke Router, layanan proxy traffic keluar akan mencegat pesan keluar, mengenkripsinya, lalu mengirimkannya ke Router. Saat node Router menerima pesan, layanan proxy masuk 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, Apigee mTLS menggunakan utilitas iptables, yaitu layanan firewall Linux yang mengelola pengalihan traffic.

Persyaratan

Sebelum dapat menginstal Apigee mTLS, lingkungan Anda harus memenuhi persyaratan berikut:

Bagian berikut menjelaskan setiap persyaratan tersebut secara mendetail.

Persyaratan topologi

Apigee mTLS mengharuskan topologi lingkungan Anda menyertakan minimal 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.

Utilitas/paket

Apigee mTLS mengharuskan Anda untuk 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 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 memiliki hak istimewa yang ditingkatkan.

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

  • Memulai, menghentikan, memulai ulang, dan melakukan inisialisasi komponen Apigee
  • Setel 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 administratif yang dijelaskan dalam dokumen ini, termasuk:

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

Saat menyiapkan komputer administrasi:

  • Pastikan Anda memiliki akses root.
  • Download dan instal utilitas apigee-service dan apigee-setup di dalamnya, seperti yang dijelaskan dalam Menginstal utilitas penyiapan apigee Edge.
  • Pastikan Anda dapat menggunakan scp/ssh untuk mengakses semua node di cluster dari mesin administrasi. Hal 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). Tindakan 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 dalam cluster:

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

Port ini tidak digunakan untuk komunikasi atau koordinasi jarak jauh; port ini hanya memantau di 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 di 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 ditampilkan 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 10.100 sampai 10199 2
Message Processor 10.500 sampai 10.599 2
OpenLDAP 10200 sampai 10299 1
Postgres 10.300 sampai 10.399 3
APID 10.400 hingga 10.499 2
Router 10.600 hingga 10.699 2
ZooKeeper 10.000 hingga 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 pada 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 terlihat, jumlah port sebenarnya bergantung pada topologi: Jika cluster memiliki dua node Postgres, Anda harus membuka empat port (dua node dikali 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, termasuk pusat data. Artinya, jika proxy A pada host A memantau port 15000, maka 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 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 di satu node, Anda harus membuat perubahan yang sama di semua node; sistem tidak akan menerapkan perubahan tersebut untuk Anda di node lain. Untuk informasi selengkapnya, lihat Mengubah konfigurasi apigee-mtls yang ada.

Terminologi

Bagian ini menggunakan terminologi berikut:

Masa Berlaku Definisi
cluster Sekumpulan mesin yang membentuk Edge Anda 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 Consul.
mTLS TLS Diautentikasi secara Bersama.
mesh layanan Jaringan overlay (atau jaringan dalam jaringan).
TLS {i> Transaction Layer Security<i}. Protokol autentikasi standar industri untuk komunikasi yang aman.