Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Konfigurasikan otentikasi TLS timbal balik untuk aplikasi yang berjalan di Amazon EKS
Mahendra Siddappa, Amazon Web Services
Ringkasan
Mutual Transport Layer Security (TLS) berbasis sertifikat adalah komponen TLS opsional yang menyediakan otentikasi peer dua arah antara server dan klien. Dengan TLS timbal balik, klien harus memberikan sertifikat X.509 selama proses negosiasi sesi. Server menggunakan sertifikat ini untuk mengidentifikasi dan mengotentikasi klien.
Mutual TLS adalah persyaratan umum untuk aplikasi Internet of Things (IoT) dan dapat digunakan business-to-business untuk aplikasi atau standar seperti Open Banking.
Pola ini menjelaskan cara mengonfigurasi TLS timbal balik untuk aplikasi yang berjalan pada cluster Amazon Elastic Kubernetes Service (Amazon EKS) dengan menggunakan pengontrol ingress NGINX. Anda dapat mengaktifkan fitur TLS timbal balik bawaan untuk pengontrol ingress NGINX dengan membuat anotasi sumber daya ingress. Untuk informasi selengkapnya tentang anotasi TLS timbal balik pada pengontrol NGINX, lihat Autentikasi sertifikat klien
penting
Pola ini menggunakan sertifikat yang ditandatangani sendiri. Kami menyarankan Anda menggunakan pola ini hanya dengan cluster pengujian, dan bukan di lingkungan produksi. Jika Anda ingin menggunakan pola ini di lingkungan produksi, Anda dapat menggunakan AWS Private Certificate Authority (AWS Private CA) atau standar infrastruktur kunci publik (PKI) yang ada untuk menerbitkan sertifikat pribadi.
Prasyarat dan batasan
Prasyarat
Akun Amazon Web Services (AWS) yang aktif.
Sebuah klaster Amazon EKS yang sudah ada.
AWS Command Line Interface (AWS CLI) versi 1.7 atau yang lebih baru, diinstal dan dikonfigurasi di macOS, Linux, atau Windows.
Utilitas baris perintah kubectl, diinstal dan dikonfigurasi untuk mengakses kluster Amazon EKS. Untuk informasi selengkapnya tentang ini, lihat Menginstal kubectl di dokumentasi Amazon EKS.
Nama Domain Name System (DNS) yang ada untuk menguji aplikasi.
Batasan
Pola ini menggunakan sertifikat yang ditandatangani sendiri. Kami menyarankan Anda menggunakan pola ini hanya dengan cluster pengujian, dan bukan di lingkungan produksi.
Arsitektur

Tumpukan teknologi
Amazon EKS
Amazon Route 53
Kubectl
Alat
Amazon Elastic Kubernetes Service (Amazon EKS) membantu Anda menjalankan Kubernetes di AWS tanpa perlu menginstal atau memelihara control plane atau node Kubernetes Anda sendiri.
Amazon Route 53 adalah layanan web DNS yang sangat tersedia dan dapat diskalakan.
Kubectl adalah utilitas baris perintah yang Anda gunakan untuk berinteraksi dengan cluster Amazon EKS.
Epik
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Hasilkan kunci CA dan sertifikat. | Hasilkan kunci dan sertifikat otoritas sertifikat (CA) dengan menjalankan perintah berikut.
| DevOps insinyur |
Buat kunci server dan sertifikat, dan tandatangani dengan sertifikat CA. | Hasilkan kunci server dan sertifikat, dan tandatangani dengan sertifikat CA dengan menjalankan perintah berikut.
pentingPastikan Anda mengganti | DevOps insinyur |
Buat kunci klien dan sertifikat, dan tandatangani dengan sertifikat CA. | Buat kunci klien dan sertifikat, dan tandatangani dengan sertifikat CA dengan menjalankan perintah berikut.
| DevOps insinyur |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Terapkan pengontrol ingress NGINX di kluster Amazon EKS Anda. | Menyebarkan NGINX ingress controller dengan menggunakan perintah berikut.
| DevOps insinyur |
Verifikasi bahwa layanan pengontrol ingress NGINX sedang berjalan. | Verifikasi bahwa layanan pengontrol ingress NGINX berjalan dengan menggunakan perintah berikut.
pentingPastikan bahwa bidang alamat layanan berisi nama domain Network Load Balancer. | DevOps insinyur |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Buat namespace di cluster Amazon EKS. | Buat namespace yang dipanggil
Ini menyebarkan aplikasi sampel untuk menguji TLS timbal balik. | DevOps insinyur |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Buat deployment dan service Kubernetes di namespace mtls. | Buat file bernama
Buat deployment dan service Kubernetes di
| DevOps insinyur |
Verifikasi bahwa penerapan Kubernetes dibuat. | Jalankan perintah berikut untuk memverifikasi bahwa penerapan dibuat dan memiliki satu pod dalam status yang tersedia.
| DevOps insinyur |
Verifikasi bahwa layanan Kubernetes dibuat. | Verifikasi bahwa layanan Kubernetes dibuat dengan menjalankan perintah berikut.
| DevOps insinyur |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Buat rahasia untuk sumber daya ingress. | Jalankan perintah berikut untuk membuat rahasia untuk pengontrol ingress NGINX dengan menggunakan sertifikat yang Anda buat sebelumnya.
Rahasia Anda memiliki sertifikat server untuk klien untuk mengidentifikasi server dan sertifikat CA untuk server untuk memverifikasi sertifikat klien. | DevOps insinyur |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Buat sumber daya ingress di namespace mtls. | Buat file bernama
Buat sumber daya ingress di
Ini berarti bahwa pengontrol ingress NGINX dapat merutekan lalu lintas ke aplikasi sampel Anda. | DevOps insinyur |
Verifikasi bahwa sumber daya ingress dibuat. | Verifikasi bahwa sumber daya ingress dibuat dengan menjalankan perintah berikut.
pentingPastikan bahwa alamat sumber daya ingress menunjukkan penyeimbang beban yang dibuat untuk pengontrol ingress NGINX. | DevOps insinyur |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Buat catatan CNAME yang menunjuk ke penyeimbang beban untuk pengontrol ingress NGINX. | Masuk ke AWS Management Console, buka konsol Amazon Route 53, dan buat catatan Canonical Name (CNAME) yang mengarah Untuk informasi selengkapnya, lihat Membuat catatan menggunakan konsol Route 53 dalam dokumentasi Route 53. | DevOps insinyur |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Uji pengaturan TLS timbal balik tanpa sertifikat. | Jalankan perintah berikut.
Anda harus menerima respons kesalahan “400 Tidak diperlukan sertifikat SSL dikirim”. | DevOps insinyur |
Uji pengaturan TLS timbal balik dengan sertifikat. | Jalankan perintah berikut.
Anda harus menerima respons “mTLS berfungsi”. | DevOps insinyur |