Kā piekļūt API noslēpumiem, izmantojot AWS Lambda?

Ka Pieklut Api Noslepumiem Izmantojot Aws Lambda



AWS pakalpojumu labākā prakse ietver divas darbības, t.i., glabāt-izgūt un pārbaudīt-rotēt. Apvienojot šīs divas darbības vienā, AWS ir izlaidusi Secret Manager, kas palīdz lietotājam aizsargāt savu lietojumprogrammu slepeno informāciju. AWS Secret Manager tiek plaši izmantots, lai izveidotu, uzglabāšanu , modificējot , atkārtojot , un rotējošie datu bāzes akreditācijas dati, API atslēgas, OAuth pilnvaras utt.

Ātrā kontūra

Šajā rakstā ir apskatīti šādi aspekti:

Kas ir AWS Lambda?

AWS Lambda ir skaitļošanas pakalpojums, kas paredzēts kodu izpildei vairākās vidēs un valodās, nenodrošinot un nepārvaldot serverus. Turklāt AWS Lambda var aktivizēt ar vairākiem dažādiem AWS pakalpojumiem, piemēram, S3 spaini, API vārtejas utt. Šis pakalpojums automātiski mērogo lietojumprogrammu un efektīvi izpilda kodu, neprasot lietotājam instalēt papildu atkarības.







Lai uzzinātu vairāk par Lambda pakalpojumu, skatiet šo rakstu šeit: “Darba sākšana ar AWS Lambda” .



Kas ir AWS Secret Manager?

AWS Secret Manager ļauj lietotājiem nodrošināt un šifrēt konfidenciāla informācija lietojumprogrammām, piemēram, OAuth pilnvarām, datu bāzes akreditācijas datiem, API utt. Šī konfidenciālā informācija tiek saukta par 'noslēpums' . Šiem noslēpumiem var piekļūt tikai pilnvarotas iestādes, un tos var mainīt, lai uzlabotu drošību.



Uzziniet vairāk par RDS akreditācijas datu saglabāšanu Secret Manager, skatot šo rakstu: “Kā saglabāt Amazon RDS akreditācijas datus, izmantojot Secret Manager?”





Kā piekļūt API noslēpumiem AWS, izmantojot AWS Lambda?

Lambda nodrošina iebūvētu atbalstu vairākiem pakalpojumiem, piem. S3 spainis, API vārteja un slepenais pārvaldnieks. Lambda funkcijas var izmantot, lai iegūtu konfigurēto noslēpumu vērtību. Izmantojot API noslēpumus AWS Lambda funkcijās, lietotāji var mijiedarboties ar vairākiem AWS pakalpojumiem. Šādi API noslēpumi ir svarīgi arī lambda funkciju autorizācijai.

Lai piekļūtu API atslēgām AWS Secret Manager, izmantojot AWS Lambda, veiciet tālāk minētās darbības.



  • 1. darbība. Izveidojiet API noslēpumu
  • 2. darbība. Izveidojiet IAM politiku
  • 3. darbība. Izveidojiet IAM lomu
  • 4. darbība. Izveidojiet Lambda lomu

1. darbība. Izveidojiet API noslēpumu

Pirms piekļuves API atslēgai AWS Secret Manager, mēs vispirms to iemācīsimies izveidot API noslēpumu . Šim nolūkam piekļūstiet 'Slepenais pārvaldnieks' pakalpojums no AWS pārvaldības konsole:

Uz Galvenā konsole sadaļā AWS Secret Manager noklikšķiniet uz “Saglabājiet jaunu noslēpumu” poga:

Iekš 'Slepenais veids' bloku, izvēlieties “Cita veida noslēpums” opcija no dažādajām parādītajām opcijām:

Ritiniet uz leju līdz “Atslēgas/vērtības pāri” sadaļu un sniedz a unikāls atslēgas-vērtības pāris par jūsu API noslēpumu. Uz pievienot vairāk atslēgu-vērtību pāri , noklikšķiniet uz 'Pievienot rindu' poga:

Nākamais ir 'Šifrēšanas atslēga' sadaļā. AWS nodrošina a noklusējuma šifrēšanas atslēga par noslēpumu. Tomēr lietotājs var nodrošināt arī pielāgotu atslēgas nosaukumu. Saglabājot noklusējuma iestatījumu, noklikšķiniet uz “ Nākamais ” poga:

Šajā saskarnē lietotājam ir jānodrošina a unikāls nosaukums par viņu noslēpumu un a apraksts, kas nav obligāts lauks šeit:

Saglabājot iestatījumi nav mainīti , turpiniet tālāk, noklikšķinot uz “ Nākamais ” poga:

Nākamais nāk Pārskatu sadaļa. Lai apstiprinātu visus informāciju paredzēts ir pareizi , noklikšķiniet uz ' Veikals ” poga, kas atrodas interfeisa apakšā:

Noslēpums ir bijis veiksmīgi izveidots . Noklikšķiniet uz ' Pārlādēt ” pogu, lai parādītu noslēpuma nosaukumu Mērinstrumentu panelis :

