View a markdown version of this page

Mengenkripsi AWS Lambda data eksekusi tahan lama - AWS Lambda

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengenkripsi AWS Lambda data eksekusi tahan lama

Dengan fungsi AWS Lambda tahan lama, Anda dapat membangun aplikasi multi-langkah tangguh yang berjalan hingga satu tahun, menggunakan pos pemeriksaan untuk memulihkan setiap eksekusi dari kegagalan dengan memutar ulang pekerjaan yang telah selesai.

Lambda selalu mengenkripsi data eksekusi tahan lama saat diam. Anda juga dapat mengonfigurasi kunci yang dikelola AWS KMS pelanggan Anda sendiri pada fungsi untuk kontrol rotasi, visibilitas audit, atau kepatuhan. Dengan kunci yang dikelola pelanggan, hanya prinsipal yang Anda otorisasi yang dapat membaca data eksekusi.

Cara kerja enkripsi

Eksekusi tahan lama Lambda menggunakan kunci KMS yang sama dengan yang dimulai untuk seluruh masa pakainya. Mengubah atau menghapus kunci pada fungsi hanya memengaruhi eksekusi yang dimulai setelah perubahan. Lihat Ketika kunci yang dikelola pelanggan tidak tersedia bagaimana eksekusi tahan lama berperilaku ketika kuncinya tidak tersedia.

Kunci yang dikelola pelanggan dikenakan AWS KMS biaya standar. Untuk detail harganya, lihat Harga AWS Key Management Service.

Apa yang dienkripsi

Saat Anda mengonfigurasi kunci yang dikelola pelanggan pada fungsi tahan lama, Lambda menggunakan kunci tersebut untuk mengenkripsi data eksekusi tahan lama berikut saat diam:

  • Muatan input yang Anda lewati dengan setiap Invoke permintaan.

  • Data pos pemeriksaan dipertahankan oleh CheckpointDurableExecution API, termasuk hasil langkah, kesalahan langkah, dan input pemanggilan beraneka.

  • Hasil eksekusi dan kesalahan.

  • Hasil panggilan balik dan kesalahan yang Anda kirimkan melalui SendDurableExecutionCallbackSuccess danSendDurableExecutionCallbackFailure.

Function-level dan kunci eksekusi tahan lama bersifat independen

Tingkat fungsi KMSKeyArn yang mengenkripsi variabel lingkungan, paket penerap an .zip, dan SnapStart snapshot terpisah dari KMSKeyArn dalam DurableConfig yang mengenkripsi data eksekusi tahan lama. Mengatur satu tidak mengatur yang lain. Anda dapat menggunakan kunci KMS yang sama untuk keduanya, atau Anda dapat menggunakan kunci KMS yang berbeda.

Menyiapkan enkripsi kunci yang dikelola pelanggan

Menyiapkan enkripsi kunci yang dikelola pelanggan untuk fungsi yang tahan lama adalah proses tiga langkah. Selesaikan langkah-langkah berikut secara berurutan.

Membuat kunci yang dikelola pelanggan

Fungsi tahan lama mendukung kunci KMS enkripsi simetris di Wilayah yang sama AWS dengan fungsinya. Cross-Region kunci tidak didukung. Untuk membuat kunci yang dikelola pelanggan simetris, ikuti langkah-langkah untuk membuat kunci KMS enkripsi simetris di Panduan Peng AWS Key Management Service embang.

Izin

Anda memberikan AWS KMS izin melalui kebijakan kunci kunci KMS.

Mengkonfigurasi kunci yang dikelola pelanggan memerlukan AWS KMS izin pada prinsipal yang membuat atau memperbarui fungsi. Memanggil fungsi tahan lama tidak memerlukan AWS KMS izin pada pemanggil; Lambda melakukan enkripsi dengan prinsipal layanannya.

Kebijakan kunci

Kebijakan utama mengontrol akses ke kunci yang dikelola pelanggan Anda. Setiap kunci yang dikelola pelanggan harus memiliki tepat satu kebijakan kunci. Dalam kebijakan kunci, hanya Resource: "*" mengacu pada kunci KMS yang dilampirkan kebijakan, bukan ke semua kunci KMS di akun Anda.

Kebijakan utama fungsi yang tahan lama memberikan setiap prinsipal hanya AWS KMS tindakan yang dibutuhkannya, dicakup oleh layanan dan fungsi ARN. Bagian berikut menjelaskan pernyataan, kondisi, dan contoh lengkap.

Pernyataan kebijakan yang diperlukan

