View a markdown version of this page

Mengenkripsi paket deployment .zip Lambda - AWS Lambda

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

Mengenkripsi paket deployment .zip Lambda

AWS Lambda selalu menyediakan enkripsi sisi server saat diam untuk paket penyebaran.zip dan detail konfigurasi fungsi dengan. AWS KMS key Secara default, Lambda menggunakan. Kunci milik AWS Jika perilaku default ini sesuai dengan alur kerja Anda, Anda tidak perlu mengatur hal lain. AWS tidak membebankan biaya untuk menggunakan kunci ini.

Jika mau, Anda dapat memberikan kunci yang dikelola AWS KMS pelanggan sebagai gantinya. Anda dapat melakukan ini untuk memiliki kontrol atas rotasi kunci KMS atau untuk memenuhi persyaratan organisasi Anda untuk mengelola kunci KMS. Saat Anda menggunakan kunci yang dikelola pelanggan, hanya pengguna di akun Anda dengan akses ke kunci KMS yang dapat melihat atau mengelola kode atau konfigurasi fungsi.

Kunci yang dikelola pelanggan dikenakan AWS KMS biaya standar. Untuk informasi selengkapnya, lihat harga AWS Key Management Service.

Membuat kunci yang dikelola pelanggan

Anda dapat membuat kunci yang dikelola pelanggan simetris dengan menggunakan Konsol Manajemen AWS, atau AWS KMS API.

Untuk membuat kunci yang dikelola pelanggan simetris

Ikuti langkah-langkah untuk Membuat enkripsi simetris Membuat kunci KMS simetris di Panduan Peng AWS Key Management Service embang.

Perizinan

Kebijakan utama

Kebijakan utama mengontrol akses ke kunci yang dikelola pelanggan Anda. Setiap kunci yang dikelola pelanggan harus memiliki tepat satu kebijakan kunci, yang berisi pernyataan yang menentukan siapa yang dapat menggunakan kunci dan bagaimana mereka dapat menggunakannya. Untuk informasi selengkapnya, lihat Cara mengubah kebijakan utama di Panduan Peng AWS Key Management Service embang.

Bila Anda menggunakan kunci yang dikelola pelanggan untuk mengenkripsi paket penerapan.zip, Lambda tidak menambahkan hibah ke kunci tersebut. Sebaliknya, kebijakan AWS KMS kunci Anda harus mengizinkan Lambda memanggil operasi AWS KMS API berikut atas nama Anda:

Contoh kebijakan kunci berikut memungkinkan semua fungsi Lambda di akun 111122223333 memanggil AWS KMS operasi yang diperlukan untuk kunci yang dikelola pelanggan yang ditentukan:

contoh AWS KMS kebijakan kunci
JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-id", "Condition": { "StringLike": { "kms:EncryptionContext:aws:lambda:FunctionArn": "arn:aws:lambda:us-east-1:111122223333:function:*" } } } ] }

Untuk informasi selengkapnya tentang pemecahan masalah akses kunci, lihat Panduan Peng AWS Key Management Service embang.

Izin principal

Bila Anda menggunakan kunci yang dikelola pelanggan untuk mengenkripsi paket penyebaran.zip, hanya kepala sekolah https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html dengan akses ke kunci tersebut yang dapat mengakses paket penyebaran.zip. Misalnya, kepala sekolah yang tidak memiliki akses ke kunci yang dikelola pelanggan tidak dapat mengunduh paket.zip menggunakan URL S3 yang telah ditandatangani sebelumnya yang disertakan dalam respons. GetFunction An AccessDeniedException dikembalikan di Code bagian respons.

