Mengkonfigurasi cluster dan jaringan Apache Kafka yang dikelola sendiri 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 dan jaringan Apache Kafka yang dikelola sendiri untuk Lambda

Untuk menghubungkan fungsi Lambda Anda ke cluster Apache Kafka yang dikelola sendiri, Anda perlu mengkonfigurasi cluster dan jaringan tempat ia berada dengan benar. Halaman ini menjelaskan cara mengkonfigurasi cluster dan jaringan Anda. Jika kluster dan jaringan Anda sudah dikonfigurasi dengan benar, lihat Mengkonfigurasi sumber acara Apache Kafka yang dikelola sendiri untuk Lambda untuk mengonfigurasi pemetaan sumber peristiwa.

Pengaturan cluster Apache Kafka yang dikelola sendiri

Anda dapat meng-host cluster Apache Kafka yang dikelola sendiri dengan penyedia cloud seperti Confluent Cloud atau Redpanda, atau menjalankannya di infrastruktur Anda sendiri. Pastikan klaster Anda dikonfigurasi dengan benar dan dapat diakses dari jaringan tempat pemetaan sumber peristiwa Lambda Anda akan terhubung.

Konfigurasikan keamanan jaringan

Untuk memberi Lambda akses penuh ke Apache Kafka yang dikelola sendiri melalui pemetaan sumber acara Anda, kluster Anda harus menggunakan titik akhir publik (alamat IP publik), atau Anda harus memberikan akses ke Amazon VPC tempat Anda membuat klaster.

Saat Anda menggunakan Apache Kafka yang dikelola sendiri dengan Lambda, buat titik akhir AWS PrivateLink VPC yang menyediakan akses fungsi Anda ke sumber daya di VPC Amazon Anda.

catatan

AWS PrivateLink Titik akhir VPC diperlukan untuk fungsi dengan pemetaan sumber peristiwa yang menggunakan mode default (sesuai permintaan) untuk poller acara. Jika pemetaan sumber acara menggunakan mode yang disediakan, Anda tidak perlu mengonfigurasi titik akhir AWS PrivateLink VPC.

Buat titik akhir untuk menyediakan akses ke sumber daya berikut:

  • Lambda — Buat titik akhir untuk kepala layanan Lambda.

  • AWS STS — Buat titik akhir AWS STS untuk prinsipal layanan untuk mengambil peran atas nama Anda.

  • Secrets Manager - Jika klaster Anda menggunakan Secrets Manager untuk menyimpan kredensi, buat endpoint untuk Secrets Manager.

Atau, konfigurasikan gateway NAT di setiap subnet publik di Amazon VPC. Untuk informasi selengkapnya, lihat Aktifkan akses internet untuk fungsi Lambda yang terhubung dengan VPC.

Saat Anda membuat pemetaan sumber peristiwa untuk Apache Kafka yang dikelola sendiri, Lambda memeriksa apakah Antarmuka Jaringan Elastis ENIs () sudah ada untuk subnet dan grup keamanan yang dikonfigurasi untuk VPC Amazon Anda. Jika Lambda menemukan yang ada ENIs, ia mencoba untuk menggunakannya kembali. Jika tidak, Lambda membuat yang baru ENIs untuk terhubung ke sumber acara dan memanggil fungsi Anda.

catatan

Fungsi Lambda selalu berjalan di dalam yang VPCs dimiliki oleh layanan Lambda. Konfigurasi VPC fungsi Anda tidak memengaruhi pemetaan sumber peristiwa. Hanya konfigurasi jaringan sumber acara yang menentukan bagaimana Lambda terhubung ke sumber acara Anda.

Konfigurasikan grup keamanan untuk VPC Amazon yang berisi cluster Anda. Secara default, Apache Kafka yang dikelola sendiri menggunakan port berikut:. 9092

  • Aturan masuk - Izinkan semua lalu lintas di port broker default untuk grup keamanan yang terkait dengan sumber acara Anda. 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. Atau, Anda juga 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 VPC Amazon — Jika Anda menggunakan titik akhir VPC Amazon, grup keamanan yang terkait dengan titik akhir VPC Amazon Anda harus mengizinkan lalu lintas masuk pada port dari grup keamanan klaster. 443

Jika klaster menggunakan autentikasi, Anda juga dapat membatasi kebijakan endpoint untuk titik akhir Secrets Manager. Untuk memanggil Secrets Manager API, Lambda menggunakan peran fungsi Anda, bukan kepala layanan Lambda.

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" } ] }

Saat Anda menggunakan titik akhir Amazon VPC, AWS merutekan panggilan API Anda untuk menjalankan fungsi Anda menggunakan Antarmuka Jaringan Elastis (ENI) titik akhir. Kepala layanan Lambda perlu memanggil lambda:InvokeFunction peran dan fungsi apa pun yang menggunakannya. ENIs

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. Untuk memastikan bahwa pemetaan sumber peristiwa Anda dapat menjalankan fungsi Lambda Anda, kebijakan titik akhir VPC harus mengizinkan kepala layanan Lambda untuk memanggil dan. sts:AssumeRole lambda:InvokeFunction Membatasi kebijakan titik akhir VPC Anda agar hanya mengizinkan panggilan API yang berasal dari organisasi Anda mencegah pemetaan sumber peristiwa berfungsi dengan baik, "Resource": "*" sehingga diperlukan dalam kebijakan ini.

Contoh kebijakan titik akhir VPC berikut menunjukkan cara memberikan akses yang diperlukan ke prinsipal layanan Lambda untuk titik akhir dan Lambda. AWS STS

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": "*" } ] }