Mengonfigurasi Apigee mTLS

Edge untuk Private Cloud v4.19.01

Setelah menginstal komponen apigee-mtls di setiap node dalam cluster, Anda harus mengonfigurasi dan menginisialisasinya. Anda melakukannya dengan membuat pasangan sertifikat/kunci dan memperbarui file konfigurasi di mesin administrasi Anda. Selanjutnya, Anda men-deploy file yang sama yang dihasilkan ke semua node dalam cluster dan menginisialisasi komponen apigee-mtls lokal.

Mengonfigurasi apigee-mtls (setelah penginstalan awal)

Bagian ini menjelaskan cara mengonfigurasi Apigee mTLS untuk satu pusat data segera setelah penginstalan awal. Untuk informasi tentang cara melakukan update pada penginstalan Apigee mTLS yang sudah ada, lihat Mengubah konfigurasi apigee-mtls yang ada. Untuk mengetahui informasi tentang cara mengonfigurasi beberapa pusat data, lihat Mengonfigurasi beberapa pusat data untuk Apigee mTLS.

Berikut adalah proses umum untuk mengonfigurasi apigee-mtls:

  1. Update file konfigurasi: Di mesin administrasi Anda, perbarui file konfigurasi untuk menyertakan setelan apigee-mtls.
  2. Instal Consul dan buat kredensial: Instal Consul dan gunakan untuk membuat kredensial TLS (hanya sekali).

    Selain itu, edit file konfigurasi Apigee mTLS Anda menjadi:

    1. Menambahkan informasi kredensial
    2. Menentukan topologi cluster

    Perhatikan bahwa Anda dapat menggunakan kredensial yang sudah ada atau membuatnya dengan Consul.

  3. Mendistribusikan kredensial dan file konfigurasi: Distribusikan pasangan sertifikat/kunci yang sama dan file konfigurasi yang diperbarui ke semua node di cluster Anda.
  4. Melakukan inisialisasi apigee-mtls: Melakukan inisialisasi komponen apigee-mtls pada setiap node.

Setiap langkah ini dijelaskan di bagian berikutnya.

Langkah 1: Perbarui file konfigurasi Anda

Bagian ini menjelaskan cara mengubah file konfigurasi untuk menyertakan properti konfigurasi mTLS. Untuk informasi umum lebih lanjut tentang file konfigurasi, lihat Membuat file konfigurasi.

Setelah memperbarui file konfigurasi dengan properti terkait mTLS, Anda kemudian menyalinnya ke semua node dalam cluster sebelum menginisialisasi komponen apigee-mtls pada node tersebut.

Perintah yang mereferensikan file konfigurasi menggunakan "config_file" untuk menunjukkan bahwa lokasinya bervariasi, bergantung pada tempat Anda menyimpannya di setiap node.