Kebijakan ini memberikan kemampuan berikut:

  • Aktifkan Izin pengguna IAM. Memberikan akses tanpa syarat kepada root akun untuk mengelola kunci. Pernyataan ini tidak menggunakan kondisi karena cakupannya akan mencegah Anda memutar, memperbarui, atau menghapus kunci.

  • Izinkan Lambda menggunakan tombol ini untuk fungsi yang tahan lama. Memberikan prinsip layanan Lambda kms:GenerateDataKey dankms:Decrypt.

  • Izinkan peran eksekusi fungsi untuk mendekripsi data eksekusi yang tahan lama. Memberikan peran eksekusi kms:Decrypt untuk membaca status dan memajukan eksekusi.

  • Izinkan penulis fungsi untuk menjelaskan kunci ini. Hibah kms:DescribeKey sehingga Lambda dapat memvalidasi bahwa kunci simetris dan diaktifkan selama CreateFunction atau. UpdateFunctionConfiguration

  • Izinkan penulis fungsi untuk memvalidasi kunci ini untuk fungsi tertentu. Grants kms:GenerateDataKey kms:Decrypt dan Lambda dapat memvalidasi izin kunci dan akses dengan konteks enkripsi fungsi selama CreateFunction atauUpdateFunctionConfiguration. Ini mengonfirmasi kebijakan kunci menerima panggilan untuk fungsi khusus ini sebelum fungsi dibuat atau diperbarui.

  • Izinkan operator eksekusi yang tahan lama. Memberikan operator kms:Decrypt untuk panggilan keGetDurableExecution, GetDurableExecutionHistory denganIncludeExecutionData=true,GetDurableExecutionState,StopDurableExecution,, dan API panggilan balik.

Sebagai praktik terbaik, gunakan prinsip terpisah untuk peran eksekusi, penulis fungsi, dan operator eksekusi tahan lama sehingga setiap identitas hanya memiliki kemampuan yang dibutuhkannya.

Ketentuan kebijakan yang disarankan

Kebijakan ini menggunakan ketentuan berikut untuk mengurangkan akses:

  • kms: ViaService membatasi penggunaan kunci untuk permintaan yang dialihkan melalui Lambda. Menerapkan ini ke peran eksekusi, penulis fungsi, dan pernyataan operator mencegah mereka menggunakan kunci secara langsung AWS KMS.

  • aws: SourceArn dan aws: SourceAccount lindungi dari masalah wakil yang membingungkan lintas layanan. Lambda meneruskan nilai-nilai ini saat memanggil AWS KMS menggunakan kredentif layanannya sendiri. Kondisi ini hanya berlaku untuk pernyataan utama layanan Lambda. Peran eksekusi, penulis fungsi, dan pernyataan operator memang AWS KMS gil dengan kredentif sesi akses maju pemanggil, yang tidak membawa header ini.

  • kms: EncryptionContext:aws:lambda:FunctionArn cakupan kunci untuk fungsi tertentu. Lambda menambahkan ini ke konteks enkripsi pada setiap AWS KMS panggilan untuk data eksekusi yang tahan lama.

Contoh berikut menggabungkan pernyataan dan kondisi di atas.

contoh Kebijakan utama untuk fungsi yang tahan lama
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow Lambda to use this key for durable functions", "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333", "aws:SourceArn": "arn:aws:lambda:us-east-1:111122223333:function:myDurableFunction", "kms:EncryptionContext:aws:lambda:FunctionArn": "arn:aws:lambda:us-east-1:111122223333:function:myDurableFunction" } } }, { "Sid": "Allow the function execution role to decrypt durable execution data", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/myDurableFunctionRole" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "lambda.us-east-1.amazonaws.com", "kms:EncryptionContext:aws:lambda:FunctionArn": "arn:aws:lambda:us-east-1:111122223333:function:myDurableFunction" } } }, { "Sid": "Allow the function author to describe this key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/FunctionAuthor" }, "Action": "kms:DescribeKey", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "lambda.us-east-1.amazonaws.com" } } }, { "Sid": "Allow the function author to validate this key for a specific function", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/FunctionAuthor" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "lambda.us-east-1.amazonaws.com", "kms:EncryptionContext:aws:lambda:FunctionArn": "arn:aws:lambda:us-east-1:111122223333:function:myDurableFunction" } } }, { "Sid": "Allow durable execution operators", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/DurableExecutionOperator" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "lambda.us-east-1.amazonaws.com", "kms:EncryptionContext:aws:lambda:FunctionArn": "arn:aws:lambda:us-east-1:111122223333:function:myDurableFunction" } } } ] }

