Kuidas pääseda juurde API saladustele, kasutades AWS Lambdat?

Kuidas Paaseda Juurde Api Saladustele Kasutades Aws Lambdat



AWS-i teenuste parimad tavad hõlmavad kahte toimingut, st salvestamist ja taastamist ja kontrollimist. Ühendades need kaks praktikat ühes, on AWS käivitanud Secret Manageri, mis aitab kasutajal kaitsta oma rakenduste salajast teavet. AWS Secret Manageri kasutatakse laialdaselt ladustamine , muutmine , kordamine , ja pöörlevad andmebaasi mandaadid, API võtmed, OAuthi märgid jne.

Kiire ülevaade

See artikkel hõlmab järgmisi aspekte.

Mis on AWS Lambda?

AWS Lambda on arvutusteenus koodide käivitamiseks mitmes keskkonnas ja keeles ilma servereid pakkumata ja haldamata. Lisaks saavad AWS Lambda käivitada mitmed erinevad AWS-i teenused, nagu S3 ämber, API lüüsid jne. See teenus skaleerib rakendust automaatselt ja käivitab koodi tõhusalt, ilma et kasutajal oleks vaja täiendavaid sõltuvusi installida.







Lambda teenuse kohta lisateabe saamiseks lugege seda artiklit siin: 'AWS lambdaga alustamine' .



Mis on AWS Secret Manager?

AWS Secret Manager võimaldab kasutajatel turvalisust ja krüpteerimist konfidentsiaalne teave rakendusi, nagu OAuthi märgid, andmebaasi mandaadid, API-d jne. Seda konfidentsiaalset teavet nimetatakse 'salajane' . Nendele saladustele pääsevad juurde ainult volitatud asutused ja neid saab turvalisuse suurendamiseks vahetada.



Lisateavet RDS-mandaatide salvestamise kohta Secret Manageris leiate sellest artiklist: 'Kuidas salvestada Amazon RDS-i mandaate kasutades Secret Manageri?'





Kuidas pääseda juurde API saladustele AWS-is, kasutades AWS Lambdat?

Lambda pakub sisseehitatud tuge mitmele teenusele, nt. S3 kopp, API lüüs ja salahaldur. Lambda funktsioone saab kasutada konfigureeritud saladuste väärtuse saamiseks. Rakenduses AWS Lambda Functions API saladusi kasutades saavad kasutajad suhelda mitme AWS-i teenusega. Sellised API saladused on olulised ka lambda funktsioonide autoriseerimiseks.

AWS-i salahalduris API võtmetele juurdepääsuks AWS Lambda abil järgige alltoodud samme.



  • 1. samm: looge API saladus
  • 2. samm: looge IAM-poliitika
  • 3. samm: looge IAM-i roll
  • 4. samm: looge lambda roll

1. samm: looge API saladus

Enne AWS-i salahalduris API-võtmele juurde pääsemist õpime kõigepealt seda tegema luua API saladus . Selleks avage 'Salajane juht' teenust AWS-i halduskonsool:

peal Põhikonsool AWS-i salahalduris klõpsake nuppu 'Salvesta uus saladus' nupp:

Aastal 'Salajane tüüp' blokeerida, valige 'Muud tüüpi saladused' valik erinevate kuvatavate valikute hulgast:

Kerige alla jaotiseni 'Võtme/väärtuse paarid' osa ja esitage a kordumatu võtme-väärtuse paar teie API saladuse jaoks. To lisama rohkem võtme-väärtuse paarid , klõpsake nuppu 'Lisa rida' nupp:

Järgmine on 'Krüpteerimisvõti' osa. AWS pakub a vaikimisi krüpteerimisvõti saladuse eest. Siiski saab kasutaja anda võtmele ka kohandatud nime. Vaikimisi säilitades klõpsake nuppu ' Edasi ” nupp:

Sellel liidesel peab kasutaja esitama a ainulaadne nimi nende saladuse ja a kirjeldus, mis on valikuline väli siin:

Hoides seaded muutmata jätkake, klõpsates nuppu ' Edasi ” nupp:

Järgmiseks tuleb Ülevaate jaotis. Et kinnitada kõik teavet tingimusel on õige , klõpsake nuppu ' Kauplus ” nupp, mis asub liidese allosas:

Saladus on olnud edukalt loodud . Klõpsake nuppu ' Laadi uuesti ” nuppu, et kuvada saladuse nimi Armatuurlaud :

2. samm: looge IAM-poliitika

