Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengenkripsi paket penyebaran Lambda.zip
Lambda selalu menyediakan enkripsi sisi server saat istirahat untuk paket penerapan .zip dan detail konfigurasi fungsi dengan file. AWS KMS key Secara default, Lambda menggunakan file. Kunci milik AWS Jika perilaku default ini sesuai dengan alur kerja Anda, Anda tidak perlu menyiapkan 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 yang memiliki 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.
Buat kunci terkelola pelanggan
Anda dapat membuat kunci terkelola pelanggan simetris dengan menggunakan AWS Management Console, atau. AWS KMS
APIs
Untuk membuat kunci terkelola pelanggan simetris
Ikuti langkah-langkah untuk Membuat enkripsi simetris Membuat kunci KMS simetris di Panduan Pengembang.AWS Key Management Service
Izin
Kebijakan utama
Kebijakan utama mengontrol akses ke kunci yang dikelola pelanggan Anda. Setiap kunci yang dikelola pelanggan harus memiliki persis satu kebijakan utama, 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 AWS Key Management Service
Pengembang.
Saat Anda menggunakan kunci yang dikelola pelanggan untuk mengenkripsi paket penyebaran .zip, Lambda tidak menambahkan hibah ke kunci tersebut. Sebagai gantinya, kebijakan AWS KMS utama 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 operasi yang diperlukan AWS KMS untuk kunci terkelola 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": "
",
"Condition": {
"StringLike": {
"kms:EncryptionContext:aws:lambda:FunctionArn": "arn:aws:lambda:us-east-1:111122223333:function:*
"
}
}
}
]
}
Untuk informasi selengkapnya tentang akses kunci pemecahan masalah, lihat Panduan AWS Key Management Service Pengembang.
Izin principal
Saat Anda menggunakan kunci yang dikelola pelanggan untuk mengenkripsi paket penyebaran .zip, hanya prinsipal dengan akses ke kunci tersebut yang dapat mengakses paket penyebaran .zip. Misalnya, prinsipal yang tidak memiliki akses ke kunci yang dikelola pelanggan tidak dapat mengunduh paket.zip menggunakan URL S3 yang telah ditetapkan sebelumnya yang disertakan dalam respons. GetFunction AccessDeniedException
An 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 AWS KMS kunci, lihat Otentikasi dan kontrol akses untuk. AWS KMS
Menggunakan kunci terkelola pelanggan untuk paket penerapan.zip
Gunakan parameter API berikut untuk mengonfigurasi kunci terkelola pelanggan untuk paket penerapan.zip:
Kapan SourceKMSKeyArn
dan KMSKeyArn
keduanya ditentukan, Lambda menggunakan KMSKeyArn
kunci untuk mengenkripsi versi paket yang tidak di-zip yang digunakan Lambda untuk menjalankan fungsi. Kapan SourceKMSKeyArn
KMSKeyArn
ditentukan tetapi tidak, Lambda menggunakan Kunci yang dikelola AWSuntuk mengenkripsi versi paket yang tidak di-zip.
- Lambda console
-
Untuk menambahkan enkripsi kunci terkelola pelanggan saat Anda membuat fungsi
Buka halaman Fungsi di konsol Lambda.
-
Pilih Buat fungsi.
-
Pilih Author dari awal atau gambar Container.
-
Di bagian Informasi dasar, lakukan hal berikut:
-
Untuk Nama fungsi, masukkan nama fungsi.
-
Untuk Runtime, pilih versi bahasa yang akan digunakan untuk fungsi Anda.
-
Perluas Pengaturan lanjutan, lalu pilih Aktifkan enkripsi dengan kunci yang dikelola AWS KMS pelanggan.
-
Memilih kunci yang dikelola pelanggan.
-
Pilih Buat fungsi.
Untuk menghapus enkripsi kunci terkelola pelanggan, atau menggunakan kunci yang berbeda, Anda harus mengunggah paket deployment .zip lagi.
Untuk menambahkan enkripsi kunci terkelola pelanggan ke fungsi yang ada
Buka Halaman fungsi di konsol Lambda.
-
Pilih nama sebuah fungsi.
-
Di panel Sumber kode, pilih Unggah dari.
-
Pilih file.zip atau lokasi Amazon S3.
-
Unggah file atau masukkan lokasi Amazon S3.
-
Pilih Aktifkan enkripsi dengan kunci yang dikelola AWS KMS pelanggan.
-
Memilih kunci yang dikelola pelanggan.
-
Pilih Simpan.
- AWS CLI
-
Untuk menambahkan enkripsi kunci terkelola pelanggan saat Anda membuat fungsi
Dalam contoh create-function berikut:
-
--zip-file
: Menentukan jalur lokal ke paket.zip deployment.
-
--source-kms-key-arn
: Menentukan kunci yang dikelola pelanggan untuk mengenkripsi versi zip dari paket penyebaran.
-
--kms-key-arn
: Menentukan kunci yang dikelola pelanggan untuk mengenkripsi variabel lingkungan dan versi paket penyebaran yang tidak di-zip.
aws lambda create-function \
--function-name myFunction \
--runtime nodejs22.x \
--handler index.handler \
--role arn:aws:iam::111122223333:role/service-role/my-lambda-role \
--zip-file
fileb://myFunction.zip
\
--source-kms-key-arn
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 di bucket Amazon S3. Anda hanya perlu menggunakan S3ObjectVersion
parameter untuk objek berversi.
-
--source-kms-key-arn
: Menentukan kunci yang dikelola pelanggan untuk mengenkripsi versi zip dari paket penyebaran.
-
--kms-key-arn
: Menentukan kunci yang dikelola pelanggan untuk mengenkripsi variabel lingkungan dan versi paket penyebaran yang tidak di-zip.
aws lambda create-function \
--function-name myFunction \
--runtime nodejs22.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
\
--source-kms-key-arn
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 terkelola pelanggan ke fungsi yang ada
Dalam update-function-codecontoh berikut:
-
--zip-file
: Menentukan jalur lokal ke paket.zip deployment.
-
--source-kms-key-arn
: Menentukan kunci yang dikelola pelanggan untuk mengenkripsi versi zip dari paket penyebaran. Lambda menggunakan kunci yang AWS dimiliki untuk mengenkripsi paket unzip untuk pemanggilan fungsi. Jika Anda ingin menggunakan kunci yang dikelola pelanggan untuk mengenkripsi versi paket yang tidak di-zip, jalankan update-function-configurationperintah dengan opsi. --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 update-function-codecontoh berikut:
-
--s3-bucket
: Menentukan lokasi file.zip di bucket Amazon S3.
-
--s3-key
: Menentukan kunci Amazon S3 dari paket penyebaran.
-
--s3-object-version
: Untuk objek berversi, versi objek paket penyebaran yang akan digunakan.
-
--source-kms-key-arn
: Menentukan kunci yang dikelola pelanggan untuk mengenkripsi versi zip dari paket penyebaran. Lambda menggunakan kunci yang AWS dimiliki untuk mengenkripsi paket unzip untuk pemanggilan fungsi. Jika Anda ingin menggunakan kunci yang dikelola pelanggan untuk mengenkripsi versi paket yang tidak di-zip, jalankan update-function-configurationperintah dengan opsi. --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 terkelola pelanggan dari fungsi yang ada
Dalam update-function-codecontoh berikut, --zip-file
menentukan path lokal ke paket deployment .zip. Saat Anda menjalankan perintah ini tanpa --source-kms-key-arn
opsi, Lambda menggunakan kunci yang AWS dimiliki untuk mengenkripsi versi zip dari paket penyebaran.
aws lambda update-function-code \
--function-name myFunction \
--zip-file
fileb://myFunction.zip