Untuk informasi selengkap AWS KMS nya tentang kebijakan utama, lihat Cara mengubah kebijakan utama di Panduan Peng AWS Key Management Service embang.

Mengkonfigurasi kunci yang dikelola pelanggan pada fungsi yang tahan lama

Anda mengonfigurasi kunci yang dikelola pelanggan untuk data eksekusi yang tahan lama melalui KMSKeyArn bidang DurableConfig objek. Atur saat Anda membuat fungsi dengan CreateFunction; perbarui pada fungsi tahan lama yang ada dengan UpdateFunctionConfiguration.

Lambda console
Untuk mengkonfigurasi kunci yang dikelola pelanggan pada fungsi tahan lama yang ada
  1. Buka halaman Fungsi di konsol Lambda.

  2. Pilih fungsi yang tahan lama.

  3. Pilih Konfigurasi, lalu pilih Ek sekusi tahan lama dari bilah navigasi kiri.

  4. Pilih Edit.

  5. Di bawah Enkripsi, pilih Gunakan kunci yang dikelola pelanggan, lalu pilih kunci KMS dari daftar.

  6. Pilih Simpan.

AWS CLI

Untuk mengonfigurasi kunci yang dikelola pelanggan saat Anda membuat fungsi

Dalam contoh create-function berikut, --durable-config opsi menentukan kunci yang dikelola pelanggan ARN bersama dengan batas waktu eksekusi yang tahan lama dan periode retensi.

aws lambda create-function \ --function-name myDurableFunction \ --runtime nodejs24.x \ --handler index.handler \ --role arn:aws:iam::111122223333:role/myDurableFunctionRole \ --zip-file fileb://function.zip \ --durable-config '{"KMSKeyArn":"arn:aws:kms:us-east-1:111122223333:key/key-id","ExecutionTimeout":3600,"RetentionPeriodInDays":30}'

Untuk mengkonfigurasi kunci yang dikelola pelanggan pada fungsi tahan lama yang ada

Gunakan perintah update-function-configuration. Sertakan semua DurableConfig bidang yang ingin Anda simpan, karena --durable-config menggantikan seluruh objek.

aws lambda update-function-configuration \ --function-name myDurableFunction \ --durable-config '{"KMSKeyArn":"arn:aws:kms:us-east-1:111122223333:key/key-id","ExecutionTimeout":3600,"RetentionPeriodInDays":30}'

Untuk menghapus kunci yang dikelola pelanggan dari fungsi tahan lama

Hilangkan KMSKeyArn dari--durable-config. Eksekusi yang ada terus menggunakan kunci yang dikelola pelanggan yang mereka gunakan untuk memulai. Eksekusi baru menggunakan enkripsi default sebagai gantinya.

aws lambda update-function-configuration \ --function-name myDurableFunction \ --durable-config '{"ExecutionTimeout":3600,"RetentionPeriodInDays":30}'
AWS CloudFormation

Dalam AWS::Lambda::Function sumber daya, atur KMSKeyArn propertiDurableConfig:

Resources: MyDurableFunction: Type: AWS::Lambda::Function Properties: FunctionName: myDurableFunction Runtime: nodejs24.x Handler: index.handler Role: !GetAtt MyDurableFunctionRole.Arn Code: ZipFile: | // Your durable function code DurableConfig: KMSKeyArn: "arn:aws:kms:us-east-1:111122223333:key/key-id" ExecutionTimeout: 3600 RetentionPeriodInDays: 30
penting

Setiap eksekusi tahan lama menggunakan kunci yang dikelola pelanggan yang dikonfigurasi pada fungsi saat dimulai. Mengubah atau menghapus kunci hanya memengaruhi eksekusi yang dimulai setelah perubahan; eksekusi dalam penerbangan terus menggunakan kunci yang mereka gunakan hingga selesai atau gagal.

Membaca data eksekusi yang tahan lama

Dua API baca mengembalikan data eksekusi yang tahan lama:

  • GetDurableExecutionmengembalikan status saat ini dari satu eksekusi, termasuk muatan masukan, data pos pemeriksaan terbaru, dan informasi hasil atau kesalahan.

  • GetDurableExecutionHistorymengembalikan daftar peristiwa yang diurutkan yang dipancarkan eksekusi, menunjukkan input dan hasil pos pemeriksaan, input dan hasil pemanggilan berrantai, dan hasil akhir.

