Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
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 terkelola 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
{
"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 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:
-
Sumber KMSKey Arn: Mengenkripsi paket penyebaran sumber.zip (file yang Anda unggah).
-
KMSKeyArn: Mengenkripsi variabel lingkungan dan snapshot Lambda. SnapStart
Kapan SourceKMSKeyArn
dan KMSKeyArn
keduanya ditentukan, Lambda menggunakan KMSKeyArn
kunci untuk mengenkripsi versi paket yang tidak di-zip yang digunakan Lambda untuk menjalankan fungsi tersebut. Kapan SourceKMSKeyArn
KMSKeyArn
ditentukan tetapi tidak, Lambda menggunakan Kunci yang dikelola AWSuntuk mengenkripsi versi paket yang tidak di-zip.
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.