Jak získat přístup k tajemstvím API pomocí AWS Lambda?

Jak Ziskat Pristup K Tajemstvim Api Pomoci Aws Lambda



Nejlepší postupy služeb AWS zahrnují dvě akce, tj. Store-Retrieve a Audit-Rotate. Spojením těchto dvou postupů v jeden spustil AWS Secret Manager, který pomáhá uživateli chránit tajné informace jejich aplikací. AWS Secret Manager je široce používán pro vytváření, ukládání , upravující , replikující se a rotující přihlašovací údaje k databázi, klíče API, tokeny OAuth atd.

Rychlý přehled

Tento článek se zabývá následujícími aspekty:

Co je AWS Lambda?

AWS Lambda je výpočetní služba pro spouštění kódů v různých prostředích a jazycích bez poskytování a správy serverů. Kromě toho může být AWS Lambda spouštěna několika různými službami AWS, jako je S3 bucket, API brány atd. Tato služba automaticky škáluje aplikaci a efektivně spouští kód, aniž by uživatel musel instalovat jakékoli další závislosti.







Chcete-li se dozvědět více o službě Lambda, přečtěte si tento článek zde: „Začínáme s AWS Lambda“ .



Co je to AWS Secret Manager?

AWS Secret Manager umožňuje uživatelům zabezpečit a zašifrovat důvěrná informace aplikací, jako jsou tokeny OAuth, přihlašovací údaje k databázi, rozhraní API atd. Tyto důvěrné informace se označují jako 'tajný' . K těmto tajemstvím mají přístup pouze oprávněné orgány a lze je otáčet za účelem zvýšení bezpečnosti.



Další informace o ukládání přihlašovacích údajů RDS v Secret Manager naleznete v tomto článku: 'Jak ukládat přihlašovací údaje Amazon RDS pomocí Secret Manager?'





Jak získat přístup k tajemstvím API v AWS pomocí AWS Lambda?

Lambda poskytuje vestavěnou podporu pro více služeb, např. S3 bucket, API Gateway a Secret Manager. K získání hodnoty nakonfigurovaných tajných klíčů lze použít funkce lambda. Pomocí tajných klíčů API v AWS Lambda Functions mohou uživatelé komunikovat s více službami AWS. Taková tajemství API jsou také důležitá pro autorizaci funkcí lambda.

Chcete-li získat přístup ke klíčům API v AWS Secret Manager pomocí AWS Lambda, postupujte podle níže uvedených kroků:



  • Krok 1: Vytvořte tajemství API
  • Krok 2: Vytvořte zásady IAM
  • Krok 3: Vytvořte roli IAM
  • Krok 4: Vytvořte roli lambda

Krok 1: Vytvořte tajemství API

Než přistoupíme ke klíči API v AWS Secret Manager, nejprve se to naučíme vytvořit tajný klíč API . Za tímto účelem přejděte na 'Tajný manažer' služba od Konzole pro správu AWS:

Na Hlavní konzole v AWS Secret Manager klikněte na 'Uložte nové tajemství' knoflík:

V 'Tajný typ' blok, vyberte “Jiný druh tajemství” možnost z různých zobrazených možností:

Přejděte dolů na „Páry klíč/hodnota“ oddíl a poskytnout a jedinečný pár klíč–hodnota pro vaše tajemství API. Na přidat více páry klíč-hodnota , klikněte na 'Přidat řádek' knoflík:

Další je 'Šifrovací klíč' sekce. AWS poskytuje a výchozí šifrovací klíč pro tajemství. Uživatel však může také zadat vlastní název klíče. Při zachování výchozího nastavení klikněte na „ další ' knoflík:

Na tomto rozhraní musí uživatel poskytnout a jedinečné jméno pro jejich tajemství a popis, který je volitelný pole zde:

Dodržením nastavení beze změny , pokračujte dále kliknutím na „ další ' knoflík:

Dále přichází na řadu Sekce recenze. Pro potvrzení všech informace poskytnuto je opravit , klikněte na „ Obchod ” tlačítko umístěné ve spodní části rozhraní:

Tajemství bylo úspěšně vytvořen . Klikněte na „ Znovu načíst ” pro zobrazení názvu tajenky na Přístrojová deska :

Krok 2: Vytvořte zásady IAM

Na vytvořit zásady IAM, přístup k Služba IAM z konzoly pro správu AWS:

z postranní panel IAM služby, klikněte na „ Opatření “ možnost:

Na Konzole zásad , klikněte na 'Vytvořit zásady' knoflík:

Další informace o zásadách AWS IAM naleznete v tomto článku: „Příklady zásad AWS IAM“

Další je 'Upřesnit oprávnění' sekce. Vyhledejte a vyberte 'Tajný manažer' servis:

Přejděte dolů na 'Povolené akce' blok. Zde z různých úrovní přístupu klepněte na „ Číst “ možnost. Vybrat 'Všechny akce čtení' možnost povolit všechna čtení služby pro tuto politiku:

Posunout dolů do ' Zdroje “ a klikněte na 'Přidat ARN' volba:

Přejděte zpět na Ovládací panel AWS Secret Manager a klikněte na název tajenky. Zkopírujte „ RNA “tajemství pod “ Tajné ARN ” štítek ze zobrazeného rozhraní:

Na Nyní konzole , vložte zkopírované ARN do „ RNA pole:

Před kliknutím na 'Přidat ARN' klikněte na tlačítko 'Tento účet' potvrďte, že tajemství existují ve stejném účtu. Po konfiguraci nastavení klikněte na 'Přidat ARN' knoflík:

Po konfigurování všechny nastavení zásady, klikněte na „ další ' knoflík:

V Sekce s podrobnostmi o zásadách , zadejte název zásady v „ Název zásady pole:

Klikněte na „ Vytvořte politiku ' knoflík:

The politika byl vytvořen úspěšně :

Krok 3: Vytvořte roli IAM

V této části vytvořte roli IAM, která obsahuje požadovaná oprávnění pro funkce Lambda pro přístup k tajným klíčům. Za tímto účelem klikněte na „ Role ” z postranního panelu role IAM a potom klepněte na 'Vytvořit roli' tlačítko z rozhraní:

Po kliknutí na 'Vytvořit roli' tlačítko, zobrazí se vám následující rozhraní. Vybrat “Služba AWS” možnost z následujících možností, jak to připojíme role IAM s funkcí lambda:

V 'Případ použití' sekce, vyhledejte Lambda servis a vyberte jej. Udeř ' další ” tlačítko ve spodní části rozhraní pro další pokračování:

Na další rozhraní , vyhledejte název Název politiky které jsme nakonfigurovali dříve. Ze zobrazených výsledků vyberte název zásady:

Klikněte na „ další ” tlačítko ve spodní části rozhraní pro další pokračování:

Poskytněte a unikátní identifikátor pro tebe role IAM v následujícím zvýrazněném poli:

Zachování zbytek nastavení jako výchozí , klikněte na 'Vytvořit roli' přejděte dolů do spodní části rozhraní:

Role byla úspěšně vytvořeno:

Další informace o vytvoření role IAM v AWS naleznete v tomto článku: „Jak vytvořit role IAM v AWS“ .

Krok 4: Vytvořte funkci Lambda

Dalším krokem je vytvoření funkce Lambda. Tato funkce lambda bude obsahovat roli IAM a při spuštění získá hodnotu tajných klíčů. Pro přístup ke službě Lambda vyhledejte „ lambda “ ve vyhledávací liště Konzole pro správu AWS . Kliknutím na název služby z výsledku přejdete do konzole:

Na úvodním rozhraní služby Lambda klikněte na 'Vytvořit funkci' knoflík:

Tím se zobrazí 'Vytvořit funkci' rozhraní. Vybrat “Autor od nuly” a pokračujte dále zadáním názvu pro Funkce lambda ve zvýrazněném poli:

V Runtime pole , vybrat ' Python 3.9 ' životní prostředí:

Pod Runtime sekce , tady je 'Změnit výchozí spouštěcí roli' sekce. Vybrat „Použít existující roli“ a poté určete roli v 'Stávající role' pole:

Na stejném rozhraní klepněte na 'Vytvořit funkci' tlačítko ve spodní části rozhraní:

Další informace o vytvoření funkce Lambda naleznete v tomto článku: „Jak vytvořit funkci Lambda pomocí Pyhton Runtime“ .

Byla vytvořena funkce Lambda. Dalším krokem je poskytnutí kódu funkci Lambda. Po provedení tohoto kódu zobrazí hodnoty Tajný manažer:

import json
import boto3
import základ 64
z botocore. výjimky import ClientError

def lambda_handler ( událost , kontext ) :
životní prostředí = událost [ 'env' ]
tajné_jméno = 'shmaster19/%s/key' % životní prostředí
název_regionu = 'ap-southeast-1'

zasedání = boto3. zasedání . Zasedání ( )
klienta = zasedání. klienta (
Název služby = 'secretsmanager' ,
název_regionu = název_regionu
)

Snaž se :
tajná_hodnota_odpověď = klienta. get_secret_value (
SecretId = tajné_jméno
)
kromě ClientError jako chyby :
tisk ( chyba )
jiný :
-li 'SecretString' v tajná_hodnota_odpověď :
tajný = json. zatížení ( tajná_hodnota_odpověď [ 'SecretString' ] )
vrátit se tajný
jiný :
decoded_binary_secret = základ 64. b64 dekódovat ( tajná_hodnota_odpověď [ 'SecretBinary' ] )
vrátit se decoded_binary_secret
  • import json: slouží k provádění operací JSON.
  • import boto3: je SDK pro komunikaci mezi AWS a Pythonem.
  • import base64: Používá se k provádění funkcí kódování a dekódování na binárních datech jako Base64.
  • import ClientError: To umožňuje uživatelům zpracovávat výjimky v psaném kódu.
  • tajné_jméno: V této proměnné zadejte název vašeho tajného klíče. Všimněte si, že toto tajemství obsahuje '%s' . To je, když má uživatel více klíčů podobného formátu. Pokud například uživatel vytvořil dvě tajemství, např. 'apikey/dev/key' a “apikey/prod/key” . Poté v '%s' , pokud uživatel poskytne „ dev “, zajistí funkce Lambda vývojový klíč (apikey/dev/key) a naopak.
  • boto. session.Session(): umožňuje uživatelům vytvářet klienty služeb a odpovědi.
  • region_name: Zadejte název oblasti, ve které je nakonfigurován váš tajný klíč AWS.
  • Secret_value_response: V této proměnné používáme „ client.get_secret_value ” funkce, která vrátí hodnotu tajného klíče.
  • Decoded_binary_secert: Po získání hodnoty tajemství bude dále dekódováno základní formát 64 .

Po vložení kódu do funkce Lambda klikněte na „ Nasadit ” pro uložení a použití změn:

Krok 5: Testování kódu

V této části blogu ověříme, zda kód funguje nebo ne. Za tímto účelem klikněte na „ Test ” tlačítko po úspěšném nasazení změn funkce Lambda:

Na dalším rozhraní zadejte název pro testování událost v 'Název události' pole:

Přejděte dolů na Sekce JSON události , uveďte „ env ” a zadejte hodnotu ve formátu JSON. ' hodnota ” klíče bude předán '%s' . Protože tajemství, která jsme specifikovali, obsahují „ dev 'hodnota', ' dev ” hodnota je předána do “ env “proměnná. Funkce Lambda identifikuje tajemství, když je kód spuštěn, protože identifikátor konkrétního tajemství je uveden v kódu. Po zadání podrobností klikněte na „ Uložit ' knoflík:

Po úspěšném vytvoření události klikněte na „ Test ' knoflík:

Tady, máme úspěšně získal hodnota našeho specifikovaného tajemství:

To je z tohoto průvodce vše.

Závěr

Chcete-li získat přístup ke klíčům API v Secret Manager pomocí Lambda, nejprve vytvořte tajný klíč API, zásady IAM, roli a funkci Lambda a spusťte kód funkce. Funkce lambda lze vyvolat k získání hodnot AWS Secret Manager zadáním identifikátoru tajného klíče při provádění kódu. Tento článek poskytuje podrobné pokyny, jak získat přístup ke klíčům API v AWS Secret Manager pomocí AWS Lambda.