Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengonfigurasi izin peran eksekusi Lambda
Untuk mengakses kluster MSK Amazon, fungsi dan pemetaan sumber peristiwa Anda memerlukan izin untuk melakukan berbagai tindakan Amazon MSK API. Tambahkan izin ini ke peran eksekusi fungsi. Jika pengguna Anda memerlukan akses, tambahkan izin yang diperlukan ke kebijakan identitas untuk pengguna atau peran.
Untuk mencakup semua izin yang diperlukan, Anda dapat melampirkan kebijakan yang dikelola AWSLambdaMSKExecutionPeran ke peran eksekusi Anda. Atau, Anda dapat menambahkan setiap izin secara manual.
Topik
Izin dasar
Peran eksekusi fungsi Lambda Anda harus memiliki izin yang diperlukan berikut untuk membuat dan menyimpan log di Log. CloudWatch
Izin akses klaster
Agar Lambda dapat mengakses klaster MSK Amazon Anda atas nama Anda, fungsi Lambda Anda harus memiliki izin berikut dalam peran pelaksanaannya:
-
kafka:DescribeVpcConnection: Hanya diperlukan untuk pemetaan sumber acara lintas akun.
-
kafka: ListVpcConnections: Tidak diperlukan dalam peran eksekusi, tetapi diperlukan untuk kepala sekolah IAM yang membuat pemetaan sumber peristiwa lintas akun.
Anda hanya perlu menambahkan salah satu dari kafka: DescribeCluster atau kafka: DescribeCluster V2. Untuk klaster MSK Amazon yang disediakan, salah satu izin berfungsi. Untuk cluster MSK Amazon tanpa server, Anda harus menggunakan kafka: V2. DescribeCluster
catatan
Lambda akhirnya berencana untuk menghapus kafka: DescribeCluster izin dari kebijakan yang dikelola AWSLambdaMSKExecutionPeran. Jika Anda menggunakan kebijakan ini, migrasi aplikasi apa pun menggunakan kafka: DescribeCluster untuk menggunakan kafka: DescribeCluster V2 sebagai gantinya.
Izin VPC
Jika klaster MSK Amazon Anda berada dalam subnet pribadi VPC Anda, fungsi Lambda Anda harus memiliki izin tambahan untuk mengakses sumber daya VPC Amazon Anda. Ini termasuk VPC, subnet, grup keamanan, dan antarmuka jaringan Anda. Peran eksekusi fungsi Anda harus memiliki izin berikut:
Izin opsional
Fungsi Lambda Anda mungkin juga memerlukan izin untuk:
-
Akses rahasia SCRAM Anda, jika Anda menggunakan otentikasi SASL/SCRAM. Ini memungkinkan fungsi Anda menggunakan nama pengguna dan kata sandi untuk terhubung ke Kafka.
-
Jelaskan rahasia Secrets Manager Anda, jika Anda menggunakan SASL/SCRAM atau otentikasi mTLS. Hal ini memungkinkan fungsi Anda untuk mengambil kredensi atau sertifikat yang diperlukan untuk koneksi aman.
-
Akses kunci yang AWS KMS dikelola pelanggan Anda, jika Anda ingin mengenkripsi kriteria filter Anda. Ini membantu menjaga rahasia aturan penyaringan pesan Anda.
-
Akses rahasia registri skema Anda, jika Anda menggunakan registri skema dengan otentikasi:
-
Untuk Registri AWS Glue Skema: Kebutuhan
glue:GetRegistry
danglue:GetSchemaVersion
izin fungsi Anda. Ini memungkinkan fungsi Anda untuk mencari dan menggunakan aturan format pesan yang disimpan di AWS Glue. -
Untuk Registri Skema Konfluen
dengan BASIC_AUTH
atauCLIENT_CERTIFICATE_TLS_AUTH
: Fungsi Anda memerlukansecretsmanager:GetSecretValue
izin untuk rahasia yang berisi kredensyal otentikasi. Ini memungkinkan fungsi Anda mengambil username/password atau sertifikat yang diperlukan untuk mengakses Registri Skema Konfluen. -
Untuk sertifikat CA pribadi: Fungsi Anda membutuhkan secretsmanager: GetSecretValue izin untuk rahasia yang berisi sertifikat. Hal ini memungkinkan fungsi Anda untuk memverifikasi identitas pendaftar skema yang menggunakan sertifikat kustom.
-
Ini sesuai dengan izin yang diperlukan berikut:
-
kafka: ListScramSecrets - Memungkinkan daftar rahasia SCRAM untuk otentikasi Kafka
-
secretsmanager: GetSecretValue - Memungkinkan pengambilan rahasia dari Secrets Manager
-
KMS: Decrypt - Izin dekripsi data terenkripsi menggunakan AWS KMS
-
lem: GetRegistry - Memungkinkan akses ke AWS Glue Schema Registry
-
lem: GetSchemaVersion - Memungkinkan pengambilan versi skema tertentu dari Schema Registry AWS Glue
Selain itu, jika Anda ingin mengirim catatan pemanggilan yang gagal ke tujuan yang gagal, Anda memerlukan izin berikut tergantung pada jenis tujuan:
-
Untuk tujuan Amazon SQS: sqs: SendMessage - Memungkinkan pengiriman pesan ke antrian Amazon SQS
-
Untuk tujuan Amazon SNS: SNS: Publikasikan - Izinkan penerbitan pesan ke topik Amazon SNS
-
Untuk tujuan bucket Amazon S3: s3: PutObject dan s3: ListBucket - Mengaktifkan penulisan dan daftar objek dalam bucket Amazon S3
Memecahkan masalah otentikasi umum dan kesalahan otorisasi
Jika salah satu izin yang diperlukan untuk mengkonsumsi data dari kluster MSK Amazon tidak ada, Lambda menampilkan salah satu pesan galat berikut dalam pemetaan sumber peristiwa di bawah. LastProcessingResult Untuk informasi selengkapnya tentang setiap metode otentikasi yang didukung, lihatMengkonfigurasi metode otentikasi cluster di Lambda.
Pesan kesalahan
Cluster gagal mengotorisasi Lambda
Untuk SASL/SCRAM atau mTL, kesalahan ini menunjukkan bahwa pengguna yang disediakan tidak memiliki semua izin daftar kontrol akses (ACL) Kafka yang diperlukan berikut:
DescribeConfigs Cluster
Jelaskan Grup
Baca Grup
Jelaskan Topik
Baca Topik
Untuk kontrol akses IAM, peran eksekusi fungsi Anda tidak memiliki satu atau beberapa izin yang diperlukan untuk mengakses grup atau topik. Tinjau daftar izin yang diperlukan di halaman ini.
Saat Anda membuat kebijakan Kafka ACLs atau IAM dengan izin klaster Kafka yang diperlukan, tentukan topik dan kelompokkan sebagai sumber daya. Nama topik harus cocok dengan topik dalam pemetaan sumber acara. Nama grup harus cocok dengan UUID pemetaan sumber peristiwa.
Setelah Anda menambahkan izin yang diperlukan ke peran eksekusi, mungkin perlu beberapa menit agar perubahan diterapkan.
Otentikasi SASL gagal
Untuk SASL/SCRAM, kesalahan ini menunjukkan bahwa nama pengguna dan kata sandi yang diberikan tidak valid.
Untuk kontrol akses IAM, peran eksekusi tidak memiliki kafka-cluster:Connect
izin untuk cluster MSK. Tambahkan izin ini ke peran dan tentukan Amazon Resource Name (ARN) cluster sebagai sumber daya.
Anda mungkin melihat kesalahan ini terjadi sebentar-sebentar. Cluster menolak koneksi setelah jumlah koneksi TCP melebihi kuota layanan MSK Amazon. Lambda mundur dan mencoba lagi sampai koneksi berhasil. Setelah Lambda terhubung ke cluster dan polling untuk catatan, hasil pemrosesan terakhir berubah menjadi. OK
Server gagal mengautentikasi Lambda
Kesalahan ini menunjukkan bahwa broker Amazon MSK Kafka gagal mengautentikasi dengan Lambda. Ini dapat terjadi karena salah satu alasan berikut:
Anda tidak memberikan sertifikat klien untuk otentikasi mTLS.
Anda memberikan sertifikat klien, tetapi broker tidak dikonfigurasi untuk menggunakan MTL.
Sertifikat klien tidak dipercaya oleh broker.
Sertifikat atau kunci pribadi yang diberikan tidak valid
Kesalahan ini menunjukkan bahwa konsumen MSK Amazon tidak dapat menggunakan sertifikat atau kunci pribadi yang disediakan. Pastikan bahwa sertifikat dan kunci menggunakan format PEM, dan bahwa enkripsi kunci pribadi menggunakan PBES1 algoritma. Lihat Mengkonfigurasi rahasia mTLS untuk informasi selengkapnya.