View a markdown version of this page

Mengkonfigurasi sumber acara Amazon MQ 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 sumber acara Amazon MQ untuk Lambda

Konfigurasikan keamanan jaringan

Untuk memberikan Lambda akses penuh ke Amazon MQ melalui pemetaan sumber acara Anda, broker Anda harus menggunakan titik akhir publik (alamat IP publik), atau Anda harus memberikan akses ke Amazon VPC tempat Anda membuat broker.

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

catatan

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

Buat titik akhir untuk menyediakan akses ke sumber daya berikut:

  • Lambda — Membuat titik akhir untuk prinsipal layanan Lambda.

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

  • Manajer Rahasia - Jika broker Anda menggunakan Manajer Rahasia untuk menyimpan kredenSIAL, buat titik akhir untuk Manajer Rahasia.

Atau, konfigurasikan gateway NAT pada setiap subnet publik di Amazon VPC. Untuk informasi selengkapnya, lihat Aktifkan akses internet untuk fungsi VPC-connected Lambda.

Saat Anda membuat pemetaan sumber peristiwa untuk Amazon MQ, Lambda memeriksa apakah Elastic Network Interfaces (ENI) sudah ada untuk subnet dan grup keamanan yang dikonfigurasi untuk Amazon VPC Anda. Jika Lambda menemukan ENI yang ada, ia mencoba untuk menggunakannya kembali. Jika tidak, Lambda membuat ENI baru untuk terhubung ke sumber peristiwa dan memanggil fungsi Anda.

catatan

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

Konfigurasikan grup keamanan untuk Amazon VPC yang berisi broker Anda. Secara default, Amazon MQ menggunakan port berikut: 61617 (Amazon MQ untuk ActiveMQ), dan 5671 (Amazon MQ untuk RabbitMQ).

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

Jika broker Anda menggunakan otentikasi, Anda juga dapat membatasi kebijakan titik akhir untuk titik akhir Manajer Rahasia. Untuk memanggil API Manajer Rahasia, Lambda menggunakan peran fungsi Anda, bukan prinsipal layanan Lambda.

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

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

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

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

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

Buat pemetaan sumber acara

Buat pemetaan sumber kejadian untuk memberi tahu Lambda agar mengirim rekaman dari broker Amazon MQ ke fungsi Lambda. Anda dapat membuat beberapa pemetaan sumber kejadian untuk memproses data yang sama dengan beberapa fungsi, atau untuk memproses item dari beberapa sumber dengan satu fungsi.

Untuk mengonfigurasi fungsi Anda untuk membaca dari Amazon MQ, tambahkan izin yang diperlukan dan buat pem icu MQ di konsol Lambda.

Untuk membaca catatan dari broker Amazon MQ, fungsi Lambda Anda memerlukan izin berikut. Anda memberikan izin Lambda untuk berinteraksi dengan broker Amazon MQ Anda dan sumber daya yang mendasarinya dengan menambahkan pernyataan izin ke peran eksekusi fungsi Anda: Mendefinisikan izin fungsi Lambda dengan peran pelaksanaan

catatan

Saat menggunakan kunci terkelola pelanggan yang terenkripsi, tambahkan juga izin kms:Decrypt.

Untuk menambahkan izin dan membuat pemicu
  1. Buka Halaman fungsi di konsol Lambda.

  2. Pilih nama sebuah fungsi.

  3. Pilih tab Konfigurasi, lalu pilih Izin.

  4. Di bawah Nama peran, pilih tautan ke peran eksekusi Anda. Tautan ini membuka peran di konsol IAM.

    Tautan ke peran eksekusi.
  5. Pilih Tambah izin, lalu pilih Buat kebijakan sebaris.

    Buat kebijakan sebaris di konsol IAM.
  6. Di editor kebijakan, pilih JSON. Masukkan kebijakan berikut. Fungsi Anda memerlukan izin ini untuk membaca dari broker Amazon MQ.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "mq:DescribeBroker", "secretsmanager:GetSecretValue", "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "*" } ] }
    catatan

    Saat menggunakan kunci yang dikelola pelanggan terenkripsi, Anda juga harus menambahkan kms:Decrypt izin.

  7. Pilih Berikutnya. Masukkan nama kebijakan, lalu pilih Buat kebijakan.

  8. Kembali ke fungsi Anda di konsol Lambda. Di bagian Gambaran umum fungsi, pilih Tambah pemicu.

    Bagian ikhtisar fungsi dari konsol Lambda.
  9. Pilih jenis pemicu MQ.

  10. Konfigurasikan opsi yang diperlukan, lalu pilih Tam bah.

Lambda mendukung opsi berikut untuk sumber kejadian Amazon MQ:

  • MQ broker – Pilih broker Amazon MQ.

  • Ukuran batch – Atur jumlah maksimum pesan yang akan diambil dalam satu batch.

  • Nama antrean – Masukkan antrean Amazon MQ yang akan digunakan.

  • Konfigurasi akses sumber - Masukkan informasi host virtual dan rahasia Manajer Rahasia yang menyimpan kredenSIAL broker Anda.

  • Aktifkan pemicu – Nonaktifkan pemicu untuk menghentikan pemrosesan rekaman.

Untuk mengaktifkan atau menonaktifkan pemicu (atau menghapusnya) pilih pemicu MQ di desainer. Untuk mengonfigurasi ulang pemicu, gunakan operasi API pemetaan sumber kejadian.