Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Pemicu Lambda pengirim kustom
Lambda memicu CustomEmailSender
dan CustomSMSSender
mendukung pemberitahuan email dan SMS pihak ketiga di kumpulan pengguna. Anda dapat memilih penyedia SMS dan email untuk mengirim pemberitahuan kepada pengguna dari dalam kode fungsi Lambda Anda. Saat Amazon Cognito mengirimkan undangan, kode MFA, kode konfirmasi, kode verifikasi, dan kata sandi sementara kepada pengguna, acara mengaktifkan fungsi Lambda yang dikonfigurasi. Amazon Cognito mengirimkan kode dan kata sandi sementara (rahasia) ke fungsi Lambda Anda yang diaktifkan. Amazon Cognito mengenkripsi rahasia ini dengan kunci yang dikelola AWS KMS pelanggan dan. AWS Encryption SDK AWS Encryption SDK Ini adalah pustaka enkripsi sisi klien yang membantu Anda mengenkripsi dan mendekripsi data generik.
- CustomEmailSender
-
Amazon Cognito memanggil pemicu ini untuk mengirim notifikasi email kepada pengguna.
- Kustom SMSSender
-
Amazon Cognito memanggil pemicu ini untuk mengirim notifikasi SMS kepada pengguna.
Konsep enkripsi
Amazon Cognito tidak mengirim kode pengguna dalam teks biasa dalam peristiwa yang dikirimkan ke pemicu pengirim khusus. Fungsi Lambda harus mendekripsi kode dalam acara. Konsep berikut adalah arsitektur enkripsi yang harus digunakan fungsi Anda untuk mendapatkan kode yang dapat dikirimkan kepada pengguna.
- AWS KMS
-
AWS KMS adalah layanan terkelola untuk membuat dan mengontrol AWS KMS kunci. Kunci ini mengenkripsi data Anda. Untuk informasi lebih lanjut, lihat, Apa yang dimaksud dengan AWS Key Management Service?.
- Kunci KMS
-
Kunci KMS adalah representasi logis dari kunci kriptografi. Kunci KMS mencakup metadata, seperti ID kunci, tanggal pembuatan, deskripsi, dan status kunci. Kunci KMS juga berisi bahan kunci yang digunakan untuk mengenkripsi dan mendekripsi data. Untuk informasi lebih lanjut lihat, kunci AWS KMS.
- Tombol KMS simetris
-
Kunci KMS simetris adalah kunci enkripsi 256-bit yang tidak keluar dari unenkripsi. AWS KMS Untuk menggunakan kunci KMS simetris, Anda harus menelepon. AWS KMS Amazon Cognito menggunakan kunci simetris. Kunci yang sama mengenkripsi dan mendekripsi. Untuk informasi lebih lanjut lihat, kunci KMS simetris.
Hal-hal yang perlu diketahui tentang pemicu Lambda pengirim khusus
-
Untuk mengonfigurasi kumpulan pengguna agar menggunakan pemicu Lambda ini, Anda dapat menggunakan atau SDK AWS CLI . Konfigurasi ini tidak tersedia dari konsol Amazon Cognito.
UpdateUserPool
Operasi menetapkan konfigurasi Lambda. Permintaan untuk operasi ini memerlukan semua parameter kumpulan pengguna Anda dan parameter yang ingin Anda ubah. Jika Anda tidak memberikan semua parameter yang relevan, Amazon Cognito menetapkan nilai parameter yang hilang ke defaultnya. Seperti yang ditunjukkan dalam contoh AWS CLI berikut, sertakan entri untuk semua fungsi Lambda yang ingin Anda tambahkan atau simpan di kumpulan pengguna Anda. Untuk informasi selengkapnya, lihat Memperbarui kumpulan pengguna dan konfigurasi klien aplikasi.#Send this parameter in an 'aws cognito-idp update-user-pool' CLI command, including any existing #user pool configurations. This snippet also includes a pre sign-up trigger for syntax reference. The pre sign-up trigger #doesn't have a role in custom sender triggers. --lambda-config "PreSignUp=
lambda-arn
, \ CustomSMSSender={LambdaVersion=V1_0,LambdaArn=lambda-arn
}, \ CustomEmailSender={LambdaVersion=V1_0,LambdaArn=lambda-arn
}, \ KMSKeyID=key-id
"Untuk permintaan yang menggunakan badan JSON dari
UpdateUserPool
LambdaConfig
cuplikan berikut menetapkan fungsi SMS dan pengirim email kustom."LambdaConfig": { "KMSKeyID": "arn:aws:kms:
us-east-1
:111122223333
:key/a6c4f8e2-0c45-47db-925f-87854bc9e357
", "CustomEmailSender": { "LambdaArn": "arn:aws:lambda:us-east-1
:111122223333
:function:MyFunction
", "LambdaVersion": "V1_0" }, "CustomSMSSender": { "LambdaArn": "arn:aws:lambda:us-east-1
:111122223333
:function:MyFunction
", "LambdaVersion": "V1_0" } -
Untuk menghapus pemicu Lambda pengirim kustom dengan
update-user-pool
AWS CLI perintah, hilangkanCustomSMSSender
parameterCustomEmailSender
atau--lambda-config
dari, dan sertakan semua pemicu lain yang ingin Anda gunakan dengan kumpulan pengguna Anda.Untuk menghapus pemicu Lambda pengirim kustom dengan
UpdateUserPool
permintaan API, hilangkanCustomSMSSender
parameterCustomEmailSender
atau dari badan permintaan yang berisi konfigurasi kumpulan pengguna lainnya. -
Amazon Cognito HTML lolos dari karakter yang dicadangkan seperti
<
(<
) dan>
(>
) di kata sandi sementara pengguna Anda. Karakter ini mungkin muncul dalam kata sandi sementara yang dikirimkan Amazon Cognito ke fungsi pengirim email khusus Anda, tetapi tidak muncul dalam kode verifikasi sementara. Untuk mengirim kata sandi sementara, fungsi Lambda Anda harus melepaskan karakter ini setelah mendekripsi kata sandi, dan sebelum mengirim pesan ke pengguna Anda.
Mengaktifkan pemicu Lambda pengirim kustom
Untuk menggunakan logika kustom untuk mengirim pesan SMS atau email ke kumpulan pengguna Anda, siapkan pemicu pengirim kustom. Prosedur berikut menetapkan pemicu SMS khusus, pemicu email khusus, atau keduanya ke kumpulan pengguna Anda. Setelah menambahkan pemicu pengirim khusus, Amazon Cognito selalu mengirimkan atribut pengguna, termasuk nomor telepon, dan kode satu kali ke fungsi Lambda, bukan perilaku default yang mengirim pesan SMS atau email.
-
Buat kunci enkripsi simetris di AWS Key Management Service (AWS KMS). Amazon Cognito menghasilkan rahasia—kata sandi sementara, kode verifikasi, kata sandi satu kali otentikasi, dan kode konfirmasi—kemudian menggunakan kunci KMS ini untuk mengenkripsi rahasia. AWS Encryption SDK Anda kemudian dapat menggunakan AWS Encryption SDK dalam fungsi Lambda Anda untuk mendekripsi rahasia dan mengirimkannya ke pengguna dalam plaintext.
-
Prinsipal IAM yang membuat atau memperbarui kumpulan pengguna Anda membuat hibah satu kali terhadap kunci KMS yang digunakan Amazon Cognito untuk mengenkripsi kode. Berikan
CreateGrant
izin utama ini untuk kunci KMS Anda. Agar kebijakan kunci KMS contoh ini efektif, administrator yang memperbarui kumpulan pengguna harus masuk dengan sesi peran yang diasumsikan untuk peran IAM.arn:aws:iam::111222333444:role/my-example-administrator-role
Terapkan kebijakan berbasis sumber daya berikut, yang dimodifikasi untuk lingkungan Anda, ke kunci KMS Anda.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
111122223333
:role/my-example-administrator-role
" }, "Action": "kms:CreateGrant", "Resource": "arn:aws:kms:us-west-2:111122223333
:key/1example-2222-3333-4444-999example
", "Condition": { "StringEquals": { "kms:EncryptionContext:userpool-id": "us-west-2_EXAMPLE
" } } }, { "Sid": "Allow Lambda to decrypt", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333
:role/my-lambda-function-role
" }, "Action": "kms:Decrypt", "Resource": "*" }] } -
Buat fungsi Lambda untuk pemicu pengirim kustom. Amazon Cognito menggunakan SDK AWS enkripsi untuk mengenkripsi rahasia, kata sandi sementara, dan kode yang mengizinkan permintaan API pengguna Anda.
-
Tetapkan peran eksekusi Lambda yang memiliki, setidaknya
kms:Decrypt
, izin untuk kunci KMS Anda. -
Tulis kode fungsi Lambda untuk mengirim pesan Anda. Acara input ke fungsi Anda berisi rahasia. Dalam fungsi Anda, dekripsi rahasia dengan AWS Encryption SDK dan proses metadata yang relevan. Kemudian kirim kode, pesan kustom Anda sendiri, dan nomor telepon tujuan ke API kustom yang mengirimkan pesan Anda.
-
Tambahkan AWS Encryption SDK ke fungsi Lambda Anda. Untuk informasi selengkapnya, lihat AWS Enkripsi bahasa pemrograman SDK. Untuk memperbarui paket Lambda, selesaikan langkah-langkah berikut.
-
Ekspor fungsi Lambda Anda sebagai file.zip di file. AWS Management Console
-
Buka fungsi Anda dan tambahkan AWS Encryption SDK. Untuk informasi selengkapnya dan tautan unduhan, lihat bahasa AWS Encryption SDK pemrograman di Panduan AWS Encryption SDK Pengembang.
-
Zip fungsi Anda dengan dependensi SDK Anda, dan unggah fungsi tersebut ke Lambda. Untuk informasi selengkapnya, lihat Menerapkan fungsi Lambda sebagai arsip file.zip di AWS Lambda Panduan Pengembang.
-
-
-
Berikan
cognito-idp.amazonaws.com
akses utama layanan Amazon Cognito untuk menjalankan fungsi Lambda.AWS CLI Perintah berikut memberikan izin Amazon Cognito untuk menjalankan fungsi Lambda Anda:
aws lambda add-permission --function-name
lambda_arn
--statement-id "CognitoLambdaInvokeAccess
" --action lambda:InvokeFunction --principal cognito-idp.amazonaws.com -
Buat permintaan UpdateUserPoolAPI dengan
LambdaConfig
parameter yang menambahkan pemicu Lambda pengirim kustom. Anda tidak dapat menambahkan pemicu jenis ini di konsol Amazon Cognito. Pemicu pengirim khusus memerlukanLambdaConfig
parameterKMSKeyID
danCustomSMSSender
atauCustomEmailSender
(atau keduanya).