Bagaimana untuk Mengakses Rahsia API Menggunakan AWS Lambda?

Bagaimana Untuk Mengakses Rahsia Api Menggunakan Aws Lambda



Amalan terbaik Perkhidmatan AWS melibatkan dua tindakan iaitu, Ambil Stor dan Putar Audit. Menggabungkan kedua-dua amalan ini dalam satu, AWS telah melancarkan Pengurus Rahsia yang membantu pengguna melindungi maklumat rahsia aplikasi mereka. Pengurus Rahsia AWS digunakan secara meluas untuk mencipta, menyimpan , mengubah suai , mereplikasi , dan bukti kelayakan pangkalan data berputar, Kunci API, token OAuth, dsb.

Rangka Pantas

Artikel ini merangkumi aspek berikut:

Apakah AWS Lambda?

AWS Lambda ialah perkhidmatan pengkomputeran untuk melaksanakan kod dalam berbilang persekitaran dan bahasa tanpa menyediakan dan mengurus pelayan. Tambahan pula, AWS Lambda boleh dicetuskan oleh pelbagai perkhidmatan AWS yang berbeza seperti baldi S3, Gerbang API, dll. Perkhidmatan ini secara automatik menskalakan aplikasi dan melaksanakan kod dengan cekap tanpa memerlukan pengguna memasang sebarang kebergantungan tambahan.







Untuk mengetahui lebih lanjut tentang perkhidmatan Lambda, rujuk artikel ini di sini: “Bermula Dengan AWS Lambda” .



Apakah Pengurus Rahsia AWS?

Pengurus Rahsia AWS membolehkan pengguna melindungi dan menyulitkan maklumat sulit aplikasi seperti token OAuth, bukti kelayakan pangkalan data, API, dll. Maklumat sulit ini dirujuk sebagai “rahsia” . Rahsia ini hanya diakses oleh badan yang diberi kuasa dan boleh diputar untuk meningkatkan keselamatan.



Ketahui lebih lanjut tentang menyimpan bukti kelayakan RDS dalam Pengurus Rahsia dengan merujuk artikel ini: 'Bagaimana untuk Menyimpan Kredensial Amazon RDS Menggunakan Pengurus Rahsia?'





Bagaimana untuk Mengakses Rahsia API dalam AWS Menggunakan AWS Lambda?

Lambda menyediakan sokongan terbina dalam untuk berbilang perkhidmatan cth. Baldi S3, Gerbang API dan Pengurus Rahsia. Fungsi Lambda boleh digunakan untuk mendapatkan nilai rahsia yang dikonfigurasikan. Dengan menggunakan rahsia API dalam AWS Lambda Functions, pengguna boleh berinteraksi dengan berbilang perkhidmatan AWS. Rahsia API sedemikian juga penting untuk membenarkan fungsi lambda.

Untuk mengakses Kunci API dalam Pengurus Rahsia AWS Menggunakan AWS Lambda, ikut langkah yang dinyatakan di bawah:



  • Langkah 1: Cipta Rahsia API
  • Langkah 2: Buat Dasar IAM
  • Langkah 3: Cipta Peranan IAM
  • Langkah 4: Buat Peranan Lambda

Langkah 1: Cipta Rahsia API

Sebelum mengakses kunci API dalam Pengurus Rahsia AWS, kita akan belajar terlebih dahulu buat rahsia API . Untuk tujuan ini, akses ke “Pengurus Rahsia” perkhidmatan daripada Konsol Pengurusan AWS:

Pada Konsol Utama daripada Pengurus Rahsia AWS, klik pada “Simpan rahsia baharu” butang:

Di dalam “Jenis rahsia” blok, pilih “Jenis rahsia lain” pilihan daripada pelbagai pilihan yang dipaparkan:

Tatal ke bawah ke “Pasangan kunci/nilai” bahagian dan sediakan a pasangan nilai kunci yang unik untuk rahsia API anda. Kepada Tambah lebih pasangan kunci-nilai , Klik pada “Tambah baris” butang:

Seterusnya ialah “Kunci penyulitan” bahagian. AWS menyediakan a kunci penyulitan lalai untuk rahsia. Walau bagaimanapun, pengguna juga boleh memberikan nama tersuai untuk kunci tersebut. Dengan mengekalkan lalai, klik pada ' Seterusnya butang ”:

Pada antara muka ini, pengguna perlu menyediakan a nama unik untuk rahsia mereka dan a penerangan yang merupakan pilihan padang di sini:

Dengan menjaga tetapan tidak berubah , teruskan lagi dengan mengklik pada “ Seterusnya butang ”:

Seterusnya datang Bahagian ulasan. Untuk mengesahkan semua maklumat disediakan ialah betul , Klik pada ' Kedai butang ” yang terletak di bahagian bawah antara muka:

Rahsia telah berjaya dibuat . Klik pada ' Tambah nilai ” untuk memaparkan nama rahsia pada Papan pemuka :

Langkah 2: Buat Dasar IAM

Kepada buat dasar IAM, akses ke perkhidmatan IAM daripada AWS Management Console:

Daripada bar sisi IAM perkhidmatan, klik pada “ dasar 'pilihan:

Pada Konsol dasar , Klik pada “Buat dasar” butang:

Ketahui lebih lanjut tentang dasar AWS IAM dengan merujuk artikel ini: “Contoh Dasar AWS IAM”

Seterusnya ialah 'Nyatakan Kebenaran' bahagian. Cari dan pilih “Pengurus Rahsia” perkhidmatan:

Tatal ke bawah ke 'Tindakan Dibenarkan' blok. Di sini, daripada tahap Akses yang berbeza, ketik ' Baca ” pilihan. Pilih “Semua tindakan baca” pilihan untuk membolehkan semua Baca perkhidmatan untuk dasar ini:

Tatal ke bawah kepada ' Sumber ” bahagian dan klik pada “Tambah ARN” pilihan:

Navigasi kembali ke Papan Pemuka Pengurus Rahsia AWS dan klik nama rahsia. Salin ' RNA 'rahsia di bawah' Rahsia ARN ” label daripada antara muka yang dipaparkan:

Pada Konsol sekarang , tampal ARN yang disalin dalam “ RNA ” medan:

Sebelum mengklik pada “Tambah ARN” butang, klik pada “Akaun ini” butang untuk mengesahkan rahsia wujud dalam akaun yang sama. Selepas mengkonfigurasi tetapan, klik pada “Tambah ARN” butang:

Selepas mengkonfigurasi semua tetapan dasar, klik pada “ Seterusnya butang ”:

Di dalam Bahagian butiran dasar , berikan nama untuk polisi dalam “ Nama polisi ” medan:

Klik pada ' Buat dasar butang ”:

The dasar telah di cipta dengan jayanya :

Langkah 3: Cipta Peranan IAM

Dalam bahagian ini, cipta peranan IAM yang mengandungi kebenaran yang diperlukan untuk fungsi Lambda untuk mengakses rahsia. Untuk tujuan ini, klik pada ' Peranan ” pilihan daripada bar sisi peranan IAM dan kemudian ketik 'Buat peranan' butang dari antara muka:

Selepas mengklik pada 'Buat peranan' butang, antara muka berikut akan dipaparkan kepada anda. Pilih “Perkhidmatan AWS” pilihan daripada pilihan berikut kerana kami akan melampirkan ini Peranan IAM dengan fungsi lambda:

Di dalam “Kes guna” bahagian, cari di Perkhidmatan Lambda dan pilihnya. Tekan ' Seterusnya butang ” di bahagian bawah antara muka untuk meneruskan lebih jauh:

Pada antara muka seterusnya , cari nama Nama polisi yang kami konfigurasikan sebelum ini. Daripada hasil yang dipaparkan, pilih nama polisi:

Klik pada “ Seterusnya butang ” di bahagian bawah antara muka untuk meneruskan lebih jauh:

Menyediakan a pengecam unik Untuk kamu Peranan IAM dalam medan yang diserlahkan berikut:

Menjaga selebihnya tetapan sebagai lalai , Klik pada 'Buat peranan' butang dengan menatal ke bawah ke bahagian bawah antara muka:

Peranan telah dengan jayanya dicipta:

Untuk mengetahui lebih lanjut tentang Mencipta peranan IAM dalam AWS rujuk artikel ini: 'Cara Membuat Peranan IAM dalam AWS' .

Langkah 4: Buat Fungsi Lambda

Langkah seterusnya ialah Cipta Fungsi Lambda. Fungsi lambda ini akan mengandungi peranan IAM dan akan memperoleh nilai rahsia apabila dilaksanakan. Untuk mengakses perkhidmatan Lambda, cari ' Lambda ” dalam bar carian Konsol Pengurusan AWS . Klik pada nama perkhidmatan daripada hasil carian untuk melawat konsol:

Pada antara muka Awal Perkhidmatan Lambda, klik pada 'Buat fungsi' butang:

Ini akan memaparkan 'Buat fungsi' antara muka. Pilih “Pengarang dari awal” pilihan dan teruskan dengan memberikan nama untuk Fungsi Lambda dalam medan yang diserlahkan:

Di dalam Medan masa jalan , pilih ' Python 3.9 'persekitaran:

Di bawah Bahagian Masa Jalan , ada 'Tukar peranan pelaksanaan lalai' bahagian. Pilih 'Gunakan peranan sedia ada' pilihan dan kemudian nyatakan peranan dalam 'Peranan sedia ada' bidang:

Pada antara muka yang sama, ketik 'Buat fungsi' butang di bahagian bawah antara muka:

Untuk mengetahui lebih lanjut tentang mencipta Fungsi Lambda, rujuk artikel ini: 'Cara Mencipta Fungsi Lambda Dengan Pyhton Runtime' .

Fungsi Lambda telah dicipta. Langkah seterusnya ialah menyediakan kod kepada fungsi Lambda. Apabila kod ini dilaksanakan, ia akan memaparkan nilai-nilai Pengurus Rahsia:

import json
import boto3
import asas64
daripada botocore. pengecualian import ClientError

def lambda_handler ( peristiwa , konteks ) :
persekitaran = peristiwa [ 'env' ]
nama_rahsia = 'shmaster19/%s/key' % persekitaran
nama_rantau = 'ap-tenggara-1'

sesi = boto3. sesi . Sesi ( )
pelanggan = sesi. pelanggan (
nama_perkhidmatan = 'pengurus rahsia' ,
nama_rantau = nama_rantau
)

cubalah :
jawapan_nilai_rahsia = pelanggan. dapatkan_nilai_rahsia (
SecretId = nama_rahsia
)
kecuali ClientError sebagai ralat :
cetak ( ralat )
lain :
jika 'SecretString' dalam jawapan_nilai_rahsia :
rahsia = json. bebanan ( jawapan_nilai_rahsia [ 'SecretString' ] )
kembali rahsia
lain :
decoded_binary_secret = asas64. b64 nyahkod ( Secret_value_Response [ 'SecretBinary' ] )
kembali decoded_binary_secret
  • import json: digunakan untuk melaksanakan operasi JSON.
  • import boto3: ialah SDK untuk komunikasi antara AWS dan Python.
  • import base64: Digunakan untuk melaksanakan fungsi pengekodan dan penyahkodan pada data binari sebagai Base64.
  • import ClientError: Ini membolehkan pengguna mengendalikan pengecualian dalam kod bertulis.
  • nama_rahsia: Dalam pembolehubah ini, berikan nama rahsia anda. Perhatikan bahawa rahsia ini mengandungi “%s” . Ini adalah apabila pengguna mempunyai berbilang kunci dengan format yang serupa. Contohnya, jika pengguna telah mencipta dua rahsia cth., 'apikey/dev/key' dan “apikey/prod/key” . Kemudian dalam “%s” , jika pengguna menyediakan “ dev ”, fungsi Lambda akan menyediakan kunci pembangunan (apikey/dev/key) dan sebaliknya.
  • boto. session.Session(): membolehkan pengguna membuat pelanggan perkhidmatan dan respons.
  • nama_rantau: Berikan nama rantau di mana rahsia AWS anda dikonfigurasikan.
  • Secret_value_response: Dalam pembolehubah ini, kami menggunakan ' client.get_secret_value ” fungsi yang akan mengembalikan nilai rahsia.
  • Decoded_binary_secert: Selepas memperoleh nilai rahsia, ia akan didekodkan lagi format asas 64 .

Selepas menampal kod dalam Fungsi Lambda, klik pada “ Sebarkan butang untuk menyimpan dan menggunakan perubahan:

Langkah 5: Menguji Kod

Dalam bahagian blog ini, kami akan mengesahkan sama ada kod tersebut berfungsi atau tidak. Untuk tujuan ini, klik pada ' Ujian ” selepas berjaya menggunakan perubahan pada Fungsi Lambda:

Pada antara muka seterusnya, sediakan nama untuk ujian acara dalam 'Nama acara' bidang:

Tatal ke bawah ke Bahagian JSON acara , nyatakan “ env ”, dan berikan nilai dalam format JSON. ' nilai ” daripada kunci akan diserahkan kepada “%s” . Kerana rahsia yang telah kami nyatakan mengandungi ' dev nilai ', ' dev nilai ' diserahkan kepada ' env ” pembolehubah. Fungsi Lambda akan mengenal pasti rahsia apabila kod dilaksanakan kerana pengecam rahsia khusus disediakan dalam kod. Selepas menyatakan butiran, klik pada “ Jimat butang ”:

Apabila acara berjaya dibuat, klik pada “ Ujian butang ”:

Di sini, kita ada berjaya diperolehi nilai rahsia kami yang ditentukan:

Itu sahaja daripada panduan ini.

Kesimpulan

Untuk mengakses kunci API dalam Pengurus Rahsia menggunakan Lambda, mula-mula buat Rahsia API, Dasar IAM, Peranan dan Fungsi Lambda dan laksanakan kod fungsi tersebut. Fungsi Lambda boleh digunakan untuk mendapatkan nilai Pengurus Rahsia AWS dengan menentukan pengecam rahsia semasa melaksanakan kod. Artikel ini menyediakan garis panduan langkah demi langkah untuk cara mengakses Kunci API dalam Pengurus Rahsia AWS menggunakan AWS Lambda.