Kedua API menerima parameter IncludeExecutionData permintaan. IncludeExecutionDataKapan yatrue, Lambda menggunakan kredenSIAL penelepon untuk memanggil kunci kms:Decrypt yang dikelola pelanggan. Lambda kemudian mengembalikan data eksekusi yang didekripsi dalam respons. Identitas penelepon harus ada kms:Decrypt pada kunci yang dikelola pelanggan.

IncludeExecutionDataKapan yafalse, Lambda tidak memanggil AWS KMS atau mendekripsi data eksekusi, dan respons ditetapkan ExecutionDataIncluded kefalse. Tanggapan masih termasukDurableConfig, yang menggemakan kunci ARN yang dikelola pelanggan yang digunakan eksekusi. IncludeExecutionDatadefaultnyafalse, sehingga penelepon yang hanya membutuhkan metadata tidak memerlukan AWS KMS izin.

Contoh: GetDurableExecution respon dengan IncludeExecutionData=false

{ "DurableExecutionArn": "arn:aws:lambda:us-east-1:111122223333:function:myDurableFunction:execution:exec-abc123", "DurableExecutionName": "exec-abc123", "FunctionArn": "arn:aws:lambda:us-east-1:111122223333:function:myDurableFunction", "StartTimestamp": 1733256000, "Status": "RUNNING", "ExecutionDataIncluded": false, "DurableConfig": { "ExecutionTimeout": 3600, "KMSKeyArn": "arn:aws:kms:us-east-1:111122223333:key/key-id", "RetentionPeriodInDays": 30 } }

Panggilan yang dirantai

Ketika fungsi tahan lama menggunakan panggilan rantai untuk memanggil fungsi tahan lama lainnya, Lambda memperlakukan eksekusi anak sebagai eksekusi tahan lama yang independen: ia memiliki ID eksekusi sendiri, aliran pos pemeriksaan sendiri, dan kunci yang dikelola pelanggan sendiri. Konfigurasi kunci yang dikelola pelanggan orang tua tidak berpengaruh pada data anak, dan konfigurasi kunci yang dikelola pelanggan anak tidak berpengaruh pada data orang tua.

Izin

Prinsip layanan Lambda harus memiliki kms:GenerateDataKey dan kms:Decrypt pada kunci yang dikelola pelanggan fungsi anak. Jika fungsi induk dan anak menggunakan kunci yang dikelola pelanggan yang berbeda, Anda memberikan akses utama layanan pada setiap kunci secara terpisah. Peran eksekusi fungsi induk tidak memerlukan izin pada kunci yang dikelola pelanggan anak.

Mengidentifikasi kunci mana yang dienkripsi eksekusi

Kedu GetDurableExecution anya dan ListDurableExecutionsByFunction mengembalikan kunci ARN yang dikelola pelanggan yang mengenkripsi setiap eksekusi. Gunakan API ini untuk mengonfirmasi kunci mana yang berlaku saat eksekusi induk atau anak dimulai.

Caching kunci data

Untuk mengurangi volume AWS KMS panggilan dan meningkatkan ketersediaan selama gangguan layanan, Lambda menyimpan kunci data yang dihasilkan dari kunci yang dikelola pelanggan hingga 15 menit. Sementara cache hangat, Lambda menggunakan kembali kunci data yang sama di seluruh operasi dalam eksekusi dan di seluruh eksekusi yang dimulai selama jendela cache.

Biaya

Per-execution AWS KMS biaya tetap rendah karena Lambda memanggil paling banyak GenerateDataKey sekali per jendela cache, bukan sekali per pos pemeriksaan. Pada tingkat permintaan yang tinggi, biaya per eksekusi turun lebih jauh karena lebih banyak eksekusi berbagi setiap kunci data yang di-cache. Anda ditagih untuk AWS KMS panggilan yang sebenarnya dilakukan Lambda, bukan untuk setiap pos pemeriksaan atau pembacaan.

Stabilitas statis

Kunci data tetap di-cache hingga 15 menit. Perubahan pada kunci Anda akan berlaku pada penyegaran cache berikutnya. Selama gangguan layanan yang diperpanjang, Lambda terus melayani dari cache, menjaga eksekusi dalam penerbangan tetap berjalan.

CloudTrail

Caching kunci data berarti Anda melihat lebih sedikit GenerateDataKey peristiwa CloudTrail daripada eksekusi atau pos pemeriksaan. Lihat Memantau tombol KMS untuk fungsi tahan lama misalnya acara.

