View a markdown version of this page

Mengkonfigurasi cluster Amazon MSK dan jaringan Amazon VPC Anda untuk Lambda - AWS Lambda

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

Mengkonfigurasi cluster Amazon MSK dan jaringan Amazon VPC Anda untuk Lambda

Untuk menghubungkan AWS Lambda fungsi Anda ke cluster Amazon MSK Anda, Anda perlu mengonfigurasi cluster Anda dengan benar dan Amazon Virtual Private Cloud (VPC) tempat itu berada. Halaman ini menjelaskan cara mengonfigurasi cluster dan VPC Anda. Jika cluster dan VPC Anda sudah dikonfigurasi dengan benar, lihat Mengkonfigurasi sumber acara Amazon MSK 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 tergantung pada arsitektur jaringan aplikasi Anda. Ada tiga sumber daya utama yang terlibat dalam integrasi ini: cluster Amazon MSK, fungsi Lambda, dan pemetaan sumber peristiwa Lambda. Masing-masing sumber daya ini berada di VPC yang berbeda:

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

  • Fungsi Lambda Anda berada di VPC yang AWS dikelola milik Lambda.

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

Pemetaan sumber peristiwa adalah sumber daya perantara antara cluster MSK dan fungsi Lambda. Pemetaan sumber peristiwa memiliki dua pekerjaan utama. Pertama, ini mensurvei cluster MSK Anda untuk pesan baru. Kemudian, ia memanggil fungsi Lambda Anda dengan pesan-pesan tersebut. Karena ketiga sumber daya ini berada di VPC yang berbeda, operasi jajak pendapat dan pemanggilan memerlukan panggilan jaringan lintas VPC.

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

Perbandingan panggilan jaringan untuk ESM Kafka sesuai permintaan versus mode disediakan.

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

Setelah melakukan 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 memanggil fungsi Anda.

  • Dalam mode on-demand, pemetaan sumber peristiwa Lambda memanggil fungsi Anda dengan menggunakan jalur melalui VPC yang dikelola pelanggan Anda. Karena itu, Anda perlu mengkonfigurasi gateway NAT di subnet publik VPC Anda, atau AWS PrivateLink titik akhir di subnet pribadi VPC yang menyediakan akses ke Lambda, AWS Security Token Service (STS), dan opsional,. AWS Secrets Manager Mengkonfigurasi salah satu opsi ini dengan benar memungkinkan koneksi antara VPC Anda dan VPC Lambda-managed runtime, yang diperlukan untuk memanggil 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 memanggil fungsi Lambda. AWS PrivateLink Endpoint memungkinkan subnet pribadi untuk terhubung dengan aman ke AWS layanan atau sumber daya VPC pribadi lainnya tanpa melintasi internet publik. Lihat Mengkonfigurasi gateway NAT untuk sumber peristiwa MSK atau Melakukan konfigurasi AWS PrivateLink titik akhir untuk sumber peristiwa MSK untuk detail tentang cara mengonfigurasi sumber daya ini.

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

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

Subnet privat

On-demand Modus

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

Subnet publik

On-demand Modus

AWS PrivateLink titik akhir (di subnet publik VPC Anda) untuk mengaktifkan akses ke Lambda,, dan opsional AWS STS, Manajer Rahasia.

Subnet privat

Mode yang disediakan

Tidak ada

Subnet publik

Mode yang disediakan

Tidak ada

Selain itu, grup keamanan yang terkait dengan cluster 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 pada port broker default. Port yang digunakan MSK tergantung pada jenis otentikasi pada cluster: 9098 untuk otentikasi IAM, 9096 untuk SASL/SCRAM, dan 9094 untuk TLS. Atau, Anda dapat menggunakan aturan grup keamanan referensi mandiri untuk mengizinkan akses dari instance 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 mandiri 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 Amazon VPC, grup keamanan yang terkait dengan titik akhir harus mengizinkan lalu lintas masuk pada port 443 dari grup keamanan cluster.

Mengkonfigurasi gateway NAT untuk sumber peristiwa MSK