Untuk memperbarui file konfigurasi:

  1. Di mesin administrasi Anda, buka file konfigurasi.
  2. Salin kumpulan properti konfigurasi mTLS berikut dan tempelkan ke file konfigurasi:
    ALL_IP="ALL_PRIVATE_IPS_IN_CLUSTER"
    ZK_MTLS_HOSTS="ZOOKEEPER_PRIVATE_IPS"
    CASS_MTLS_HOSTS="CASSANDRA_PRIVATE_IPS"
    PG_MTLS_HOSTS="POSTGRES_PRIVATE_IPS"
    RT_MTLS_HOSTS="ROUTER_PRIVATE_IPS"
    MS_MTLS_HOSTS="MGMT_SERVER_PRIVATE_IPS"
    MP_MTLS_HOSTS="MESSAGE_PROCESSOR_PRIVATE_IPS"
    QP_MTLS_HOSTS="QPID_PRIVATE_IPS"
    LDAP_MTLS_HOSTS="OPENLDAP_PRIVATE_IPS"
    MTLS_ENCAPSULATE_LDAP="y"
    
    ENABLE_SIDECAR_PROXY="y"
    ENCRYPT_DATA="BASE64_GOSSIP_MESSAGE"
    PATH_TO_CA_CERT="PATH/TO/consul-agent-ca.pem"
    PATH_TO_CA_KEY="PATH/TO/consul-agent-ca-key.pem"
    APIGEE_MTLS_NUM_DAYS_CERT_VALID_FOR="NUMBER_OF_DAYS"

    Tetapkan nilai setiap properti agar selaras dengan konfigurasi Anda.

    Tabel berikut menjelaskan properti konfigurasi ini:

    Properti Deskripsi
    ALL_IP Daftar alamat IP host pribadi yang dipisahkan spasi dari semua node dalam cluster.

    Urutan alamat IP tidak menjadi masalah, hanya saja semua file konfigurasi di seluruh cluster harus sama.

    Jika Anda mengonfigurasi Apigee mTLS untuk beberapa pusat data, cantumkan semua alamat IP untuk semua host di semua region.

    LDAP_MTLS_HOSTS Alamat IP host pribadi node OpenLDAP di cluster.
    ZK_MTLS_HOSTS

    Daftar alamat IP host pribadi yang dipisahkan spasi, tempat node ZooKeeper dihosting di cluster.

    Perhatikan bahwa berdasarkan persyaratan, setidaknya harus ada tiga node ZooKeeper.

    CASS_MTLS_HOSTS Daftar alamat IP host pribadi yang dipisahkan spasi, tempat server Cassandra dihosting di cluster.
    PG_MTLS_HOSTS Daftar alamat IP host pribadi yang dipisahkan spasi, tempat server Postgres dihosting di cluster.
    RT_MTLS_HOSTS Daftar alamat IP host pribadi yang dipisahkan spasi, tempat Router dihosting di cluster.
    MTLS_ENCAPSULATE_LDAP Mengenkripsi traffic LDAP antara Message Processor dan server LDAP. Tetapkan ke y.
    MS_MTLS_HOSTS Daftar alamat IP host pribadi yang dipisahkan spasi, tempat node Server Pengelolaan dihosting di cluster.
    MP_MTLS_HOSTS Daftar alamat IP host pribadi yang dipisahkan spasi, tempat Prosesor Pesan dihosting di cluster.
    QP_MTLS_HOSTS Daftar alamat IP host pribadi yang dipisahkan spasi, tempat server Qpid dihosting di cluster.
    ENABLE_SIDECAR_PROXY Menentukan apakah Cassandra dan Postgres harus mengetahui mesh layanan.

    Anda harus menetapkan nilai ini ke "y".

    ENCRYPT_DATA Kunci enkripsi berenkode base64 yang digunakan oleh Consul . Anda membuat kunci ini menggunakan perintah consul keygen di Langkah 2: Instal Consul dan buat kredensial.

    Nilai ini harus sama di semua node dalam cluster.

    PATH_TO_CA_CERT Lokasi file sertifikat pada node. Anda membuat file ini di Langkah 2: Instal Consul dan buat kredensial.

    Lokasi ini harus sama di seluruh node dalam cluster sehingga file konfigurasi sama.

    Sertifikat harus dienkode dengan X509v3.

    PATH_TO_CA_KEY Lokasi file kunci pada node. Anda membuat file ini di Langkah 2: Instal Consul dan buat kredensial.

    Lokasi ini harus sama di seluruh node dalam cluster sehingga file konfigurasi sama.

    File kunci harus berenkode X509v3.

    APIGEE_MTLS_NUM_DAYS_CERT_VALID_FOR

    Jumlah hari yang cocok untuk sertifikat saat Anda membuat sertifikat kustom.

    Nilai defaultnya adalah 365. Nilai maksimumnya adalah 7865 hari (5 tahun).

    Selain properti yang tercantum di atas, Apigee mTLS menggunakan beberapa properti tambahan saat Anda menginstalnya pada konfigurasi multi-pusat data. Untuk informasi selengkapnya, lihat Mengonfigurasi beberapa pusat data.

  3. Pastikan properti ENABLE_SIDECAR_PROXY ke "y".
  4. Perbarui alamat IP di properti terkait host. Pastikan Anda menggunakan alamat IP pribadi saat merujuk ke setiap node, bukan alamat IP publik.

    Pada langkah berikutnya, Anda akan menetapkan nilai properti lain seperti ENCRYPT_DATA, PATH_TO_CA_CERT, dan PATH_TO_CA_KEY. Anda belum menetapkan nilainya.

    Saat mengedit properti konfigurasi apigee-mtls, perhatikan hal-hal berikut:

    • Semua properti adalah string; Anda harus menggabungkan nilai semua properti dalam tanda kutip tunggal atau ganda.
    • Jika nilai terkait host memiliki lebih dari satu alamat IP pribadi, pisahkan setiap alamat IP dengan spasi.
    • Gunakan alamat IP pribadi dan bukan nama host atau alamat IP publik untuk semua properti terkait host di file konfigurasi.
    • Urutan alamat IP dalam nilai properti harus dalam urutan yang sama di semua file konfigurasi di seluruh cluster.
  5. Simpan perubahan di file konfigurasi.