To luua IAM-poliitika, pääse juurde IAM-teenus AWS-i halduskonsoolist:

Alates IAM-i külgriba teenust, klõpsake nuppu ' Eeskirjad 'valik:

peal Poliitikakonsool , klõpsake nuppu 'Loo poliitika' nupp:

Lisateavet AWS-i IAM-i eeskirjade kohta leiate sellest artiklist: 'AWS IAM poliitika näited'

Järgmine on 'Täpsustage õigused' osa. Otsige ja valige 'Salajane juht' teenus:

Kerige alla jaotiseni 'Toimingud lubatud' blokk. Siin puudutage erinevatel juurdepääsutasemetel nuppu ' Lugege ” valik. Valige 'Kõik lugemistoimingud' võimalus lubage kogu Loe teenused selle poliitika jaoks:

Kerige alla ' Vahendid ” jaotist ja klõpsake nuppu 'Lisa ARN' valik:

Navigeerige tagasi lehele AWS-i salahalduri armatuurlaud ja klõpsake saladuse nimel. Kopeerige ' RNA ' all olevast saladusest Salajane ARN ” silt kuvatud liidesest:

peal Konsool kohe , kleepige kopeeritud ARN jaotisesse ' RNA ” väli:

Enne nupul klõpsamist 'Lisa ARN-id' nuppu, klõpsake nuppu 'See konto' nuppu, et kinnitada, et saladused on samal kontol olemas. Pärast sätete konfigureerimist klõpsake nuppu 'Lisa ARN-id' nupp:

Pärast seadistamine kõik seaded poliitikas klõpsake nuppu ' Edasi ” nupp:

Aastal Eeskirjade üksikasjade jaotised , sisestage poliitika nimi jaotises ' Poliitika nimi ” väli:

Klõpsake nuppu ' Loo poliitika ” nupp:

The poliitika on loodud edukalt :

3. samm: looge IAM-i roll

Selles jaotises looge IAM-i roll, mis sisaldab Lambda funktsioonide jaoks vajalikke õigusi saladustele juurdepääsuks. Selleks klõpsake nuppu ' Rollid ” valikut IAM-i rolli külgribal ja seejärel puudutage valikut 'Loo roll' nuppu liidesest:

Pärast nupul klõpsamist 'Loo roll' nuppu, kuvatakse teile järgmine liides. Valige 'AWS teenus' järgmiste valikute hulgast, kuna me selle lisame IAM roll lambda funktsiooniga:

Aastal 'Kasutusjuhtum' otsige jaotisest Lambda teenindus ja valige see. Vajuta ' Edasi ” nuppu liidese allosas, et jätkata:

peal järgmine liides , otsige selle nime Poliitika nimi mille me varem konfigureerisime. Kuvatud tulemuste hulgast valige poliitika nimi:

klõpsake nuppu ' Edasi ” nuppu allosas liides edasiseks jätkamiseks:

Pakkuda a kordumatu identifikaator sinu IAM roll järgmisel esiletõstetud väljal:

Hoides ülejäänud seaded vaikimisi , klõpsake nuppu 'Loo roll' nuppu, kerides alla liidese allossa:

Roll on olnud edukalt loodud:

Lisateavet AWS-is IAM-rolli loomise kohta leiate sellest artiklist: 'Kuidas luua AWS-is IAM-rolle' .

4. samm: looge lambda funktsioon

Järgmine samm on lambda funktsiooni loomine. See lambda-funktsioon sisaldab IAM-i rolli ja saab käivitamisel saladuste väärtuse. Lambda teenusele juurdepääsuks otsige ' Lambda ” otsinguribal AWS-i halduskonsool . Konsooli külastamiseks klõpsake tulemuses teenuse nimel:

Lambda teenuse esialgsel liidesel klõpsake nuppu 'Loo funktsioon' nupp:

See kuvab 'Loo funktsioon' liides. Valige “Autor nullist” valikut ja jätkake, sisestades selle nime Lambda funktsioon esiletõstetud väljal:

Aastal Kestusväli , valige ' Python 3.9 ” keskkond:

Allpool Kestusaja jaotis , Siin on 'Muuda vaiketäitmisrolli' osa. Valige 'Kasuta olemasolevat rolli' valikut ja seejärel määrake rollis 'Olemasolev roll' väli:

Samal liidesel puudutage nuppu 'Loo funktsioon' nupp liidese allosas:

Lambda funktsiooni loomise kohta lisateabe saamiseks vaadake seda artiklit: 'Kuidas luua lambda funktsiooni Pyhton Runtime'iga' .

