Mengamankan variabel lingkungan Lambda - AWS Lambda

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

Mengamankan variabel lingkungan Lambda

Untuk mengamankan variabel lingkungan Anda, Anda dapat menggunakan enkripsi sisi server untuk melindungi data Anda saat istirahat dan enkripsi sisi klien untuk melindungi data Anda dalam perjalanan.

catatan

Untuk meningkatkan keamanan database, kami sarankan Anda menggunakan AWS Secrets Manager bukan variabel lingkungan untuk menyimpan kredensi database. Untuk informasi selengkapnya, lihat Menggunakan AWS Lambda dengan Amazon RDS.

Keamanan saat istirahat

Lambda selalu menyediakan enkripsi sisi server saat istirahat dengan file. AWS KMS key Secara default, Lambda menggunakan file. Kunci yang dikelola AWS Jika perilaku default ini sesuai dengan alur kerja Anda, Anda tidak perlu menyiapkan hal lain. Lambda membuat Kunci yang dikelola AWS di akun Anda dan mengelola izin untuk itu untuk Anda. 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 variabel lingkungan pada fungsi tersebut.

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

Keamanan dalam perjalanan

Untuk keamanan tambahan, Anda dapat mengaktifkan helper untuk enkripsi dalam perjalanan, yang memastikan bahwa variabel lingkungan Anda dienkripsi sisi klien untuk perlindungan dalam perjalanan.

Untuk mengonfigurasi enkripsi untuk variabel lingkungan Anda
  1. Gunakan AWS Key Management Service (AWS KMS) untuk membuat kunci terkelola pelanggan apa pun yang digunakan Lambda untuk enkripsi sisi server dan sisi klien. Untuk informasi selengkapnya, lihat Membuat kunci di Panduan AWS Key Management Service Pengembang.

  2. Menggunakan konsol Lambda, navigasikan ke halaman Edit variabel lingkungan.

    1. Buka halaman Fungsi di konsol Lambda.

    2. Pilih fungsi.

    3. Pilih Konfigurasi, lalu pilih variabel Lingkungan dari bilah navigasi kiri.

    4. Di bagian Variabel lingkungan, pilih Edit.

    5. Perluas Konfigurasi enkripsi.

  3. (Opsional) Aktifkan pembantu enkripsi konsol untuk menggunakan enkripsi sisi klien untuk melindungi data Anda saat transit.

    1. Di bawah Enkripsi dalam perjalanan, pilih Aktifkan pembantu untuk enkripsi saat transit.

    2. Untuk setiap variabel lingkungan yang ingin Anda aktifkan pembantu enkripsi konsol, pilih Enkripsi di sebelah variabel lingkungan.

    3. Di bawah AWS KMS key untuk mengenkripsi saat transit, pilih kunci terkelola pelanggan yang Anda buat di awal prosedur ini.

    4. Pilih Kebijakan peran eksekusi dan salin kebijakan. Kebijakan ini memberikan izin untuk peran eksekusi fungsi Anda untuk mendekripsi variabel lingkungan.

      Simpan kebijakan ini untuk digunakan pada langkah terakhir prosedur ini.

    5. Tambahkan kode ke fungsi Anda yang mendekripsi variabel lingkungan. Untuk melihat contoh, pilih Dekripsi cuplikan rahasia.

  4. (Opsional) Tentukan kunci terkelola pelanggan Anda untuk enkripsi saat istirahat.

    1. Pilih Gunakan kunci utama pelanggan.

    2. Pilih kunci yang dikelola pelanggan yang Anda buat di awal prosedur ini.

  5. Pilih Simpan.

  6. Menyiapkan izin.

    Jika Anda menggunakan kunci yang dikelola pelanggan dengan enkripsi sisi server, berikan izin kepada pengguna atau peran apa pun yang Anda inginkan untuk dapat melihat atau mengelola variabel lingkungan pada fungsi tersebut. Untuk informasi selengkapnya, lihat Mengelola izin ke kunci KMS enkripsi sisi server Anda.

    Jika Anda mengaktifkan enkripsi sisi klien untuk keamanan dalam perjalanan, fungsi Anda memerlukan izin untuk memanggil operasi API. kms:Decrypt Tambahkan kebijakan yang Anda simpan sebelumnya dalam prosedur ini ke peran eksekusi fungsi.

Mengelola izin ke kunci KMS enkripsi sisi server Anda

Tidak ada AWS KMS izin yang diperlukan untuk pengguna Anda atau peran eksekusi fungsi untuk menggunakan kunci enkripsi default. Untuk menggunakan kunci yang dikelola pelanggan, Anda memerlukan izin untuk menggunakan kunci tersebut. Lambda menggunakan izin Anda untuk membuat izin pada kunci. Ini memungkinkan Lambda menggunakannya untuk enkripsi.

  • kms:ListAliases – Untuk melihat kunci di konsol Lambda.

  • kms:CreateGrant, kms:Encrypt — Untuk mengonfigurasi kunci yang dikelola pelanggan pada suatu fungsi.

  • kms:Decrypt— Untuk melihat dan mengelola variabel lingkungan yang dienkripsi dengan kunci yang dikelola pelanggan.

Anda bisa mendapatkan izin ini dari Akun AWS atau dari kebijakan izin berbasis sumber daya kunci. ListAliasesdisediakan oleh kebijakan terkelola untuk Lambda. Kebijakan kunci memberikan izin yang tersisa kepada pengguna di grup Pengguna utama.

Pengguna tanpa Decrypt izin masih dapat mengelola fungsi, tetapi mereka tidak dapat melihat variabel lingkungan atau mengelolanya di konsol Lambda. Untuk mencegah pengguna melihat variabel lingkungan, tambahkan pernyataan ke izin pengguna yang menolak akses ke kunci default, kunci yang dikelola pelanggan, atau semua kunci.

contoh Kebijakan IAM – Menolak akses dengan ARN kunci
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Deny", "Action": [ "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-2:111122223333:key/3be10e2d-xmpl-4be4-bc9d-0405a71945cc" } ] }

Untuk detail tentang mengelola izin utama, lihat Kebijakan utama AWS KMS di Panduan AWS Key Management Service Pengembang.