Anda dapat mengonfigurasi gateway NAT untuk mengizinkan pemetaan sumber peristiwa untuk pesan polling dari cluster Anda, dan memanggil fungsi dengan menggunakan jalur melalui VPC Anda. Ini hanya diperlukan jika pemetaan sumber peristiwa Anda menggunakan mode on-demand, dan cluster Anda berada dalam subnet pribadi VPC Anda. Jika cluster berada di subnet publik VPC, atau pemetaan sumber peristiwa menggunakan mode yang disediakan, Anda tidak perlu mengonfigurasi gateway NAT.

Gateway NAT memungkinkan sumber daya di subnet pribadi untuk mengakses internet publik. Jika Anda memerlukan konektivitas pribadi ke Lambda, lihat sebagai Melakukan konfigurasi AWS PrivateLink titik akhir untuk sumber peristiwa MSK gantinya.

Setelah mengkonfigurasi gateway NAT, Anda harus mengkonfigurasi tabel rute yang sesuai. Ini memungkinkan lalu lintas dari subnet pribadi Anda untuk mengarahkan 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 mengkonfigurasi gateway NAT dan routing yang tepat (konsol)
  1. Ikuti langkah-langkah di Buat gateway NAT, perhatikan hal berikut:

    • NAT gateway harus selalu berada di subnet publik. Buat gateway NAT dengan konektivitas https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html publik.

    • Jika cluster MSK Anda direplikasi di beberapa AZ, 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 AZ, Anda akan memiliki tiga subnet pribadi, tiga subnet publik, dan tiga gateway NAT.

  2. Setelah Anda membuat gateway NAT, buka konsol Amazon VPC dan pilih Tabel rute di menu kiri.

  3. Pilih Buat tabel rute.

  4. Kaitkan tabel rute ini dengan VPC yang berisi cluster 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 cluster MSK Anda.

  8. Pilih Edit rute.

  9. Pilih Tambahkan rute:

    1. Untuk Tujuan, pilih 0.0.0.0/0.

    2. Untuk Target, pilih NAT gateway.

    3. Di kotak pencarian, pilih gateway NAT yang Anda buat pada 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 mengonfigur AWS PrivateLink asi titik akhir untuk pesan polling dari cluster Anda, dan memanggil fungsi dengan menggunakan jalur melalui VPC Anda. Titik akhir ini harus memungkinkan cluster MSK Anda mengakses yang berikut ini:

Mengon PrivateLink figurasi titik akhir hanya diperlukan jika pemetaan sumber peristiwa Anda menggunakan mode sesuai permintaan. Jika pemetaan sumber peristiwa Anda menggunakan mode yang disediakan, Lambda menetapkan koneksi yang diperlukan untuk Anda.

PrivateLink titik akhir memungkinkan akses aman dan pribadi ke AWS layanan di atas AWS PrivateLink. Atau, untuk mengonfigurasi gateway NAT untuk memberikan akses cluster MSK Anda ke internet publik, lihatMengkonfigurasi gateway NAT untuk sumber peristiwa MSK.

Setelah Anda mengonfigurasi titik akhir VPC, cluster MSK Anda harus memiliki akses langsung dan pribadi ke Lambda, STS, dan secara opsional, Manajer Rahasia.

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

Langkah-langkah berikut memandu Anda melalui konfigurasi 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, ke lambda tik kotak pencarian.

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

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

  8. Di bawah Subnets, pilih AZ tempat cluster MSK Anda berada.

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

  9. Di bawah Grup keamanan, pilih grup keamanan yang terkait dengan cluster 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 Manajer Rahasia, Anda dapat mengubah kebijakannya sehingga hanya memungkinkan peran eksekusi fungsi Anda untuk mengakses rahasia.

contoh Kebijakan titik akhir VPC - Titik akhir Manajer Rahasia
{ "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 prinsipal layanan Lambda. Namun, pastikan Anda menggunakannya "Resource": "*" dalam kebijakan ini.

contoh Kebijakan titik akhir VPC — AWS STS titik akhir
{ "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": "*" } ] }