Lambda funktsioon on loodud. Järgmine samm on Lambda funktsiooni koodi andmine. Kui see kood käivitatakse, kuvatakse selle väärtused Salahaldur:

importida json
importida boto3
importida alus64
botocore'ist. erandid importida ClientError

def lambda_handler ( sündmus , Sisu ) :
keskkond = sündmus [ 'env' ]
salajane_nimi = 'shmaster19/%s/key' % keskkond
piirkonna_nimi = 'ap-southeast-1'

istungil = boto3. istungil . Seanss ( )
klient = istungil. klient (
teenuse_nimi = 'salahaldur' ,
piirkonna_nimi = piirkonna_nimi
)

proovige :
salajane_väärtus_vastus = klient. hanki_salajane_väärtus (
SecretId = salajane_nimi
)
välja arvatud veana ClientError :
printida ( viga )
muidu :
kui 'Salajane string' sisse salajane_väärtus_vastus :
saladus = json. koormused ( salajane_väärtus_vastus [ 'Salajane string' ] )
tagasi saladus
muidu :
dekodeeritud_binaarne_saladus = alus64. b64 dekodeerida ( Secret_value_Response [ 'SecretBinary' ] )
tagasi dekodeeritud_binaarne_saladus
  • importida json: kasutatakse JSON-i toimingute tegemiseks.
  • import boto3: on AWS-i ja Pythoni vahelise suhtluse SDK.
  • impordibaas64: Kasutatakse binaarandmete kodeerimise ja dekodeerimise funktsioonide täitmiseks kui Base64.
  • impordi ClientError: See võimaldab kasutajatel käsitleda kirjutatud koodi erandeid.
  • Secret_name: Sisestage selles muutujas oma saladuse nimi. Pange tähele, et see saladus sisaldab '%s' . See on siis, kui kasutajal on mitu sarnase vormingu võtit. Näiteks kui kasutaja on loonud kaks saladust, nt 'apikey/dev/key' ja 'apikey/prod/key' . Siis sisse '%s' , kui kasutaja pakub ' dev ”, pakub Lambda funktsioon arendusvõti (apikey/dev/key) ja vastupidi.
  • boto. seanss.Session(): võimaldab kasutajatel luua teenusekliente ja vastuseid.
  • piirkonna_nimi: Esitage selle piirkonna nimi, kus teie AWS-i saladus on konfigureeritud.
  • Secret_value_response: Selles muutujas kasutame ' client.get_secret_value ” funktsioon, mis tagastab saladuse väärtuse.
  • Decoded_binary_secert: Pärast saladuse väärtuse omandamist dekodeeritakse see edasi baas 64 formaat .

Pärast koodi Lambda funktsiooni kleepimist klõpsake nuppu ' Kasutusele võtta ” nuppu muudatuste salvestamiseks ja rakendamiseks:

5. samm: koodi testimine

Selles ajaveebi jaotises kontrollime, kas kood töötab või mitte. Selleks klõpsake nuppu ' Test ” nuppu pärast Lambda funktsiooni muudatuste edukat juurutamist:

Järgmisel liidesel esitage testimise nimi sündmus aastal 'Sündmuse nimi' väli:

Kerige alla jaotiseni Sündmuse JSON-i jaotis , määrake ' env ” klahvi ja sisestage väärtus JSON-vormingus. ' väärtus ” võtmest edastatakse '%s' . Kuna meie määratletud saladused sisaldavad ' dev ' väärtus, ' dev ' väärtus edastatakse ' env ” muutuja. Lambda funktsioon tuvastab saladuse, kui kood käivitatakse, kuna konkreetse saladuse identifikaator on koodis esitatud. Pärast üksikasjade täpsustamist klõpsake nuppu ' Salvesta ” nupp:

Kui sündmus on edukalt loodud, klõpsake nuppu ' Test ” nupp:

Siin, meil on edukalt saadud meie määratud saladuse väärtus:

See on kõik sellest juhendist.

Järeldus

API-võtmetele juurdepääsuks Secret Manageris Lambda abil looge esmalt API saladus, IAM-poliitika, roll ja lambda funktsioon ning käivitage funktsiooni kood. Lambda funktsioone saab kutsuda AWS-i salahalduri väärtuste saamiseks, määrates koodi täitmisel saladuse identifikaatori. See artikkel sisaldab samm-sammult juhiseid selle kohta, kuidas AWS-i salahalduris API võtmetele AWS Lambda abil juurde pääseda.