Mengonfigurasi kluster MSK Amazon dan jaringan VPC Amazon untuk Lambda - AWS Lambda

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

Mengonfigurasi kluster MSK Amazon dan jaringan VPC Amazon untuk Lambda

Untuk menghubungkan AWS Lambda fungsi Anda ke kluster MSK Amazon, Anda perlu mengonfigurasi klaster dengan benar dan Amazon Virtual Private Cloud (VPC) tempat ia berada. Halaman ini menjelaskan cara mengkonfigurasi cluster dan VPC Anda. Jika cluster dan VPC Anda sudah dikonfigurasi dengan benar, lihat Mengonfigurasi sumber acara MSK Amazon untuk Lambda untuk mengonfigurasi pemetaan sumber peristiwa.

Ikhtisar persyaratan konfigurasi jaringan untuk integrasi Lambda dan MSK

Konfigurasi jaringan yang diperlukan untuk integrasi Lambda dan MSK bergantung pada arsitektur jaringan aplikasi Anda. Ada tiga sumber daya utama yang terlibat dalam integrasi ini: cluster MSK Amazon, fungsi Lambda, dan pemetaan sumber peristiwa Lambda. Masing-masing sumber daya ini berada di VPC yang berbeda:

  • Cluster MSK Amazon Anda biasanya berada di subnet pribadi VPC yang Anda kelola.

  • Fungsi Lambda Anda berada di VPC terkelola yang dimiliki oleh AWS Lambda.

  • Pemetaan sumber peristiwa Lambda Anda berada di AWS VPC terkelola lain yang dimiliki oleh Lambda, terpisah dari VPC yang berisi fungsi Anda.

Pemetaan sumber peristiwa adalah sumber daya perantara antara kluster MSK dan fungsi Lambda. Pemetaan sumber acara memiliki dua pekerjaan utama. Pertama, ia polling cluster MSK Anda untuk pesan baru. Kemudian, ia memanggil fungsi Lambda Anda dengan pesan-pesan itu. Karena ketiga sumber daya ini berbeda VPCs, operasi polling dan pemanggilan memerlukan panggilan jaringan lintas-VPC.

Persyaratan konfigurasi jaringan untuk pemetaan sumber peristiwa Anda bergantung pada apakah menggunakan mode yang disediakan atau mode sesuai permintaan, seperti yang ditunjukkan pada diagram berikut:

Perbandingan panggilan jaringan untuk mode on-demand versus mode yang disediakan Kafka ESMs

Cara pemetaan sumber peristiwa Lambda melakukan polling pada cluster MSK Anda untuk pesan baru adalah sama di kedua mode. Untuk membuat koneksi antara pemetaan sumber peristiwa dan kluster MSK Anda, Lambda membuat ENI hyperplane (atau menggunakan kembali yang sudah ada, jika tersedia) di subnet pribadi Anda untuk membuat koneksi yang aman. Seperti yang diilustrasikan dalam diagram, ENI hyperplane ini menggunakan konfigurasi subnet dan grup keamanan klaster MSK Anda, bukan fungsi Lambda Anda.

Setelah polling pesan dari cluster, cara Lambda memanggil fungsi Anda berbeda di setiap mode:

  • Dalam mode yang disediakan, Lambda secara otomatis menangani koneksi antara VPC pemetaan sumber peristiwa dan fungsi VPC. Jadi, Anda tidak memerlukan komponen jaringan tambahan untuk berhasil menjalankan fungsi Anda.

  • Dalam mode sesuai permintaan, pemetaan sumber peristiwa Lambda Anda memanggil fungsi Anda melalui jalur melalui VPC yang dikelola pelanggan. Karena itu, Anda perlu mengonfigurasi gateway NAT di subnet publik VPC Anda, atau AWS PrivateLinktitik akhir di subnet pribadi VPC yang menyediakan akses ke Lambda, (STS), dan secara opsional,.AWS Security Token ServiceAWS Secrets Manager Mengkonfigurasi salah satu dari opsi ini dengan benar memungkinkan koneksi antara VPC Anda dan VPC runtime yang dikelola Lambda, yang diperlukan untuk menjalankan fungsi Anda.

Gateway NAT memungkinkan sumber daya di subnet pribadi Anda untuk mengakses internet publik. Menggunakan konfigurasi ini berarti lalu lintas Anda melintasi internet sebelum menjalankan fungsi Lambda. AWS PrivateLink endpoint memungkinkan subnet pribadi terhubung dengan aman ke AWS layanan atau sumber VPC pribadi lainnya tanpa melintasi internet publik. Lihat Mengkonfigurasi gateway NAT untuk sumber acara MSK atau Mengkonfigurasi AWS PrivateLink titik akhir untuk sumber acara MSK untuk detail tentang cara mengonfigurasi sumber daya ini.

