Rychlý přehled
Tento článek se zabývá následujícími aspekty:
- Co je Lambda?
- Co je to AWS Secret Manager?
- Jak získat přístup k tajemstvím API v AWS pomocí AWS Lambda?
- Závěr
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 jsonimport 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.