Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Keamanan dan izin untuk fungsi tahan lama Lambda
AWS Lambda fungsi tahan lama memerlukan izin IAM khusus untuk menjalankan dan mengelola eksekusi yang tahan lama. Ikuti prinsip hak istimewa paling sedikit dengan hanya memberikan izin yang dibutuhkan setiap kepala sekolah.
Izin IAM untuk fungsi tahan lama
Untuk tindakan API eksekusi yang paling tahan lama, Lambda mengotorisasi permintaan terhadap ARN eksekusi tahan lama, bukan fungsi ARN. Eksekusi tahan lama adalah sub-sumber daya dari versi fungsi, dan ARN-nya memperluas fungsi ARN:
arn:aws:lambda:region:account-id:function:function-name:qualifier/durable-execution/execution-name/execution-id
Kualifikasi dalam eksekusi tahan lama ARN selalu $LATEST atau nomor versi.
Jika kebijakan Anda menentukan fungsi ARN yang tidak memenuhi syarat dalam elemen Resource, Lambda menolak permintaan karena ARN yang tidak memenuhi syarat tidak pernah cocok dengan ARN eksekusi yang tahan lama. Untuk memberikan akses, tambahkan pola kualifikasi ke fungsi ARN:
arn:aws:lambda:us-east-1:123456789012:function:my-function:*— Cocokkan eksekusi tahan lama dari setiap versi.arn:aws:lambda:us-east-1:123456789012:function:my-function:1/durable-execution/*— Hanya cocok dengan eksekusi tahan lama versi 1.
Sebagian besar kebijakan menggunakan :* formulir karena nomor versi dapat berubah dengan setiap penerapan.
Alias tidak berlaku untuk izin eksekusi yang tahan lama
Anda dapat memanggil fungsi tahan lama melalui alias, tetapi ARN eksekusi yang dihasilkan berisi nomor versi yang diselesaikan.
Izin peran eksekusi
Peran eksekusi fungsi tahan lama Anda harus memiliki izin untuk membuat pos pemeriksaan dan mengambil status eksekusi. Kebijakan berikut menunjukkan izin minimum yang diperlukan:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:CheckpointDurableExecution", "lambda:GetDurableExecutionState" ], "Resource": "arn:aws:lambda:region:account-id:function:function-name:*" } ] }
Saat Anda membuat fungsi tahan lama menggunakan konsol, Lambda secara otomatis menambahkan izin ini ke peran eksekusi. Jika Anda membuat fungsi menggunakan AWS CLI atau AWS CloudFormation, tambahkan izin ini ke peran eksekusi Anda.
Agar Lambda dapat mengambil peran eksekusi Anda, kebijakan kepercayaan peran harus menentukan Lambda service principal (lambda.amazonaws.com) sebagai layanan tepercaya. Contoh berikut menunjukkan kebijakan kepercayaan yang memberikan izin Lambda untuk mengambil peran.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Prinsip hak istimewa terkecil
Lingkup Resource elemen ke ARN fungsi tertentu alih-alih menggunakan wildcard. Ini membatasi peran eksekusi untuk operasi pos pemeriksaan hanya untuk fungsi yang membutuhkannya.
contoh Izin cakupan untuk beberapa fungsi
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:CheckpointDurableExecution", "lambda:GetDurableExecutionState" ], "Resource": [ "arn:aws:lambda:us-east-1:123456789012:function:orderProcessor:*", "arn:aws:lambda:us-east-1:123456789012:function:paymentHandler:*" ] } ] }
Atau, Anda dapat menggunakan kebijakan terkel AWS ola AWSLambdaBasicDurableExecutionRolePolicy yang mencakup izin eksekusi tahan lama yang diperlukan bersama dengan izin eksekusi Lambda dasar untuk Amazon CloudWatch Logs.
Izin untuk mengelola eksekusi yang tahan lama
Lambda mengotorisasilambda:GetDurableExecution,lambda:GetDurableExecutionHistory, dan lambda:StopDurableExecution tindakan terhadap eksekusi tahan lama ARN.
Untuk membuat daftar eksekusi fungsi yang tahan lama, gunakanlambda:ListDurableExecutionsByFunction. Lambda mengotorisasi tindakan ini terhadap fungsi ARN dari permintaan. Aturan berikut berlaku untuk pencocokan ARN:
Kebijakan yang memberikan fungsi yang tidak memenuhi syarat ARN hanya cocok dengan permintaan yang menggunakan nama fungsi yang tidak memenuhi syarat.
Kebijakan yang memberikan ARN yang memenuhi syarat hanya akan mencocokkan permintaan yang menggunakan nama fungsi yang memenuhi syarat.
Untuk informasi selengkapnya, lihat Fungsi referensi di bagian Sumber daya kebijakan.
Untuk mencocokkan permintaan yang dibuat dengan salah satu bentuk nama fungsi, sertakan fungsi ARN yang tidak memenuhi syarat dan fungsi yang memenuhi syarat, seperti yang ditunjukkan oleh kebijakan berikut:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ManageDurableExecutions", "Effect": "Allow", "Action": [ "lambda:GetDurableExecution", "lambda:GetDurableExecutionHistory", "lambda:StopDurableExecution" ], "Resource": "arn:aws:lambda:us-east-1:123456789012:function:myDurableFunction:*" }, { "Sid": "ListDurableExecutions", "Effect": "Allow", "Action": "lambda:ListDurableExecutionsByFunction", "Resource": [ "arn:aws:lambda:us-east-1:123456789012:function:myDurableFunction", "arn:aws:lambda:us-east-1:123456789012:function:myDurableFunction:*" ] } ] }
Izin untuk mengirim panggilan balik
Sistem eksternal yang mengirimkan hasil callback menggunakan lambda:SendDurableExecutionCallbackHeartbeat tindakanlambda:SendDurableExecutionCallbackSuccess,lambda:SendDurableExecutionCallbackFailure, dan.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SendCallbacks", "Effect": "Allow", "Action": [ "lambda:SendDurableExecutionCallbackSuccess", "lambda:SendDurableExecutionCallbackFailure", "lambda:SendDurableExecutionCallbackHeartbeat" ], "Resource": "arn:aws:lambda:us-east-1:123456789012:function:myDurableFunction:*" } ] }
Lambda mengotorisasi permintaan panggilan balik terhadap ARN dari eksekusi tahan lama yang menciptakan callback.
Enkripsi negara
Fungsi tahan lama Lambda mengenkripsi data eksekusi saat diam. Setiap eksekusi fungsi mempertahankan status terisolasi yang tidak dapat diakses oleh eksekusi lain. Anda dapat mengonfigurasi kunci yang dikelola pelanggan untuk mengenkripsi data eksekusi yang tahan lama. Untuk informasi selengkapnya, lihat Mengenkripsi AWS Lambda data eksekusi tahan lama.
Data pos pemeriksaan meliputi:
Hasil langkah dan kesalahan
Input panggil yang dirantai
Untuk daftar lengkap data eksekusi tahan lama yang dienkripsi saat diam, lihatApa yang dienkripsi.
Semua data dienkripsi saat transit menggunakan TLS saat Lambda membaca atau menulis data pos pemeriksaan.
Enkripsi kustom dengan serializer dan deserializer khusus
Untuk persyaratan keamanan kritis, Anda dapat menerapkan mekanisme enkripsi dan dekripsi Anda sendiri menggunakan serializer dan deserializer khusus () menggunakan SDK tahan lama. SerDer Pendekatan ini memberi Anda kontrol penuh atas kunci enkripsi dan algoritma yang digunakan untuk melindungi data pos pemeriksaan.
penting
Saat Anda menggunakan enkripsi khusus, Anda kehilangan visibilitas hasil operasi di konsol Lambda dan respons API. Data pos pemeriksaan muncul dienkripsi dalam riwayat eksekusi dan tidak dapat diperiksa tanpa dekripsi.
Kebutuhan peran eksekusi fungsi Anda kms:Encrypt dan kms:Decrypt izin untuk AWS KMS kunci yang digunakan dalam SerDer implementasi kustom.
CloudTrail penebangan
Lambda mencatat operasi pos pemeriksaan sebagai peristiwa data di. AWS CloudTrail Anda dapat menggunakannya CloudTrail untuk mengaudit saat pos pemeriksaan dibuat, melacak perubahan status eksekusi, dan memantau akses ke data eksekusi yang tahan lama.
Operasi pos pemeriksaan muncul di CloudTrail log dengan nama acara berikut:
CheckpointDurableExecution- Tercatat saat langkah selesai dan membuat pos pemeriksaanGetDurableExecutionState- Tercatat saat Lambda mengambil status eksekusi selama pemutaran ulang
Untuk mengaktifkan pencatatan peristiwa data untuk fungsi tahan lama, konfigurasikan CloudTrail jejak untuk mencatat peristiwa data Lambda. Untuk informasi selengkapnya, lihat Pencatatan peristiwa data di Panduan CloudTrail Pengguna.
Contoh: entri CloudTrail log untuk operasi pos pemeriksaan
{ "eventVersion": "1.08", "eventTime": "2024-11-16T10:30:45Z", "eventName": "CheckpointDurableExecution", "eventSource": "lambda.amazonaws.com", "requestParameters": { "functionName": "myDurableFunction", "executionId": "exec-abc123", "stepId": "step-1" }, "responseElements": null, "eventType": "AwsApiCall" }
Cross-account pertimbangan
Jika Anda memanggil fungsi tahan lama di seluruh AWS akun, akun pemanggil memerlukan lambda:InvokeFunction izin, tetapi operasi pos pemeriksaan selalu menggunakan peran eksekusi di akun fungsi. Akun pemanggil tidak dapat mengakses data pos pemeriksaan atau status eksekusi secara langsung.
Isolasi ini memastikan bahwa data pos pemeriksaan tetap aman di dalam akun fungsi, bahkan ketika dipanggil dari akun eksternal.
Fitur keamanan Lambda yang diwariskan
Fungsi tahan lama mewarisi semua fitur keamanan, tata kelola, dan kepatuhan dari Lambda. Ini termasuk konektivitas VPC, enkripsi variabel lingkungan, antrian surat mati, konkurensi cadangan, URL fungsi, penandatanganan kode, dan sertifikasi kepatuhan seperti SOC, PCI DSS, dan HIPAA.
Untuk informasi terperinci tentang fitur keamanan Lambda, lihat Keamanan AWS Lambda di Panduan Pengembang Lambda. Satu-satunya pertimbangan keamanan tambahan untuk fungsi tahan lama adalah izin IAM yang didokumentasikan dalam panduan ini.