Sejauh ini, kami berasumsi bahwa klaster MSK Anda berada di subnet pribadi dalam VPC Anda, yang merupakan kasus yang lebih umum. Namun, bahkan jika klaster MSK Anda berada di subnet publik dalam VPC Anda, Anda harus mengonfigurasi AWS PrivateLink titik akhir untuk mengaktifkan koneksi yang aman. Tabel berikut merangkum persyaratan konfigurasi jaringan berdasarkan cara Anda mengonfigurasi kluster MSK dan pemetaan sumber peristiwa Lambda:

Lokasi klaster MSK (dalam VPC yang dikelola pelanggan) Mode penskalaan pemetaan sumber acara Lambda Konfigurasi jaringan yang diperlukan

Subnet privat

Mode sesuai permintaan

Gateway NAT (di subnet publik VPC Anda), atau AWS PrivateLink titik akhir (di subnet pribadi VPC Anda) untuk mengaktifkan akses ke Lambda,, dan secara opsional, Secrets Manager. AWS STS

Subnet publik

Mode sesuai permintaan

AWS PrivateLink endpoint (di subnet publik VPC Anda) untuk mengaktifkan akses ke Lambda,, dan secara opsional AWS STS, Secrets Manager.

Subnet privat

Mode yang disediakan

Tidak ada

Subnet publik

Mode yang disediakan

Tidak ada

Selain itu, grup keamanan yang terkait dengan kluster MSK Anda harus mengizinkan lalu lintas melalui port yang benar. Pastikan Anda memiliki aturan grup keamanan berikut yang dikonfigurasi:

  • Aturan masuk - Izinkan semua lalu lintas di port broker default. Port yang digunakan MSK tergantung pada jenis otentikasi pada cluster: 9098 untuk otentikasi IAM, untuk SASL/SCRAM, dan 9096 untuk TLS. 9094 Atau, Anda dapat menggunakan aturan grup keamanan referensi mandiri untuk mengizinkan akses dari instans dalam grup keamanan yang sama.

  • Aturan keluar — Izinkan semua lalu lintas di port 443 untuk tujuan eksternal jika fungsi Anda perlu berkomunikasi dengan AWS layanan lain. Atau, Anda dapat menggunakan aturan grup keamanan referensi diri untuk membatasi akses ke broker jika Anda tidak perlu berkomunikasi dengan layanan lain AWS .

  • Aturan masuk titik akhir Amazon VPC — Jika Anda menggunakan titik akhir VPC Amazon, grup keamanan yang terkait dengan titik akhir harus mengizinkan lalu lintas masuk pada port dari grup keamanan klaster. 443

Mengkonfigurasi gateway NAT untuk sumber acara MSK

Anda dapat mengonfigurasi gateway NAT untuk memungkinkan pemetaan sumber acara Anda ke pesan polling dari cluster Anda, dan menjalankan fungsi melalui jalur melalui VPC Anda. Ini diperlukan hanya jika pemetaan sumber acara Anda menggunakan mode sesuai permintaan, dan klaster Anda berada dalam subnet pribadi VPC Anda. Jika klaster Anda berada di subnet publik VPC Anda, atau pemetaan sumber acara Anda menggunakan mode yang disediakan, Anda tidak perlu mengonfigurasi gateway NAT.

Gateway NAT memungkinkan sumber daya dalam subnet pribadi untuk mengakses internet publik. Jika Anda memerlukan konektivitas pribadi ke Lambda, lihat Mengkonfigurasi AWS PrivateLink titik akhir untuk sumber acara MSK saja.

Setelah Anda mengkonfigurasi gateway NAT Anda, Anda harus mengkonfigurasi tabel rute yang sesuai. Ini memungkinkan lalu lintas dari subnet pribadi Anda untuk rute ke internet publik melalui gateway NAT.

Diagram VPC yang dikelola pelanggan menggunakan NAT Gateway untuk merutekan lalu lintas dari subnet pribadi ke internet publik.

Langkah-langkah berikut memandu Anda melalui konfigurasi gateway NAT menggunakan konsol. Ulangi langkah-langkah ini seperlunya untuk setiap Availability Zone (AZ).

Untuk mengonfigurasi gateway NAT dan perutean yang tepat (konsol)
  1. Ikuti langkah-langkah di Buat gateway NAT, perhatikan hal berikut:

    • Gateway NAT harus selalu berada di subnet publik. Buat gateway NAT dengan konektivitas publik.

    • Jika kluster MSK Anda direplikasi di beberapa AZs, buat satu gateway NAT per AZ. Misalnya, di setiap AZ, VPC Anda harus memiliki satu subnet pribadi yang berisi cluster Anda, dan satu subnet publik yang berisi gateway NAT Anda. Untuk pengaturan dengan tiga AZs, Anda akan memiliki tiga subnet pribadi, tiga subnet publik, dan tiga gateway NAT.

  2. Setelah Anda membuat gateway NAT, buka konsol VPC Amazon dan pilih tabel Route di menu sebelah kiri.

  3. Pilih Buat tabel rute.

  4. Kaitkan tabel rute ini dengan VPC yang berisi kluster MSK Anda. Secara opsional, masukkan nama untuk tabel rute Anda.

  5. Pilih Buat tabel rute.

  6. Pilih tabel rute yang baru saja Anda buat.

  7. Di bawah tab Asosiasi subnet, pilih Edit asosiasi subnet.

    • Kaitkan tabel rute ini dengan subnet pribadi yang berisi kluster MSK Anda.

  8. Pilih Edit rute.

  9. Pilih Tambahkan rute:

    1. Untuk Tujuan, pilih 0.0.0.0/0.

    2. Untuk Target, pilih gateway NAT.

    3. Di kotak pencarian, pilih gateway NAT yang Anda buat di langkah 1. Ini harus menjadi gateway NAT di AZ yang sama dengan subnet pribadi yang berisi cluster MSK Anda (subnet pribadi yang Anda kaitkan dengan tabel rute ini pada langkah 6).

  10. Pilih Simpan perubahan.