contoh AWS KMS AccessDeniedException
{ "Code": { "RepositoryType": "S3", "Error": { "ErrorCode": "AccessDeniedException", "Message": "KMS access is denied. Check your KMS permissions. KMS Exception: AccessDeniedException KMS Message: User: arn:aws:sts::111122223333:assumed-role/LambdaTestRole/session is not authorized to perform: kms:Decrypt on resource: arn:aws:kms:us-east-1:111122223333:key/key-id with an explicit deny in a resource-based policy" }, "SourceKMSKeyArn": "arn:aws:kms:us-east-1:111122223333:key/key-id" }, ...

Untuk informasi selengkapnya tentang izin untuk AWS KMS kunci, lihat O tentikasi dan kontrol akses untuk AWS KMS.

Menggunakan kunci yang dikelola pelanggan untuk paket penerapan.zip

Gunakan parameter API berikut untuk mengonfigurasi kunci yang dikelola pelanggan untuk paket penerapan.zip:

Ketika SourceKMSKeyArn dan KMSKeyArn keduanya ditentukan, Lambda menggunakan KMSKeyArn kunci untuk mengenkripsi versi paket yang belum di-zip yang digunakan Lambda untuk memanggil fungsi. Ketika SourceKMSKeyArn KMSKeyArn ditentukan tetapi tidak, Lambda menggunakan a Kunci yang dikelola AWS untuk mengenkripsi versi paket yang tidak di-zip.

catatan

Untuk fungsi dan lapisan yang menggunakan penyimpanan kode S3 yang dikelola sendiri, Lambda tidak menyimpan salinan kode sumber Anda. Kode Anda tetap berada di bucket S3 Anda, dan enkripsi diam untuk kode sumber dikelola oleh konfigurasi bucket S3 Anda. Lambda akan digunakan KMSKeyArn untuk mengenkripsi versi paket yang belum di-zip yang digunakan Lambda untuk memanggil fungsi. Untuk informasi selengkapnya, lihat Melindungi data dengan enkripsi sisi server di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

Lambda console
Untuk menambahkan enkripsi kunci yang dikelola pelanggan saat Anda membuat fungsi
  1. Buka halaman Fungsi di konsol Lambda.

  2. Pilih Buat fungsi.

  3. Pilih Penulis dari awal atau gambar kontainer.

  4. Di bagian Informasi dasar, lakukan hal berikut:

    1. Untuk Nama fungsi, masukkan nama fungsi.

    2. Untuk Runtime, pilih versi bahasa yang akan digunakan untuk fungsi Anda.

  5. Perluas Pengaturan lanj utan, lalu pilih Aktifkan enkripsi dengan kunci yang dikelola AWS KMS pelanggan.

  6. Memilih kunci yang dikelola pelanggan.

  7. Pilih Buat fungsi.

Untuk menghapus enkripsi kunci yang dikelola pelanggan, atau untuk menggunakan kunci yang berbeda, Anda harus mengunggah paket penerapan.zip lagi.

Untuk menambahkan enkripsi kunci yang dikelola pelanggan ke fungsi yang ada
  1. Buka Halaman fungsi di konsol Lambda.

  2. Pilih nama sebuah fungsi.

  3. Di panel sumber kode, pilih Unggah dari.

  4. Pilih fil e.zip atau lokasi Amazon S3.

    Unggah file.zip dari panel sumber kode.
  5. Unggah file atau masukkan lokasi Amazon S3.

  6. Pilih Aktifkan enkripsi dengan kunci yang dikelola AWS KMS pelanggan.

  7. Memilih kunci yang dikelola pelanggan.

  8. Pilih Simpan.

AWS CLI

Untuk menambahkan enkripsi kunci yang dikelola pelanggan saat Anda membuat fungsi

Dalam contoh create-function berikut:

  • --code: Menentukan jalur lokal ke paket penerapan.zip (ZipFile) dan kunci yang dikelola pelanggan untuk mengenkripsinya (SourceKMSKeyArn).

  • --kms-key-arn: Menentukan kunci yang dikelola pelanggan untuk mengenkripsi variabel lingkungan dan versi paket penerapan yang tidak di-zip.

aws lambda create-function \ --function-name myFunction \ --runtime nodejs24.x \ --handler index.handler \ --role arn:aws:iam::111122223333:role/service-role/my-lambda-role \ --code ZipFile=fileb://myFunction.zip,SourceKMSKeyArn=arn:aws:kms:us-east-1:111122223333:key/key-id \ --kms-key-arn arn:aws:kms:us-east-1:111122223333:key/key2-id

Dalam contoh create-function berikut:

  • --code: Menentukan lokasi file.zip dalam bucket Amazon S3 (S3Bucket,S3Key,S3ObjectVersion) dan kunci yang dikelola pelanggan untuk mengenkripsinya (SourceKMSKeyArn).

  • --kms-key-arn: Menentukan kunci yang dikelola pelanggan untuk mengenkripsi variabel lingkungan dan versi paket penerapan yang tidak di-zip.

aws lambda create-function \ --function-name myFunction \ --runtime nodejs24.x --handler index.handler \ --role arn:aws:iam::111122223333:role/service-role/my-lambda-role \ --code S3Bucket=amzn-s3-demo-bucket,S3Key=myFileName.zip,S3ObjectVersion=myObjectVersion,SourceKMSKeyArn=arn:aws:kms:us-east-1:111122223333:key/key-id \ --kms-key-arn arn:aws:kms:us-east-1:111122223333:key/key2-id

Untuk menambahkan enkripsi kunci yang dikelola pelanggan ke fungsi yang ada

Dalam contoh update-function-code berikut ini:

  • --zip-file: Menentukan jalur lokal ke paket penyebaran.zip.

  • --source-kms-key-arn: Menentukan kunci yang dikelola pelanggan untuk mengenkripsi versi zip dari paket penerapan. Lambda menggunakan kunci yang AWS dimiliki untuk mengenkripsi paket yang tidak di-zip untuk pemanggilan fungsi. Jika Anda ingin menggunakan kunci yang dikelola pelanggan untuk mengenkripsi versi paket yang tidak di-zip, jalankan perintah update-function- configuration dengan opsi tersebut. --kms-key-arn

aws lambda update-function-code \ --function-name myFunction \ --zip-file fileb://myFunction.zip \ --source-kms-key-arn arn:aws:kms:us-east-1:111122223333:key/key-id

Dalam contoh update-function-code berikut ini:

  • --s3-bucket: Menentukan lokasi file.zip dalam bucket Amazon S3.

  • --s3-key: Menentukan kunci Amazon S3 dari paket penerapan.

  • --s3-object-version: Untuk objek berversi, versi objek paket penerapan yang akan digunakan.

  • --source-kms-key-arn: Menentukan kunci yang dikelola pelanggan untuk mengenkripsi versi zip dari paket penerapan. Lambda menggunakan kunci yang AWS dimiliki untuk mengenkripsi paket yang tidak di-zip untuk pemanggilan fungsi. Jika Anda ingin menggunakan kunci yang dikelola pelanggan untuk mengenkripsi versi paket yang tidak di-zip, jalankan perintah update-function- configuration dengan opsi tersebut. --kms-key-arn

aws lambda update-function-code \ --function-name myFunction \ --s3-bucket amzn-s3-demo-bucket \ --s3-key myFileName.zip \ --s3-object-version myObject Version --source-kms-key-arn arn:aws:kms:us-east-1:111122223333:key/key-id

Untuk menghapus enkripsi kunci yang dikelola pelanggan dari fungsi yang ada

Dalam contoh update-function-code berikut, tentukan path lokal ke --zip-file paket penerapan.zip. Ketika Anda menjalankan perintah ini tanpa --source-kms-key-arn opsi, Lambda menggunakan kunci yang AWS dimiliki untuk mengenkripsi versi zip dari paket penerapan.

aws lambda update-function-code \ --function-name myFunction \ --zip-file fileb://myFunction.zip