Ketika kunci yang dikelola pelanggan tidak tersedia

Jika kunci yang dikelola pelanggan yang dimulai dengan eksekusi dinonaktifkan, dijadwalkan untuk dihapus, atau aksesnya dicabut melalui kebijakan kunci, eksekusi tidak dapat membuat kemajuan lebih lanjut. Pada pos pemeriksaan berikutnya, Lambda gagal dalam eksekusi dengan kesalahan yang tidak AWS KMS dapat dicoba ulang. Memulihkan akses ke kunci tidak secara otomatis melanjutkan eksekusi. Anda harus memulai eksekusi baru.

API yang membaca atau menulis payload juga gagal saat kunci tidak tersedia. Mereka dapat mengembalikan salah satu pengecualian berikut:

  • KMSAccessDeniedException: Lambda tidak dapat mendekripsi data eksekusi tahan lama karena akses ke kunci KMS ditolak.

  • KMSDisabledException: Lambda tidak dapat mendekripsi data eksekusi tahan lama karena kunci KMS dinonaktifkan.

  • KMSInvalidStateException: Lambda tidak dapat mendekripsi data eksekusi tahan lama karena status kunci KMS tidak valid untuk. Decrypt

  • KMSNotFoundException: Lambda tidak dapat mendekripsi data eksekusi tahan lama karena kunci KMS tidak ditemukan.

Memulihkan akses ke kunci KMS memungkinkan API baca ini berhasil lagi untuk eksekusi yang sudah gagal. Eksekusi yang gagal tetap gagal; Anda harus memulai eksekusi baru.

Untuk memeriksa metadata eksekusi saat kunci KMS tidak tersedia, panggil GetDurableExecution denganIncludeExecutionData=false. Ini mengembalikan status eksekusi, cap waktu, dan DurableConfig (termasuk kunci KMS ARN) tanpa memanggil. AWS KMS

Karena Lambda menyimpan kunci data, menonaktifkan kunci tidak segera berlaku. Lihat perinciannya di Caching kunci data.

penting

Menghapus kunci KMS yang masih bergantung pada eksekusi dalam penerbangan atau eksekusi yang dipertahankan secara permanen akan menghancurkan eksekusi tersebut dan sejarahnya.

Memantau tombol KMS untuk fungsi tahan lama

Bila Anda menggunakan kunci yang dikelola pelanggan dengan fungsi tahan lama, Anda dapat menggunakannya AWS CloudTrail untuk melacak AWS KMS panggilan yang dilakukan Lambda atas nama Anda. Untuk panduan umum tentang menelus AWS KMS uri acara, lihat Aktiv AWS KMS itas API Pencarian.

Untuk mengonfirmasi bahwa Lambda menggunakan kunci Anda sebagaimana dimaksud, cari bidang ini di setiap acara:

  • eventName: salah satu dariGenerateDataKey,Decrypt, atau DescribeKey

  • eventSource: kms.amazonaws.com

  • userIdentity.invokedBy: lambda.amazonaws.com

  • requestParameters.encryptionContext.aws:lambda:FunctionArn: ARN dari fungsi tahan lama

Contoh berikut adalah CloudTrail peristiwa dari UpdateFunctionConfiguration panggilan CreateFunction atau yang mengonfigurasi kunci yang dikelola pelanggan pada fungsi tahan lama. Lambda mengeluarkan tiga AWS KMS panggilan untuk memvalidasi kunci: realDescribeKey, dan dry- GenerateDataKey run and. Decrypt

GenerateDataKey

Saat Anda menyetel atau mengubah KMSKeyArn inputDurableConfig, Lambda mengeluarkan dry run GenerateDataKey terhadap kunci yang dikelola pelanggan Anda untuk memvalidasi bahwa kebijakan kunci memungkinkan Lambda memperoleh kunci data untuk konteks enkripsi fungsi ini. Dry-run tidak melakukan pekerjaan kriptografi tetapi merekam peristiwa penuh. CloudTrail Contoh peristiwa berikut mencatat operasi dry-run: GenerateDataKey

