Ako získať prístup k tajomstvám API pomocou AWS Lambda?

Ako Ziskat Pristup K Tajomstvam Api Pomocou Aws Lambda



Najlepšie postupy služieb AWS zahŕňajú dve akcie, t. j. Store-Retrieve a Audit-Rotate. Spojením týchto dvoch postupov v jednom AWS spustilo Secret Manager, ktorý pomáha používateľovi chrániť tajné informácie ich aplikácií. AWS Secret Manager sa široko používa na vytváranie, ukladanie , upravovanie , replikovanie a rotujúce poverenia databázy, kľúče API, tokeny OAuth atď.

Rýchly prehľad

Tento článok sa zaoberá nasledujúcimi aspektmi:

Čo je AWS Lambda?

AWS Lambda je výpočtová služba na vykonávanie kódov vo viacerých prostrediach a jazykoch bez poskytovania a správy serverov. Okrem toho môže byť AWS Lambda spustená viacerými rôznymi službami AWS, ako je S3 bucket, API brány atď. Táto služba automaticky škáluje aplikáciu a efektívne spúšťa kód bez toho, aby si používateľ musel inštalovať akékoľvek ďalšie závislosti.







Ak sa chcete dozvedieť viac o službe Lambda, prečítajte si tento článok tu: „Začíname s AWS Lambda“ .



Čo je to AWS Secret Manager?

AWS Secret Manager umožňuje používateľom zabezpečiť a šifrovať dôverné informácie aplikácií, ako sú tokeny OAuth, poverenia databázy, rozhrania API atď. Tieto dôverné informácie sa označujú ako 'tajné' . K týmto tajomstvám majú prístup iba oprávnené orgány a možno ich otáčať, aby sa zvýšila bezpečnosť.



Ďalšie informácie o ukladaní poverení RDS v aplikácii Secret Manager nájdete v tomto článku: 'Ako ukladať poverenia Amazon RDS pomocou Secret Manager?'





Ako získať prístup k tajomstvám API v AWS pomocou AWS Lambda?

Lambda poskytuje vstavanú podporu pre viaceré služby, napr. S3 bucket, API Gateway a Secret Manager. Funkcie lambda možno použiť na získanie hodnoty nakonfigurovaných tajných kľúčov. Použitím tajomstiev API v AWS Lambda Functions môžu používatelia interagovať s viacerými službami AWS. Takéto tajomstvá API sú tiež dôležité pre autorizáciu funkcií lambda.

Ak chcete získať prístup ku kľúčom API v AWS Secret Manager pomocou AWS Lambda, postupujte podľa nižšie uvedených krokov:



  • Krok 1: Vytvorte tajný kľúč API
  • Krok 2: Vytvorte politiku IAM
  • Krok 3: Vytvorte rolu IAM
  • Krok 4: Vytvorte úlohu lambda

Krok 1: Vytvorte tajný kľúč API

Pred prístupom ku kľúču API v AWS Secret Manager sa to najskôr naučíme vytvoriť tajomstvo API . Na tento účel prejdite na 'Tajný manažér' služba od Konzola na správu AWS:

Na Hlavná konzola v AWS Secret Manager kliknite na “Uložte si nové tajomstvo” tlačidlo:

V 'Tajný typ' blok, vyberte “Iný druh tajomstva” možnosť z rôznych zobrazených možností:

Prejdite nadol na „Páry kľúč/hodnota“ oddiel a poskytnúť a jedinečný pár kľúč – hodnota pre vaše tajomstvo API. Komu pridať viac párov kľúč – hodnota , klikni na 'Pridať riadok' tlačidlo:

Ďalej je 'Šifrovací kľúč' oddiele. AWS poskytuje a predvolený šifrovací kľúč pre tajomstvo. Používateľ však môže kľúču poskytnúť aj vlastný názov. Pri zachovaní predvoleného nastavenia kliknite na „ Ďalšie tlačidlo ”:

Na tomto rozhraní musí používateľ poskytnúť a jedinečný názov pre ich tajomstvo a a popis, ktorý je voliteľný pole tu:

Dodržaním nastavenia nezmenené , pokračujte ďalej kliknutím na „ Ďalšie tlačidlo ”:

Nasleduje Sekcia recenzie. Na potvrdenie všetkých informácie poskytnuté je správne , klikni na ' Obchod “ tlačidlo umiestnené v spodnej časti rozhrania:

Tajomstvo bolo úspešne vytvorený . Klikni na ' Znovu načítať “, aby sa na obrazovke zobrazilo meno tajomstva Dashboard :

Krok 2: Vytvorte politiku IAM

Komu vytvoriť politiku IAM, prístup k služba IAM z riadiacej konzoly AWS:

Od bočný panel IAM služby, kliknite na „ Postupy “možnosť:

Na Konzola pravidiel , klikni na 'Vytvoriť politiku' tlačidlo:

Ďalšie informácie o zásadách AWS IAM nájdete v tomto článku: „Príklady pravidiel AWS IAM“

Ďalej je 'Určiť povolenia' oddiele. Vyhľadajte a vyberte 'Tajný manažér' služba:

Prejdite nadol na 'Povolené akcie' blokovať. Tu z rôznych úrovní prístupu klepnite na „ Čítať možnosť “. Vyberte 'Všetky akcie čítania' možnosť povoliť všetky funkcie Čítať služby pre túto politiku:

Posunúť nadol do „ Zdroje “ a kliknite na 'Pridať ARN' možnosť:

Prejdite späť na Dashboard AWS Secret Manager a kliknite na názov tajomstva. Skopírujte „ RNA “ z tajomstva pod “ Tajné ARN ” štítok zo zobrazeného rozhrania:

Na Teraz konzola , vložte skopírované ARN do „ RNA ' lúka:

Pred kliknutím na „Pridať ARN“ kliknite na tlačidlo 'Tento účet' potvrďte, že tajomstvá existujú v rovnakom účte. Po nakonfigurovaní nastavení kliknite na „Pridať ARN“ tlačidlo:

Po konfigurácia všetko nastavenie pravidiel kliknite na „ Ďalšie tlačidlo ”:

V Sekcie s podrobnosťami o pravidlách , zadajte názov politiky v časti „ Názov politiky ' lúka:

Klikni na ' Vytvorte politiku tlačidlo ”:

The politika bolo vytvorené úspešne :

Krok 3: Vytvorte rolu IAM

V tejto časti vytvorte rolu IAM, ktorá obsahuje požadované povolenia pre funkcie Lambda na prístup k tajomstvám. Na tento účel kliknite na „ Roly ” z bočného panela roly IAM a potom klepnite na 'Vytvoriť rolu' tlačidlo z rozhrania:

Po kliknutí na 'Vytvoriť rolu' zobrazí sa vám nasledujúce rozhranie. Vyberte “Služba AWS” možnosť z nasledujúcich možností, ako to pripojíme Úloha IAM s funkciou lambda:

V 'Prípad použitia' sekciu, vyhľadajte Služba lambda a vyberte ho. Stlačte „ Ďalšie ” tlačidlo v spodnej časti rozhrania, aby ste mohli pokračovať ďalej:

Na ďalšie rozhranie , vyhľadajte názov Názov politiky ktoré sme nakonfigurovali skôr. Zo zobrazených výsledkov vyberte názov zásady:

Kliknite na „ Ďalšie ” tlačidlo v spodnej časti rozhranie na pokračovanie:

Poskytnúť jedinečný identifikátor pre teba Úloha IAM v nasledujúcom zvýraznenom poli:

Udržiavanie ostatné nastavenia sú predvolené , klikni na 'Vytvoriť rolu' prejdite nadol do spodnej časti rozhrania:

Úloha bola úspešne vytvorené:

Ďalšie informácie o vytvorení roly IAM v AWS nájdete v tomto článku: „Ako vytvoriť roly IAM v AWS“ .

Krok 4: Vytvorte funkciu Lambda

Ďalším krokom je vytvorenie funkcie Lambda. Táto funkcia lambda bude obsahovať rolu IAM a pri spustení získa hodnotu tajomstiev. Ak chcete získať prístup k službe Lambda, vyhľadajte „ lambda “ vo vyhľadávacom paneli Konzola správy AWS . Kliknutím na názov služby z výsledku navštívite konzolu:

Na úvodnom rozhraní služby Lambda kliknite na 'Vytvoriť funkciu' tlačidlo:

Tým sa zobrazí 'Vytvoriť funkciu' rozhranie. Vyberte “Autor od nuly” a pokračujte ďalej zadaním názvu pre Funkcia lambda vo zvýraznenom poli:

V Runtime pole , vyberte možnosť „ Python 3.9 “prostredie:

Pod Runtime sekcia , existuje a 'Zmeniť predvolenú rolu vykonávania' oddiele. Vyberte „Použiť existujúcu rolu“ a potom zadajte rolu v 'Existujúca rola' lúka:

Na rovnakom rozhraní klepnite na 'Vytvoriť funkciu' tlačidlo v spodnej časti rozhrania:

Ak sa chcete dozvedieť viac o vytvorení funkcie Lambda, prečítajte si tento článok: „Ako vytvoriť funkciu Lambda pomocou programu Pyhton Runtime“ .

Bola vytvorená funkcia Lambda. Ďalším krokom je poskytnutie kódu funkcii Lambda. Po vykonaní tohto kódu sa zobrazia hodnoty Tajný manažér:

importovať json
importovať boto3
importovať základ 64
z botocore. výnimky importovať ClientError

def lambda_handler ( udalosť , kontext ) :
životné prostredie = udalosť [ 'env' ]
tajný_názov = 'shmaster19/%s/key' % životné prostredie
názov_regiónu = 'ap-southeast-1'

relácie = boto3. relácie . Relácia ( )
zákazník = relácie. zákazník (
názov_služby = 'secretsmanager' ,
názov_regiónu = názov_regiónu
)

skúste :
tajná_hodnota_odpoveď = zákazník. get_secret_value (
SecretId = tajný_názov
)
okrem ClientError ako chyby :
vytlačiť ( chyba )
inak :
ak 'SecretString' v tajná_hodnota_odpoveď :
tajný = json. zaťaženie ( tajná_hodnota_odpoveď [ 'SecretString' ] )
vrátiť tajný
inak :
decoded_binary_secret = základ 64. b64 dekódovať ( tajná_hodnota_odpoveď [ 'SecretBinary' ] )
vrátiť decoded_binary_secret
  • import json: používané na vykonávanie operácií JSON.
  • importovať boto3: je SDK pre komunikáciu medzi AWS a Pythonom.
  • import base64: Používa sa na vykonávanie funkcií kódovania a dekódovania na binárnych údajoch ako Base64.
  • import ClientError: To umožňuje používateľom spracovávať výnimky v napísanom kóde.
  • tajný_názov: V tejto premennej zadajte názov tajomstva. Všimnite si, že toto tajomstvo obsahuje „%s“ . To je, keď má používateľ viacero kľúčov podobného formátu. Ak napríklad používateľ vytvoril dve tajomstvá, napr. „apikey/dev/key“ a “apikey/prod/key” . Potom v „%s“ , ak používateľ poskytne „ dev “, funkcia Lambda zabezpečí rozvojový kľúč (apikey/dev/key) a naopak.
  • boto. session.Session(): umožňuje používateľom vytvárať klientov služby a odpovede.
  • region_name: Zadajte názov oblasti, v ktorej je nakonfigurovaný váš tajný kľúč AWS.
  • Secret_value_response: V tejto premennej používame „ client.get_secret_value ” funkcia, ktorá vráti hodnotu tajomstva.
  • Decoded_binary_secert: Po získaní hodnoty tajomstva bude ďalej dekódované základný formát 64 .

Po vložení kódu do funkcie Lambda kliknite na „ Nasadiť ” tlačidlo na uloženie a použitie zmien:

Krok 5: Testovanie kódu

V tejto časti blogu overíme, či kód funguje alebo nie. Na tento účel kliknite na „ Test ” po úspešnom nasadení zmien funkcie Lambda:

Na ďalšom rozhraní zadajte názov pre testovanie udalosť v 'Názov udalosti' lúka:

Prejdite nadol na Sekcia JSON udalosti , špecifikujte „ env ” a zadajte hodnotu vo formáte JSON. ' hodnotu ” kľúča bude odovzdaný „%s“ . Keďže tajomstvá, ktoré sme špecifikovali, obsahujú „ dev 'hodnota', ' dev “hodnota sa odovzdá do “ env “premenná. Funkcia Lambda identifikuje tajomstvo, keď sa kód spustí, pretože identifikátor konkrétneho tajomstva je uvedený v kóde. Po zadaní podrobností kliknite na „ Uložiť tlačidlo ”:

Po úspešnom vytvorení udalosti kliknite na „ Test tlačidlo ”:

Tu máme úspešne získané hodnota nášho špecifikovaného tajomstva:

To je všetko z tohto návodu.

Záver

Ak chcete získať prístup k API kľúčom v Secret Manager pomocou Lambda, najprv vytvorte API Secret, IAM Policy, Role a Lambda Function a spustite kód funkcie. Funkcie lambda je možné vyvolať na získanie hodnôt AWS Secret Manager zadaním identifikátora tajomstva pri vykonávaní kódu. Tento článok poskytuje podrobné pokyny, ako získať prístup ku kľúčom API v AWS Secret Manager pomocou AWS Lambda.