Langkah 2: Instal Consul dan buat kredensial

Bagian ini menjelaskan cara menginstal Consul dan membuat kredensial.

Anda harus memilih salah satu metode berikut untuk membuat kredensial:

  • Buat CA Anda sendiri menggunakan Consul, seperti yang dijelaskan di bagian ini (direkomendasikan)
  • Gunakan kredensial CA yang ada dengan Apigee mTLS (lanjutan)

Tentang kredensial

Kredensial terdiri dari hal berikut:

  • Sertifikat: Sertifikat TLS yang dihosting pada setiap node
  • Kunci: Kunci publik TLS yang dihosting di setiap node
  • Pesan gosip: Kunci enkripsi berenkode base-64

Anda hanya perlu membuat satu versi dari setiap file ini satu kali saja. Anda dapat menyalin file kunci dan sertifikat ke semua node dalam cluster, lalu menambahkan kunci enkripsi ke file konfigurasi yang juga Anda salin ke semua node.

Untuk mengetahui informasi selengkapnya tentang penerapan enkripsi Consul, lihat artikel berikut:

Instal Consul dan buat kredensial

Anda menggunakan biner Consul lokal untuk menghasilkan kredensial yang digunakan Apigee mTLS untuk mengautentikasi komunikasi yang aman di antara node di cluster Private Cloud Anda. Oleh karena itu, Anda harus menginstal Consul di mesin administrasi sebelum dapat membuat kredensial.

Untuk menginstal Consul dan membuat kredensial mTLS:

  1. Di mesin administrasi Anda, download biner Consul 1.6.2 dari situs HashiCorp.
  2. Ekstrak konten file arsip yang didownload. Misalnya, ekstrak konten ke /opt/consul/.
  3. Di mesin administrasi Anda, buat Certificate Authority (CA) baru dengan menjalankan perintah berikut:
    /opt/consul/consul tls ca create

    Consul membuat file berikut, yang merupakan pasangan sertifikat/kunci:

    • consul-agent-ca.pem (sertifikat)
    • consul-agent-ca-key.pem (kunci)

    Secara default, file kunci dan sertifikat dienkode X509v3.

    Kemudian, Anda akan menyalin file ini ke semua node dalam cluster. Namun, saat ini Anda hanya boleh memutuskan di mana pada node tempat Anda akan meletakkan file ini. Keduanya harus berada di lokasi yang sama pada setiap node. Misalnya, /opt/apigee/.

  4. Dalam file konfigurasi, tetapkan nilai PATH_TO_CA_CERT ke lokasi tempat Anda akan menyalin file consul-agent-ca.pem pada node. Contoh:
    PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem"
  5. Tetapkan nilai PATH_TO_CA_KEY ke lokasi tempat Anda akan menyalin file consul-agent-ca-key.pem pada node. Contoh:
    PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem"
  6. Buat kunci enkripsi untuk Consul dengan menjalankan perintah berikut:
    /opt/consul/consul keygen

    Consul menghasilkan string acak yang terlihat mirip dengan berikut ini:

    QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=
  7. Salin string dan tetapkan sebagai nilai properti ENCRYPT_DATA dalam file konfigurasi Anda. Misalnya:
    ENCRYPT_DATA="QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY="
  8. Simpan file konfigurasi Anda.

Contoh berikut menunjukkan setelan terkait mTLS dalam file konfigurasi (dengan contoh nilai):

...
IP1=10.126.0.121
IP2=10.126.0.124
IP3=10.126.0.125
IP4=10.126.0.127
IP5=10.126.0.130
ALL_IP="$IP1 $IP2 $IP3 $IP4 $IP5"
LDAP_MTLS_HOSTS="$IP3"
ZK_MTLS_HOSTS="$IP3 $IP4 $IP5"
CASS_MTLS_HOSTS="$IP3 $IP4 $IP5"
PG_MTLS_HOSTS="$IP2 $IP1"
RT_MTLS_HOSTS="$IP4 $IP5"
MS_MTLS_HOSTS="$IP3"
MP_MTLS_HOSTS="$IP4 $IP5"
QP_MTLS_HOSTS="$IP2 $IP1"
ENABLE_SIDECAR_PROXY="y"
ENCRYPT_DATA="QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY="
PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem"
PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem"
...

Langkah 3: Distribusikan file konfigurasi dan kredensial

