Otentikasi timbal balik dengan TLS di Application Load Balancer - Elastic Load Balancing

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Otentikasi timbal balik dengan TLS di Application Load Balancer

Mutual TLS authentication adalah variasi dari transport layer security (TLS). Tradisional TLS membangun komunikasi yang aman antara server dan klien, di mana server perlu memberikan identitasnya kepada kliennya. Dengan timbal balikTLS, penyeimbang beban menegosiasikan otentikasi timbal balik antara klien dan server saat bernegosiasi. TLS Ketika Anda menggunakan timbal balik TLS dengan Application Load Balancer, Anda menyederhanakan manajemen otentikasi dan mengurangi beban pada aplikasi Anda.

Dengan menggunakan timbal balik TLS dengan Application Load Balancer, penyeimbang beban Anda dapat mengelola otentikasi klien untuk membantu memastikan bahwa hanya klien tepercaya yang berkomunikasi dengan aplikasi backend Anda. Saat Anda menggunakan fitur ini, Application Load Balancer mengautentikasi klien dengan sertifikat dari otoritas sertifikat pihak ketiga (CA) atau dengan menggunakan AWS Private Certificate Authority (PCA), secara opsional, dengan pemeriksaan pencabutan. Application Load Balancer meneruskan informasi sertifikat klien ke backend, yang dapat digunakan aplikasi Anda untuk otorisasi. Dengan menggunakan mutual TLS di Application Load Balancer, Anda bisa mendapatkan otentikasi terkelola bawaan, terukur, dan terkelola untuk entitas berbasis sertifikat, yang menggunakan pustaka yang sudah mapan.

Mutual TLS for Application Load Balancers menyediakan dua opsi berikut untuk memvalidasi sertifikat klien X.509v3 Anda:

Catatan: Sertifikat klien X.509v1 tidak didukung.

  • Mutual TLS passthrough: Ketika Anda menggunakan mode TLS passthrough timbal balik, Application Load Balancer mengirimkan seluruh rantai sertifikat klien ke target menggunakan header. HTTP Kemudian, dengan menggunakan rantai sertifikat klien, Anda dapat menerapkan otentikasi penyeimbang beban yang sesuai dan logika otorisasi target dalam aplikasi Anda.

  • TLSVerifikasi bersama: Saat Anda menggunakan mode TLS verifikasi timbal balik, Application Load Balancer melakukan otentikasi sertifikat klien X.509 untuk klien saat penyeimbang beban menegosiasikan koneksi. TLS

Untuk memulai dengan timbal balik TLS di Application Load Balancer menggunakan passthrough, Anda hanya perlu mengonfigurasi listener untuk menerima sertifikat apa pun dari klien. Untuk menggunakan timbal balik TLS dengan verifikasi, Anda harus melakukan hal berikut:

  • Buat sumber daya toko kepercayaan baru.

  • Unggah bundel otoritas sertifikat (CA) Anda dan, secara opsional, daftar pencabutan.

  • Lampirkan trust store ke listener yang dikonfigurasi untuk memverifikasi sertifikat klien.

Untuk step-by-step prosedur untuk mengonfigurasi mode TLS verifikasi timbal balik dengan Application Load Balancer Anda, lihat. Mengkonfigurasi timbal balik TLS pada Application Load Balancer

Sebelum Anda mulai mengonfigurasi timbal balik TLS pada Application Load Balancer

Sebelum Anda mulai mengonfigurasi timbal balik TLS pada Application Load Balancer Anda, perhatikan hal-hal berikut:

Kuota

Application Load Balancer mencakup batas-batas tertentu yang terkait dengan jumlah trust store, sertifikat CA, dan daftar pencabutan sertifikat yang digunakan dalam akun Anda. AWS

Untuk informasi selengkapnya, lihat Kuota untuk Penyeimbang Beban Aplikasi Anda.

Persyaratan untuk sertifikat

Application Load Balancers mendukung yang berikut ini untuk sertifikat yang digunakan dengan otentikasi timbal balikTLS:

  • Sertifikat yang didukung: X.509v3

  • Kunci publik yang didukung: RSA 2K - 8K atau ECDSA secp256r1, secp384r1, secp521r1

  • Algoritma tanda tangan yang didukung:SHA256, 384, 512 dengan/, 384, 512 dengan RSA SHA256 EC/SHA256, 384.512 hash dengan - dengan RSASSA PSS MGF1

Bundel sertifikat CA

Berikut ini berlaku untuk bundel otoritas sertifikat (CA):

  • Application Load Balancer mengunggah setiap bundel sertifikat otoritas sertifikat (CA) sebagai batch. Application Load Balancers tidak mendukung pengunggahan sertifikat individual. Jika Anda perlu menambahkan sertifikat baru, Anda harus mengunggah file bundel sertifikat.

  • Untuk mengganti bundel sertifikat CA, gunakan file ModifyTrustStoreAPI.

Pesanan sertifikat untuk passthrough

Bila Anda menggunakan TLS passthrough timbal balik, Application Load Balancer menyisipkan header untuk menyajikan rantai sertifikat klien ke target backend. Urutan presentasi dimulai dengan sertifikat daun dan diakhiri dengan sertifikat root.

Dimulainya kembali sesi

Dimulainya kembali sesi tidak didukung saat menggunakan mode TLS passthrough atau verifikasi bersama dengan Application Load Balancer.

HTTPheader

Application Load Balancer menggunakan X-Amzn-Mtls header untuk mengirim informasi sertifikat ketika menegosiasikan koneksi klien menggunakan mutual. TLS Untuk informasi selengkapnya dan contoh header, lihatHTTPheader dan timbal balik TLS.