Anda dapat mengonfigurasi AWS PrivateLink titik akhir untuk melakukan polling pesan dari klaster, dan menjalankan fungsi melalui jalur melalui VPC Anda. Titik akhir ini akan memungkinkan klaster MSK Anda mengakses hal-hal berikut:

Mengkonfigurasi PrivateLink titik akhir hanya diperlukan jika pemetaan sumber acara Anda menggunakan mode sesuai permintaan. Jika pemetaan sumber acara Anda menggunakan mode yang disediakan, Lambda membuat koneksi yang diperlukan untuk Anda.

PrivateLink titik akhir memungkinkan akses pribadi yang aman ke AWS layanan berakhir AWS PrivateLink. Atau, untuk mengkonfigurasi gateway NAT untuk memberikan akses kluster MSK Anda ke internet publik, lihat. Mengkonfigurasi gateway NAT untuk sumber acara MSK

Setelah Anda mengonfigurasi titik akhir VPC Anda, kluster MSK Anda harus memiliki akses langsung dan pribadi ke Lambda, STS, dan secara opsional, Secrets Manager.

Diagram VPC yang dikelola pelanggan menggunakan titik AWS PrivateLink akhir untuk mengakses layanan. AWS

Langkah-langkah berikut memandu Anda dalam mengonfigurasi PrivateLink titik akhir menggunakan konsol. Ulangi langkah-langkah ini seperlunya untuk setiap titik akhir (Lambda, STS, Secrets Manager).

Untuk mengkonfigurasi PrivateLink titik akhir VPC (konsol)
  1. Buka konsol Amazon VPC dan pilih Endpoints di menu sebelah kiri.

  2. Pilih Buat titik akhir.

  3. Secara opsional, masukkan nama untuk titik akhir Anda.

  4. Untuk Jenis, pilih AWS layanan.

  5. Di bawah Layanan, mulailah mengetik nama layanan. Misalnya, untuk membuat titik akhir untuk terhubung ke Lambda, lambda ketik kotak pencarian.

  6. Dalam hasilnya, Anda akan melihat titik akhir layanan di wilayah saat ini. Misalnya, di wilayah AS Timur (Virginia N.), Anda harus melihatcom.amazonaws.us-east-2.lambda. Pilih layanan ini.

  7. Di bawah Pengaturan jaringan, pilih VPC yang berisi kluster MSK Anda.

  8. Di bawah Subnet, pilih klaster MSK Anda. AZs

    • Untuk setiap AZ, di bawah Subnet ID, pilih subnet pribadi yang berisi kluster MSK Anda.

  9. Di bawah Grup keamanan, pilih grup keamanan yang terkait dengan kluster MSK Anda.

  10. Pilih Buat titik akhir.

Secara default, titik akhir Amazon VPC memiliki kebijakan IAM terbuka yang memungkinkan akses luas ke sumber daya. Praktik terbaik adalah membatasi kebijakan ini untuk melakukan tindakan yang diperlukan menggunakan titik akhir tersebut. Misalnya, untuk titik akhir Secrets Manager, Anda dapat mengubah kebijakannya sehingga hanya mengizinkan peran eksekusi fungsi Anda untuk mengakses rahasia.

contoh Kebijakan titik akhir VPC — titik akhir Secrets Manager
{ "Statement": [ { "Action": "secretsmanager:GetSecretValue", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws::iam::123456789012:role/my-role" ] }, "Resource": "arn:aws::secretsmanager:us-west-2:123456789012:secret:my-secret" } ] }

Untuk titik akhir AWS STS dan Lambda, Anda dapat membatasi prinsipal panggilan ke kepala layanan Lambda. Namun, pastikan Anda menggunakannya "Resource": "*" dalam kebijakan ini.

contoh Kebijakan titik akhir VPC - titik akhir AWS STS
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "lambda.amazonaws.com" ] }, "Resource": "*" } ] }
contoh Kebijakan titik akhir VPC - Titik akhir Lambda
{ "Statement": [ { "Action": "lambda:InvokeFunction", "Effect": "Allow", "Principal": { "Service": [ "lambda.amazonaws.com" ] }, "Resource": "*" } ] }