Salin file berikut ke node yang menjalankan ZooKeeper menggunakan alat seperti scp:

  • File konfigurasi: Salin versi terbaru file ini dan ganti versi yang ada di semua node (bukan hanya node yang menjalankan ZooKeeper).
  • consul-agent-ca.pem: Salin ke lokasi yang Anda tentukan sebagai nilai PATH_TO_CA_CERT dalam file konfigurasi.
  • consul-agent-ca-key.pem: Salin ke lokasi yang Anda tentukan sebagai nilai PATH_TO_CA_KEY dalam file konfigurasi.

Pastikan lokasi tempat Anda menyalin sertifikat dan file kunci sesuai dengan nilai yang Anda tetapkan dalam file konfigurasi di Langkah 2: Instal Consul dan buat kredensial.

Langkah 4: Lakukan inisialisasi apigee-mtls

Setelah memperbarui file konfigurasi, menyalinnya beserta kredensial ke semua node dalam cluster, serta menginstal apigee-mtls pada setiap node, Anda siap untuk melakukan inisialisasi komponen apigee-mtls pada setiap node.

Untuk melakukan inisialisasi apigee-mtls:

  1. Login ke node di cluster sebagai pengguna root. Anda dapat menjalankan langkah-langkah ini pada node dalam urutan apa pun yang diinginkan.
  2. Jadikan pengguna apigee:apigee sebagai pemilik file konfigurasi yang diperbarui, seperti yang ditunjukkan contoh berikut:
    chown apigee:apigee config_file
  3. Konfigurasikan komponen apigee-mtls dengan menjalankan perintah berikut:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls setup -f config_file
  4. (Opsional) Jalankan perintah berikut untuk memverifikasi bahwa penyiapan Anda berhasil:
    /opt/apigee/apigee-mtls/lib/actions/iptables.sh validate
  5. Mulai Apigee mTLS dengan menjalankan perintah berikut:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls start

    Setelah menginstal Apigee mTLS, Anda harus memulai komponen ini sebelum komponen lain pada node.

  6. (Khusus node Cassandra) Cassandra memerlukan argumen tambahan agar dapat berfungsi dalam mesh keamanan. Oleh karena itu, Anda harus menjalankan perintah berikut pada setiap node Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra setup -f config_file
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  7. (Khusus node Postgres) Postgres memerlukan argumen tambahan agar dapat berfungsi dalam mesh keamanan. Akibatnya, Anda harus melakukan hal berikut pada node Postgres:

    (Khusus master)

    1. Jalankan perintah berikut pada node master Postgres:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup -f config_file
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql configure
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart

    (Khusus standby)

    1. Cadangkan data Postgres yang ada. Untuk menginstal Apigee mTLS, Anda harus menginisialisasi ulang node master/standby, sehingga akan terjadi kehilangan data. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan replikasi master/standby untuk Postgres.
    2. Hapus semua data Postgres:
      rm -rf /opt/apigee/data/apigee-postgresql/pgdata
    3. Konfigurasikan Postgres, lalu mulai ulang Postgres, seperti yang ditunjukkan contoh berikut:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup -f config_file
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql configure
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart

    Jika Anda menginstal pada topologi multi-pusat data, gunakan jalur absolut untuk file konfigurasi.

  8. Mulai komponen Apigee yang tersisa pada node dalam urutan awal, seperti yang ditunjukkan contoh berikut:
    /opt/apigee/apigee-service/bin/apigee-service component_name start
  9. Ulangi proses ini untuk setiap node dalam cluster.
  10. (Opsional) Pastikan bahwa inisialisasi apigee-mtls berhasil menggunakan satu atau beberapa metode berikut:
    1. Memvalidasi konfigurasi iptables
    2. Memverifikasi status proxy jarak jauh
    3. Memverifikasi status kuorum

    Setiap metode ini dijelaskan dalam Memverifikasi konfigurasi Anda.

Mengubah konfigurasi apigee-mtls yang ada

Untuk menyesuaikan konfigurasi apigee-mtls yang ada, Anda harus meng-uninstal dan menginstal ulang apigee-mtls.

Untuk menegaskan kembali hal ini, saat mengubah konfigurasi Apigee mTLS yang ada:

  • Jika Anda mengubah file konfigurasi, Anda harus meng-uninstal apigee-mtls terlebih dahulu, lalu menjalankan kembali setup atau configure:
    # DO THIS:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls uninstall
    
    # BEFORE YOU DO THIS:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls setup -f file
    OR
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls configure
  • Anda harus meng-uninstal dan menjalankan ulang setup atau configure pada semua node dalam cluster, bukan hanya pada satu node.