2. darbība. Izveidojiet IAM politiku

Uz izveidot IAM politiku, piekļūt IAM pakalpojums no AWS pārvaldības konsoles:

No IAM sānjosla pakalpojumu, noklikšķiniet uz ' Politikas 'opcija:

Uz Politikas konsole , noklikšķiniet uz “Izveidot politiku” poga:

Uzziniet vairāk par AWS IAM politiku, skatot šo rakstu: “AWS IAM politikas piemēri”

Nākamais ir “Norādīt atļaujas” sadaļā. Meklējiet un atlasiet 'Slepenais pārvaldnieks' apkalpošana:

Ritiniet uz leju līdz “Darbības atļautas” bloķēt. Šeit dažādos piekļuves līmeņos pieskarieties “ Lasīt ” opciju. Izvēlieties “Visas lasīšanas darbības” iespēja uz iespējot visu Lasīt pakalpojumi šai politikai:

Ritināt uz leju uz ' Resursi ” sadaļu un noklikšķiniet uz “Pievienot ARN” variants:

Dodieties atpakaļ uz AWS Secret Manager informācijas panelis un noklikšķiniet uz noslēpuma nosaukuma. Kopēt ' RNS ” no noslēpuma zem “ Slepenais ARN ” etiķete no parādītā interfeisa:

Uz Konsole tagad , ielīmējiet nokopēto ARN mapē RNS ” lauks:

Pirms noklikšķināt uz “Pievienot ARN” pogu, noklikšķiniet uz “Šis konts” pogu, lai apstiprinātu, ka noslēpumi pastāv tajā pašā kontā. Pēc iestatījumu konfigurēšanas noklikšķiniet uz “Pievienot ARN” poga:

Pēc konfigurēšana visi iestatījumi politikas, noklikšķiniet uz ' Nākamais ” poga:

Iekš Politikas informācijas sadaļas , norādiet politikas nosaukumu sadaļā “ Politikas nosaukums ” lauks:

Noklikšķiniet uz ' Izveidot politiku ” poga:

The politiku ir izveidots veiksmīgi :

3. darbība. Izveidojiet IAM lomu

Šajā sadaļā izveidojiet IAM lomu, kas satur vajadzīgās atļaujas Lambda funkcijām, lai piekļūtu noslēpumiem. Šim nolūkam noklikšķiniet uz ' Lomas ” opciju IAM lomas sānjoslā un pēc tam pieskarieties “Izveidot lomu” poga no saskarnes:

Pēc noklikšķināšanas uz “Izveidot lomu” pogu, jums tiks parādīts šāds interfeiss. Izvēlieties “AWS pakalpojums” no tālāk norādītajām opcijām, jo ​​mēs to pievienosim IAM loma ar lambda funkciju:

Iekš 'Izmantot gadījumu' sadaļu, meklējiet Lambda serviss un atlasiet to. Nospiediet ' Nākamais ” pogu interfeisa apakšā, lai turpinātu:

Uz nākamais interfeiss , meklējiet nosaukumu Politikas nosaukums ko konfigurējām iepriekš. No parādītajiem rezultātiem atlasiet politikas nosaukums:

Noklikšķiniet uz ' Nākamais ” pogu, kas atrodas apakšā interfeiss, lai turpinātu:

Nodrošiniet a unikāls identifikators par jūsu IAM loma šādā iezīmētajā laukā:

Saglabājot pārējie iestatījumi ir pēc noklusējuma , noklikšķiniet uz “Izveidot lomu” pogu, ritinot uz leju līdz interfeisa apakšdaļai:

Loma ir bijusi veiksmīgi izveidots:

Lai uzzinātu vairāk par IAM lomas izveidi AWS, skatiet šo rakstu: “Kā izveidot IAM lomas AWS” .

4. darbība: izveidojiet lambda funkciju

Nākamais solis ir izveidot lambda funkciju. Šī lambda funkcija saturēs IAM lomu un iegūs noslēpumu vērtību, kad tā tiks izpildīta. Lai piekļūtu Lambda pakalpojumam, meklējiet “ Lambda ” meklēšanas joslā AWS pārvaldības konsole . Rezultātā noklikšķiniet uz pakalpojuma nosaukuma, lai apmeklētu konsoli:

Lambda pakalpojuma sākotnējā saskarnē noklikšķiniet uz “Izveidot funkciju” poga:

Tas parādīs “Izveidot funkciju” saskarne. Izvēlieties “Autors no nulles” opciju un turpiniet, norādot nosaukumu Lambda funkcija iezīmētajā laukā:

Iekš Izpildlaika lauks , atlasiet “ Python 3.9 ” vide:

Zemāk par Izpildes laika sadaļa , tur ir 'Mainīt noklusējuma izpildes lomu' sadaļā. Izvēlieties “Izmantot esošu lomu” opciju un pēc tam norādiet lomu 'Esošā loma' lauks:

Tajā pašā saskarnē pieskarieties “Izveidot funkciju” poga interfeisa apakšā:

Lai uzzinātu vairāk par Lambda funkcijas izveidi, skatiet šo rakstu: “Kā izveidot lambda funkciju, izmantojot Pyhton Runtime” .

Lambda funkcija ir izveidota. Nākamais solis ir nodrošināt kodu Lambda funkcijai. Kad šis kods tiks izpildīts, tas parādīs vērtības Slepenais vadītājs:

imports json
imports boto3
imports bāze64
no botocore. izņēmumi imports ClientError

def lambda_handler ( notikumu , kontekstā ) :
vidi = notikumu [ 'env' ]
slepenais_nosaukums = 'shmaster19/%s/key' % vidi
reģiona_nosaukums = 'ap-southeast-1'

sesija = boto3. sesija . Sesija ( )
klients = sesija. klients (
pakalpojuma_nosaukums = 'noslēpumu pārvaldnieks' ,
reģiona_nosaukums = reģiona_nosaukums
)

mēģināt :
Secret_value_sponse = klients. get_secret_value (
SecretId = slepenais_nosaukums
)
izņemot ClientError kā kļūdu :
drukāt ( kļūda )
cits :
ja 'SecretString' iekšā Secret_value_sponse :
noslēpums = json. slodzes ( Secret_value_sponse [ 'SecretString' ] )
atgriezties noslēpums
cits :
decoded_binary_secret = bāze64. b64 atkodēt ( Secret_value_Response [ 'SecretBinary' ] )
atgriezties decoded_binary_secret
  • importēt JSON: izmanto JSON operāciju veikšanai.
  • importēt boto3: ir SDK saziņai starp AWS un Python.
  • importa bāze64: Izmanto bināro datu kodēšanas un dekodēšanas funkciju veikšanai kā Base64.
  • importa ClientError: Tas ļauj lietotājiem apstrādāt izņēmumus rakstītajā kodā.
  • Secret_name: Šajā mainīgajā norādiet sava noslēpuma nosaukumu. Ņemiet vērā, ka šis noslēpums satur “%s” . Tas ir tad, ja lietotājam ir vairākas līdzīga formāta atslēgas. Piemēram, ja lietotājs ir izveidojis divus noslēpumus, piemēram, “apikey/dev/key” un “apikey/prod/key” . Tad iekšā “%s” , ja lietotājs nodrošina “ izstrādātājs ”, Lambda funkcija nodrošinās attīstības atslēga (apikey/dev/key) un otrādi.
  • boto. sesija. Sesija(): ļauj lietotājiem izveidot pakalpojumu klientus un atbildes.
  • region_name: Norādiet tā reģiona nosaukumu, kurā ir konfigurēts jūsu AWS noslēpums.
  • Secret_value_response: Šajā mainīgajā mēs izmantojam ' client.get_secret_value ” funkcija, kas atgriezīs noslēpuma vērtību.
  • Decoded_binary_secert: Pēc noslēpuma vērtības iegūšanas tas tiks tālāk atšifrēts bāzes 64 formāts .

Pēc koda ielīmēšanas lambda funkcijā noklikšķiniet uz “ Izvietot ” pogu, lai saglabātu un lietotu izmaiņas:

5. darbība: koda pārbaude

Šajā emuāra sadaļā mēs pārbaudīsim, vai kods darbojas vai ne. Šim nolūkam noklikšķiniet uz ' Pārbaude ” pogu pēc veiksmīgas lambda funkcijas izmaiņu izvietošanas:

Nākamajā saskarnē norādiet testēšanas nosaukums pasākumā 'Pasākuma nosaukums' lauks:

Ritiniet uz leju līdz Notikuma JSON sadaļa , norādiet ' env ” taustiņu un norādiet vērtību JSON formātā. ' vērtību ” no atslēgas tiks nodota “%s” . Tā kā mūsu norādītie noslēpumi satur ' izstrādātājs vērtība, ' izstrādātājs ' vērtība tiek nodota ' env ” mainīgais. Funkcija Lambda identificēs noslēpumu, kad kods tiks izpildīts, jo kodā ir norādīts konkrētā noslēpuma identifikators. Pēc detaļu norādīšanas noklikšķiniet uz ' Saglabāt ” poga:

Kad pasākums ir veiksmīgi izveidots, noklikšķiniet uz “ Pārbaude ” poga:

Lūk, mums ir veiksmīgi iegūts mūsu norādītā noslēpuma vērtība:

Tas ir viss no šīs rokasgrāmatas.

Secinājums

Lai piekļūtu API atslēgām Secret Manager, izmantojot Lambda, vispirms izveidojiet API noslēpumu, IAM politiku, lomu un Lambda funkciju un izpildiet funkcijas kodu. Lambda funkcijas var izsaukt, lai iegūtu AWS slepenā pārvaldnieka vērtības, koda izpildes laikā norādot noslēpuma identifikatoru. Šajā rakstā ir sniegtas detalizētas vadlīnijas par to, kā piekļūt API atslēgām AWS Secret Manager, izmantojot AWS Lambda.