Berkas sertifikat CA

File sertifikat CA harus memenuhi persyaratan berikut:

  • File sertifikat harus menggunakan format PEM (Privacy Enhanced Mail).

  • Isi sertifikat harus dilampirkan dalam -----BEGIN CERTIFICATE----- dan -----END CERTIFICATE----- batas-batas.

  • Komentar harus didahului oleh # karakter dan tidak boleh mengandung karakter apa pun-.

  • Tidak mungkin ada garis kosong.

Contoh sertifikat yang tidak diterima (tidak valid):

# comments Certificate: Data: Version: 3 (0x2) Serial Number: 01 Signature Algorithm: ecdsa-with-SHA384 Issuer: C=US, O=EXAMPLE, OU=EXAMPLE, CN=EXAMPLE Validity Not Before: Jan 11 23:57:57 2024 GMT Not After : Jan 10 00:57:57 2029 GMT Subject: C=US, O=EXAMPLE, OU=EXAMPLE, CN=EXAMPLE Subject Public Key Info: Public Key Algorithm: id-ecPublicKey Public-Key: (384 bit) pub: 00:01:02:03:04:05:06:07:08 ASN1 OID: secp384r1 NIST CURVE: P-384 X509v3 extensions: X509v3 Key Usage: critical Digital Signature, Key Encipherment, Certificate Sign, CRL Sign X509v3 Basic Constraints: critical CA:TRUE X509v3 Subject Key Identifier: 00:01:02:03:04:05:06:07:08 X509v3 Subject Alternative Name: URI:EXAMPLE.COM Signature Algorithm: ecdsa-with-SHA384 00:01:02:03:04:05:06:07:08 -----BEGIN CERTIFICATE----- Base64–encoded certificate -----END CERTIFICATE-----

Contoh sertifikat yang diterima (valid):

  1. Sertifikat tunggal (PEM—dikodekan):

    # comments -----BEGIN CERTIFICATE----- Base64–encoded certificate -----END CERTIFICATE-----
  2. Beberapa sertifikat (PEM—dikodekan):

    # comments -----BEGIN CERTIFICATE----- Base64–encoded certificate -----END CERTIFICATE----- # comments -----BEGIN CERTIFICATE----- Base64–encoded certificate -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- Base64–encoded certificate -----END CERTIFICATE-----

HTTPheader dan timbal balik TLS

Bagian ini menjelaskan HTTP header yang digunakan Application Load Balancer untuk mengirim informasi sertifikat saat menegosiasikan koneksi dengan klien menggunakan mutual. TLS X-Amzn-MtlsHeader spesifik yang digunakan Application Load Balancer bergantung pada mode TLS timbal balik yang telah Anda tentukan: mode passthrough atau mode verifikasi.

Untuk informasi tentang HTTP header lain yang didukung oleh Application Load Balancers, lihat. HTTPheader dan Application Load Balancers

HTTPheader untuk mode passthrough

Untuk saling TLS dalam mode passthrough, Application Load Balancers menggunakan header berikut.

Header ini berisi PEM format URL -encode dari seluruh rantai sertifikat klien yang disajikan dalam koneksi, dengan karakter yang +=/ aman.

Contoh isi header:

X-Amzn-Mtls-Clientcert: -----BEGIN%20CERTIFICATE-----%0AMIID<...reduced...>do0g%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIID1<...reduced...>3eZlyKA%3D%3D%0A-----END%20CERTIFICATE-----%0A

HTTPheader untuk modus verifikasi

Untuk saling TLS dalam mode verifikasi, Application Load Balancers menggunakan header berikut.

Header ini berisi representasi heksadesimal dari nomor seri sertifikat daun.

Contoh isi header:

X-Amzn-Mtls-Clientcert-Serial-Number: 03A5B1

Header ini berisi representasi RFC2253 string dari nama terhormat penerbit (DN).

Contoh isi header:

X-Amzn-Mtls-Clientcert-Issuer: CN=rootcamtls.com,OU=rootCA,O=mTLS,L=Seattle,ST=Washington,C=US

Header ini berisi representasi RFC2253 string dari nama terhormat subjek (DN).

Contoh isi header:

X-Amzn-Mtls-Clientcert-Subject: CN=client_.com,OU=client-3,O=mTLS,ST=Washington,C=US

Header ini berisi format ISO86 01 notAfter tanggal notBefore dan.

Contoh isi header:

X-Amzn-Mtls-Clientcert-Validity: NotBefore=2023-09-21T01:50:17Z;NotAfter=2024-09-20T01:50:17Z

Header ini berisi PEM format URL -encoded dari sertifikat daun, dengan karakter yang +=/ aman.

Contoh isi header:

X-Amzn-Mtls-Clientcert-Leaf: -----BEGIN%20CERTIFICATE-----%0AMIIG<...reduced...>NmrUlw%0A-----END%20CERTIFICATE-----%0A

Log koneksi untuk Application Load Balancers

Elastic Load Balancing menyediakan log koneksi yang menangkap atribut tentang permintaan yang dikirim ke Application Load Balancers Anda. Log koneksi berisi informasi seperti alamat IP klien dan port, informasi sertifikat klien, hasil koneksi, dan TLS cipher yang digunakan. Log koneksi ini kemudian dapat digunakan untuk meninjau pola permintaan, dan tren lainnya.

Untuk mempelajari lebih lanjut tentang log koneksi, lihat Log koneksi untuk Application Load Balancer