{ "eventVersion": "1.11", "userIdentity": { "type": "AssumedRole", "principalId": "AROA123456789EXAMPLE:example", "arn": "arn:aws:sts::111122223333:assumed-role/FunctionAuthor/example", "accountId": "111122223333", "accessKeyId": "ASIA123456789EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROA123456789EXAMPLE", "arn": "arn:aws:iam::111122223333:role/FunctionAuthor", "accountId": "111122223333", "userName": "FunctionAuthor" }, "attributes": { "creationDate": "2026-01-15T16:54:42Z", "mfaAuthenticated": "false" } }, "invokedBy": "lambda.amazonaws.com" }, "eventTime": "2026-01-15T16:55:00Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-east-1", "sourceIPAddress": "lambda.amazonaws.com", "userAgent": "lambda.amazonaws.com", "errorCode": "DryRunOperationException", "errorMessage": "The request would have succeeded, but the DryRun option is set.", "requestParameters": { "encryptionContext": { "aws:lambda:FunctionArn": "arn:aws:lambda:us-east-1:111122223333:function:myDurableFunction" }, "dryRun": true, "keyId": "arn:aws:kms:us-east-1:111122223333:key/key-id", "keySpec": "AES_256" }, "responseElements": null, "additionalEventData": { "keyMaterialId": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0EXAMPLE" }, "requestID": "a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa", "eventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLEbbbbb", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:111122223333:key/key-id" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }
Decrypt

Saat Anda menyetel atau mengubah input KMSKeyArnDurableConfig, Lambda juga mengeluarkan dry run Decrypt terhadap kunci yang dikelola pelanggan Anda untuk memvalidasi bahwa kebijakan kunci memungkinkan Lambda mendekripsi data untuk konteks enkripsi fungsi ini. Penggunaan dry-runIGNORE_CIPHERTEXT, jadi tidak diperlukan ciphertext nyata. Contoh peristiwa berikut mencatat operasi dry-run: Decrypt

{ "eventVersion": "1.11", "userIdentity": { "type": "AssumedRole", "principalId": "AROA123456789EXAMPLE:example", "arn": "arn:aws:sts::111122223333:assumed-role/FunctionAuthor/example", "accountId": "111122223333", "accessKeyId": "ASIA123456789EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROA123456789EXAMPLE", "arn": "arn:aws:iam::111122223333:role/FunctionAuthor", "accountId": "111122223333", "userName": "FunctionAuthor" }, "attributes": { "creationDate": "2026-01-15T16:54:42Z", "mfaAuthenticated": "false" } }, "invokedBy": "lambda.amazonaws.com" }, "eventTime": "2026-01-15T16:55:00Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-east-1", "sourceIPAddress": "lambda.amazonaws.com", "userAgent": "lambda.amazonaws.com", "errorCode": "DryRunOperationException", "errorMessage": "The request would have succeeded, but the DryRun option is set.", "requestParameters": { "encryptionContext": { "aws:lambda:FunctionArn": "arn:aws:lambda:us-east-1:111122223333:function:myDurableFunction" }, "dryRun": true, "keyId": "arn:aws:kms:us-east-1:111122223333:key/key-id", "dryRunModifiers": ["IGNORE_CIPHERTEXT"], "encryptionAlgorithm": "SYMMETRIC_DEFAULT" }, "responseElements": null, "additionalEventData": { "keyMaterialId": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0EXAMPLE" }, "requestID": "a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa", "eventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLEbbbbb", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:111122223333:key/key-id" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }
DescribeKey

Saat Anda mengatur atau mengubah KMSKeyArn inDurableConfig, Lambda memanggil DescribeKey untuk mengonfirmasi bahwa kunci simetris dan diaktifkan sebelum menerima perubahan. Berbeda GenerateDataKey dengan Decrypt probe and, ini adalah panggilan nyata, bukan lari kering. Contoh peristiwa berikut merekam DescribeKey operasi:

{ "eventVersion": "1.11", "userIdentity": { "type": "AssumedRole", "principalId": "AROA123456789EXAMPLE:example", "arn": "arn:aws:sts::111122223333:assumed-role/FunctionAuthor/example", "accountId": "111122223333", "accessKeyId": "ASIA123456789EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROA123456789EXAMPLE", "arn": "arn:aws:iam::111122223333:role/FunctionAuthor", "accountId": "111122223333", "userName": "FunctionAuthor" }, "attributes": { "creationDate": "2026-01-15T16:54:42Z", "mfaAuthenticated": "false" } }, "invokedBy": "lambda.amazonaws.com" }, "eventTime": "2026-01-15T16:55:00Z", "eventSource": "kms.amazonaws.com", "eventName": "DescribeKey", "awsRegion": "us-east-1", "sourceIPAddress": "lambda.amazonaws.com", "userAgent": "lambda.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-east-1:111122223333:key/key-id" }, "responseElements": null, "requestID": "a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa", "eventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLEbbbbb", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:111122223333:key/key-id" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }