Kaip pasiekti API paslaptis naudojant AWS Lambda?

Kaip Pasiekti Api Paslaptis Naudojant Aws Lambda



Geriausia AWS paslaugų praktika apima du veiksmus, t. y. saugoti – gauti ir tikrinti – kaitalioti. Sujungusi šias dvi praktikas viename, AWS išleido Secret Manager, kuri padeda vartotojui apsaugoti slaptą savo programų informaciją. AWS Secret Manager plačiai naudojamas kuriant, saugojimas , modifikuojant , replikuoja , ir besisukantys duomenų bazės kredencialai, API raktai, OAuth prieigos raktai ir kt.

Greitas kontūras

Šiame straipsnyje aptariami šie aspektai:

Kas yra AWS lambda?

AWS Lambda yra skaičiavimo paslauga, skirta kodams vykdyti keliose aplinkose ir kalbomis, nepateikiant ir nevaldant serverių. Be to, AWS Lambda gali suaktyvinti kelios skirtingos AWS paslaugos, tokios kaip S3 bucket, API Gateways ir kt. Ši paslauga automatiškai keičia programos mastelį ir efektyviai vykdo kodą, nereikalaujant, kad vartotojas diegtų jokių papildomų priklausomybių.







Norėdami sužinoti daugiau apie Lambda paslaugą, skaitykite šį straipsnį: „Pradžia su AWS Lambda“ .



Kas yra AWS Secret Manager?

AWS Secret Manager leidžia vartotojams apsaugoti ir užšifruoti Konfidenciali informacija programų, tokių kaip OAuth prieigos raktai, duomenų bazės kredencialai, API ir kt. Ši konfidenciali informacija vadinama 'paslaptis' . Prie šių paslapčių gali susipažinti tik įgaliotos institucijos ir jos gali būti keičiamos siekiant padidinti saugumą.



Sužinokite daugiau apie RDS kredencialų saugojimą Secret Manager skaitydami šį straipsnį: „Kaip išsaugoti Amazon RDS kredencialus naudojant slaptą tvarkyklę?





Kaip pasiekti API paslaptis AWS naudojant AWS Lambda?

Lambda teikia integruotą kelių paslaugų palaikymą, pvz. S3 kibiras, API šliuzas ir slaptasis tvarkytuvas. Lambda funkcijos gali būti naudojamos norint gauti sukonfigūruotų paslapčių vertę. Naudodami API paslaptis AWS Lambda Functions, vartotojai gali bendrauti su keliomis AWS paslaugomis. Tokios API paslaptys taip pat svarbios autorizuojant lambda funkcijas.

Norėdami pasiekti API raktus AWS Secret Manager naudodami AWS Lambda, atlikite toliau nurodytus veiksmus.



  • 1 veiksmas: sukurkite API paslaptį
  • 2 veiksmas: sukurkite IAM politiką
  • 3 veiksmas: sukurkite IAM vaidmenį
  • 4 veiksmas: sukurkite lambda vaidmenį

1 veiksmas: sukurkite API paslaptį

Prieš prisijungdami prie API rakto AWS Secret Manager, pirmiausia išmoksime sukurti API paslaptį . Šiuo tikslu pasiekite „Slaptasis vadybininkas“ paslauga iš AWS valdymo pultas:

Ant Pagrindinė konsolė „AWS Secret Manager“, spustelėkite „Išsaugokite naują paslaptį“ mygtukas:

Viduje „Slaptas tipas“ blokuoti, pasirinkite „Kito tipo paslaptis“ parinktis iš įvairių rodomų parinkčių:

Slinkite žemyn iki „Raktų/reikšmių poros“ skyrių ir pateikti a unikali rakto-reikšmių pora už jūsų API paslaptį. Į papildyti daugiau rakto-reikšmių poros , spustelėkite „Pridėti eilutę“ mygtukas:

Kitas yra „Šifravimo raktas“ skyrius. AWS suteikia a numatytasis šifravimo raktas už paslaptį. Tačiau vartotojas taip pat gali pateikti pasirinktinį rakto pavadinimą. Laikydami numatytuosius nustatymus, spustelėkite „ Kitas “ mygtukas:

Šioje sąsajoje vartotojas turi pateikti a unikalus pavadinimas už jų paslaptį ir a aprašymas, kuris yra neprivalomas laukas čia:

Išlaikant nustatymai nepakeisti , tęskite toliau spustelėdami „ Kitas “ mygtukas:

Toliau ateina Apžvalgos skyrius. Norėdami patvirtinti visus informacija numatyta yra teisinga , spustelėkite „ Parduotuvė “ mygtuką, esantį sąsajos apačioje:

Paslaptis buvo sėkmingai sukurta . Spustelėkite „ Įkelti iš naujo “ mygtuką, kad būtų rodomas paslapties pavadinimas Prietaisų skydelis :

2 veiksmas: sukurkite IAM politiką

Į sukurti IAM politiką, prieiti prie IAM paslauga iš AWS valdymo pulto:

Nuo IAM šoninė juosta paslaugą, spustelėkite „ politika “ variantas:

Ant Politikos konsolė , spustelėkite „Sukurti politiką“ mygtukas:

Sužinokite daugiau apie AWS IAM politiką skaitydami šį straipsnį: „AWS IAM politikos pavyzdžiai“

Kitas yra „Nurodykite leidimus“ skyrius. Ieškokite ir pasirinkite „Slaptasis vadybininkas“ paslauga:

Slinkite žemyn iki „Veiksmai leidžiami“ blokas. Čia iš skirtingų prieigos lygių bakstelėkite „ Skaityti “ variantas. Pasirinkite „Visi skaitymo veiksmai“ galimybė į įgalinti visą skaitymą šios politikos paslaugos:

Slinkti žemyn į ' Ištekliai “ skyrių ir spustelėkite „Pridėti ARN“ variantas:

Grįžkite į AWS Secret Manager prietaisų skydelis ir spustelėkite paslapties pavadinimą. Nukopijuokite ' RNR “ paslapties žemiau „ Slaptas ARN “ etiketė iš rodomos sąsajos:

Ant Konsolė dabar , įklijuokite nukopijuotą ARN į „ RNR “ laukas:

Prieš spustelėdami „Pridėti ARN“ mygtuką, spustelėkite „Ši paskyra“ mygtuką, kad patvirtintumėte, kad paslaptys egzistuoja toje pačioje paskyroje. Sukonfigūravę nustatymus, spustelėkite „Pridėti ARN“ mygtukas:

Po to konfigūravimas Visi nustatymus politikos, spustelėkite „ Kitas “ mygtukas:

Viduje Politikos informacijos skyriai , nurodykite politikos pavadinimą „ Politikos pavadinimas “ laukas:

Spustelėkite „ Sukurti politiką “ mygtukas:

The politika buvo sukurtas sėkmingai :

3 veiksmas: sukurkite IAM vaidmenį

Šiame skyriuje sukurkite IAM vaidmenį, kuriame yra būtini leidimai Lambda funkcijoms pasiekti paslaptis. Šiuo tikslu spustelėkite „ Vaidmenys “ parinktį iš IAM vaidmens šoninės juostos ir bakstelėkite „Sukurti vaidmenį“ mygtuką iš sąsajos:

Paspaudę ant „Sukurti vaidmenį“ mygtuką, jums bus rodoma ši sąsaja. Pasirinkite „AWS paslauga“ parinktį iš toliau pateiktų parinkčių, nes tai pridėsime IAM vaidmuo su lambda funkcija:

Viduje „Naudojimo atvejis“ skyrių, ieškokite Lambda servisas ir pasirinkite jį. Paspauskite ' Kitas “ mygtuką sąsajos apačioje, jei norite tęsti:

Ant kita sąsaja , ieškokite pavadinimo Politikos pavadinimas kurį sukonfigūravome anksčiau. Iš rodomų rezultatų pasirinkite politikos pavadinimas:

spustelėkite „ Kitas “ mygtuką apačioje sąsaja, kad galėtumėte tęsti:

Pateikite a unikalus identifikatorius Jūsų IAM vaidmuo šiame paryškintame lauke:

Laikydami likusius nustatymus kaip numatytuosius , spustelėkite „Sukurti vaidmenį“ mygtuką slinkdami žemyn į sąsajos apačią:

Vaidmuo buvo sėkmingai sukurta:

Norėdami sužinoti daugiau apie IAM vaidmens sukūrimą AWS, skaitykite šį straipsnį: „Kaip sukurti IAM vaidmenis AWS“ .

4 veiksmas: sukurkite lambda funkciją

Kitas žingsnis yra sukurti lambda funkciją. Šioje lambda funkcijoje bus IAM vaidmuo ir ji gaus paslapčių vertę, kai ji bus vykdoma. Norėdami pasiekti Lambda paslaugą, ieškokite „ Lambda “ paieškos juostoje AWS valdymo konsolė . Rezultate spustelėkite paslaugos pavadinimą, kad apsilankytumėte konsolėje:

Pradinėje „Lambda Service“ sąsajoje spustelėkite „Sukurti funkciją“ mygtukas:

Tai parodys „Sukurti funkciją“ sąsaja. Pasirinkite „Autorius nuo nulio“ parinktį ir tęskite toliau nurodydami pavadinimą Lambda funkcija paryškintame lauke:

Viduje Vykdymo laikas , pasirinkite „ Python 3.9 “ aplinka:

Žemiau Vykdymo laiko skyrius , čia yra „Keisti numatytąjį vykdymo vaidmenį“ skyrius. Pasirinkite „Naudoti esamą vaidmenį“ parinktį, tada nurodykite vaidmenį „Esamas vaidmuo“ laukas:

Toje pačioje sąsajoje bakstelėkite „Sukurti funkciją“ mygtuką sąsajos apačioje:

Norėdami sužinoti daugiau apie Lambda funkcijos kūrimą, skaitykite šį straipsnį: „Kaip sukurti lambda funkciją naudojant „Pyhton Runtime“ .

Lambda funkcija sukurta. Kitas žingsnis yra kodo pateikimas Lambda funkcijai. Kai šis kodas bus vykdomas, jame bus rodomos reikšmės Slaptas vadovas:

importuoti json
importuoti boto3
importuoti bazė64
iš botocore. išimtis importuoti ClientError

def lambda_handler ( renginys , kontekste ) :
aplinką = renginys [ 'aplink' ]
slaptas_vardas = „shmaster19/%s/key“ % aplinką
regiono_pavadinimas = 'ap-southeast-1'

sesija = boto3. sesija . Sesija ( )
klientas = sesija. klientas (
paslaugos_pavadinimas = 'paslapčių tvarkytojas' ,
regiono_pavadinimas = regiono_pavadinimas
)

bandyti :
slaptas_vertės_atsakymas = klientas. gauti_slaptąją_vertę (
SecretId = slaptas_vardas
)
išskyrus ClientError kaip klaidą :
spausdinti ( klaida )
Kitas :
jeigu 'Secret String' in slaptas_vertės_atsakymas :
paslaptis = json. apkrovų ( slaptas_vertės_atsakymas [ 'Secret String' ] )
grąžinti paslaptis
Kitas :
dekoduotas_dvejetainis_slaptis = bazė64. b64 dekoduoti ( Secret_value_Response [ „SecretBinary“ ] )
grąžinti dekoduotas_dvejetainis_slaptis
  • importuoti JSON: naudojamas JSON operacijoms atlikti.
  • importuoti boto3: yra SDK, skirtas bendravimui tarp AWS ir Python.
  • importo bazė64: Naudojamas dvejetainių duomenų kodavimo ir dekodavimo funkcijoms atlikti kaip Base64.
  • importo kliento klaida: Tai leidžia vartotojams tvarkyti rašytinio kodo išimtis.
  • slaptas_vardas: Šiame kintamajame nurodykite savo paslapties pavadinimą. Atkreipkite dėmesį, kad šioje paslaptyje yra „%s“ . Tai yra tada, kai vartotojas turi kelis panašaus formato raktus. Pavyzdžiui, jei vartotojas sukūrė dvi paslaptis, pvz., „apikey/dev/key“ ir „apikey/prod/key“ . Tada į „%s“ , jei vartotojas pateikia „ dev “, Lambda funkcija suteiks plėtros raktas (apikey/dev/key) ir atvirkščiai.
  • boto. sesija.Sesija(): leidžia vartotojams kurti paslaugų klientus ir atsakymus.
  • region_name: Nurodykite regiono, kuriame sukonfigūruota jūsų AWS paslaptis, pavadinimą.
  • Secret_value_response: Šiame kintamajame naudojame „ client.get_secret_value “ funkcija, kuri grąžins paslapties reikšmę.
  • Decoded_binary_secert: Įgijus paslapties vertę, ji toliau bus dekoduojama 64 bazės formatas .

Įklijavę kodą į lambda funkciją, spustelėkite „ Dislokuoti “ mygtuką, kad išsaugotumėte ir pritaikytumėte pakeitimus:

5 veiksmas: kodo patikrinimas

Šioje dienoraščio skiltyje patikrinsime, ar kodas veikia, ar ne. Šiuo tikslu spustelėkite „ Testas “ mygtuką sėkmingai įdiegus Lambda funkcijos pakeitimus:

Kitoje sąsajoje pateikite bandymo pavadinimas įvykis „Renginio pavadinimas“ laukas:

Slinkite žemyn iki Įvykio JSON skiltis , nurodykite „ env “ klavišą ir nurodykite reikšmę JSON formatu. „ vertė “ raktas bus perduotas „%s“ . Kadangi mūsų nurodytose paslaptyse yra „ dev “ vertė, “ dev ' reikšmė perduodama ' env “ kintamasis. Lambda funkcija identifikuos paslaptį, kai kodas bus vykdomas, nes kode pateikiamas konkrečios paslapties identifikatorius. Nurodę detales, spustelėkite „ Sutaupyti “ mygtukas:

Kai įvykis sėkmingai sukurtas, spustelėkite „ Testas “ mygtukas:

Štai, mes turime sėkmingai gautas mūsų nurodytos paslapties vertė:

Tai viskas iš šio vadovo.

Išvada

Norėdami pasiekti API raktus Secret Manager naudodami Lambda, pirmiausia sukurkite API paslaptį, IAM politiką, vaidmenį ir Lambda funkciją ir vykdykite funkcijos kodą. Lambda funkcijas galima iškviesti norint gauti AWS slaptojo tvarkyklės reikšmes, nurodant paslapties identifikatorių vykdant kodą. Šiame straipsnyje pateikiamos nuoseklios gairės, kaip pasiekti API raktus AWS Secret Manager naudojant AWS Lambda.