Gyors vázlat
Ez a cikk a következő szempontokat tárgyalja:
- Mi az a lambda?
- Mi az AWS Secret Manager?
- Hogyan lehet elérni az API titkait az AWS-ben az AWS Lambda használatával?
- Következtetés
Mi az AWS Lambda?
Az AWS Lambda egy számítási szolgáltatás kódok végrehajtására több környezetben és nyelven a szerverek biztosítása és kezelése nélkül. Ezenkívül az AWS Lambdát az AWS több különböző szolgáltatása is elindíthatja, mint például az S3 bucket, API-átjárók stb. Ez a szolgáltatás automatikusan méretezi az alkalmazást, és hatékonyan hajtja végre a kódot anélkül, hogy a felhasználónak további függőséget kellene telepítenie.
Ha többet szeretne megtudni a Lambda szolgáltatásról, olvassa el ezt a cikket itt: „Kezdő lépések az AWS Lambdával” .
Mi az AWS Secret Manager?
Az AWS Secret Manager lehetővé teszi a felhasználók számára, hogy biztonságossá és titkosítsák a bizalmas információ alkalmazások, például OAuth tokenek, adatbázis hitelesítő adatok, API-k stb. Ezek a bizalmas információk 'titok' . Ezekhez a titkokhoz csak arra felhatalmazott szervek férhetnek hozzá, és a biztonság fokozása érdekében forgathatók.
További információ az RDS-hitelesítő adatok Secret Managerben való tárolásáról ebben a cikkben: „Hogyan tárolhatjuk az Amazon RDS hitelesítő adatait a Secret Manager segítségével?”
Hogyan lehet elérni az API titkait az AWS-ben az AWS Lambda használatával?
A Lambda beépített támogatást nyújt több szolgáltatáshoz, pl. S3 bucket, API Gateway és Secret Manager. A lambda függvények segítségével lekérhető a beállított titkok értéke. Az AWS Lambda Functions API-titkainak használatával a felhasználók az AWS több szolgáltatásával is kapcsolatba léphetnek. Az ilyen API-titkok a lambda-funkciók engedélyezése szempontjából is fontosak.
Az API kulcsok eléréséhez az AWS Secret Managerben az AWS Lambda használatával, kövesse az alábbi lépéseket:
- 1. lépés: Hozzon létre egy API-titkot
- 2. lépés: Hozzon létre egy IAM-házirendet
- 3. lépés: Hozzon létre egy IAM-szerepet
- 4. lépés: Lambda szerepkör létrehozása
1. lépés: Hozzon létre egy API-titkot
Mielőtt hozzáférne egy API-kulcshoz az AWS Secret Managerben, először megtanuljuk hozzon létre egy API-titkot . Ebből a célból nyissa meg a 'Titkos menedzser' szolgáltatást a AWS felügyeleti konzol:
A Fő konzol az AWS titkos kezelőjében kattintson a gombra „Tárolj el egy új titkot” gomb:
Ban,-ben 'Titkos típus' blokk, válassza ki a „Más típusú titok” opció a különböző megjelenített lehetőségek közül:
Görgessen le a „Kulcs/érték párok” szakaszt, és biztosítsa a egyedi kulcs-érték pár az API-titokért. Nak nek add hozzá több kulcs-érték párok , kattintson a 'Sor hozzáadása' gomb:
Következő a 'Titkosítási kulcs' szakasz. Az AWS biztosít a alapértelmezett titkosítási kulcs a titokért. A felhasználó azonban egyéni nevet is megadhat a kulcsnak. Az alapértelmezett beállítás megtartásával kattintson a „ Következő ” gomb:
Ezen a felületen a felhasználónak meg kell adnia a egyedi név titkukért és a leírás, amely nem kötelező mező itt:
Azáltal, hogy megtartja a beállítások változatlanok , lépjen tovább a „ Következő ” gomb:
Következik a Áttekintés szakasz. Az összes megerősítéséhez információ feltéve van helyes , kattintson a ' Bolt ” gomb a felület alján található:
A titok az volt sikeresen létrehozva . Kattintson a ' Újratöltés ” gombot a titok nevének megjelenítéséhez Irányítópult :
2. lépés: Hozzon létre egy IAM-házirendet
Nak nek IAM szabályzat létrehozása, elérheti a IAM szolgáltatás az AWS Management Console-ból:
Tól az IAM oldalsávja szolgáltatás, kattintson a „ Irányelvek ' választási lehetőség:
A Házirend-konzol , kattintson a „Szabályzat létrehozása” gomb:
További információ az AWS IAM-szabályzatáról ebben a cikkben: „AWS IAM szabályzat példák”
Következő a „Engedélyek megadása” szakasz. Keressen és válassza ki a 'Titkos menedzser' szolgáltatás:
Görgessen le a „Műveletek engedélyezettek” Blokk. Itt a különböző hozzáférési szintek közül érintse meg a „ Olvas ' választási lehetőség. Válaszd ki a „Minden olvasási művelet” opciót engedélyezze az összes olvasást szolgáltatások ehhez a szabályzathoz:
Görgessen le hoz ' Erőforrások ” részt, és kattintson a „ARN hozzáadása” választási lehetőség:
Navigáljon vissza a AWS Secret Manager irányítópult és kattintson a titok nevére. Másolja ki a ' RNS alatti titokról Titkos ARN ” címke a megjelenített felületről:
A Konzol most , illessze be a másolt ARN-t a „ RNS ' terület:
Mielőtt rákattint a „ARN hozzáadása” gombra, kattintson a 'Ez a fiók' gombot, hogy megerősítse, hogy a titkok ugyanabban a fiókban léteznek. A beállítások konfigurálása után kattintson a gombra „ARN hozzáadása” gomb:
Után konfigurálása mind a beállítások a szabályzatban kattintson a „ Következő ” gomb:
Ban,-ben A szabályzat részleteit tartalmazó szakaszok , adja meg a szabályzat nevét a ' Szabályzat neve ' terület:
Kattintson a ' Házirend létrehozása ” gomb:
A irányelv létrejött sikeresen :
3. lépés: Hozzon létre egy IAM-szerepet
Ebben a szakaszban hozzon létre egy IAM-szerepkört, amely tartalmazza a Lambda-függvények számára a titkok eléréséhez szükséges engedélyeket. Ehhez kattintson a „ Szerepek ” opciót az IAM szerepkör oldalsávjáról, majd érintse meg a „Szerep létrehozása” gomb a felületről:
Miután rákattintott a „Szerep létrehozása” gombot, a következő felület jelenik meg. Válaszd ki a “AWS szolgáltatás” opciót a következő lehetőségek közül, mivel ezt csatolni fogjuk IAM szerepkör lambda funkcióval:
Ban,-ben „Használati eset” részben keresse meg a Lambda szerviz és válassza ki. Üsd a ' Következő ” gombot a kezelőfelület alján a továbblépéshez:
A következő felület , keresse meg a nevét Az irányelv neve amit korábban konfiguráltunk. A megjelenített eredmények közül válassza ki a szabályzat neve:
Kattints a ' Következő ” gomb alján felület a továbblépéshez:
Adja meg a egyedi azonosító neked IAM szerepkör az alábbi kiemelt mezőben:
Tartva a a többi beállítás alapértelmezett , kattintson a „Szerep létrehozása” gombot a felület aljára görgetve:
A szerep az volt sikeresen létrehozva:
Ha többet szeretne megtudni az IAM-szerepkör létrehozásáról az AWS-ben, olvassa el ezt a cikket: „Hogyan hozzunk létre IAM-szerepeket az AWS-ben” .
4. lépés: Hozzon létre egy lambda-függvényt
A következő lépés a lambda-függvény létrehozása. Ez a lambda függvény tartalmazza az IAM szerepkört, és végrehajtáskor megkapja a titkok értékét. A Lambda szolgáltatás eléréséhez keressen a „ Lambda ” a keresősávban AWS felügyeleti konzol . Az eredményben kattintson a szolgáltatás nevére a konzol megnyitásához:
A Lambda szolgáltatás kezdeti felületén kattintson a gombra „Funkció létrehozása” gomb:
Ez megjeleníti a „Funkció létrehozása” felület. Válaszd ki a “Szerző a semmiből” opciót, és folytassa a nevének megadásával Lambda funkció a kiemelt mezőben:
Ban,-ben Futásidejű mező , válaszd ki a ' Python 3.9 ” környezet:
Valami alatt Futásidejű szakasz , van egy „Alapértelmezett végrehajtási szerep módosítása” szakasz. Válaszd ki a „Meglévő szerepkör használata” opciót, majd adja meg a szerepet a „Meglévő szerepkör” terület:
Ugyanazon a felületen érintse meg a „Funkció létrehozása” gomb a felület alján:
Ha többet szeretne megtudni a lambda-függvény létrehozásáról, olvassa el ezt a cikket: „Hogyan hozzunk létre lambda-függvényt a Pyhton Runtime segítségével” .
A Lambda funkció létrejött. A következő lépés a kód megadása a Lambda funkcióhoz. Amikor ez a kód lefut, megjeleníti az értékeit Titkos menedzser:
import jsonimport boto3
import alap64
a botocore-ból. kivételek import ClientError
def lambda_handler ( esemény , kontextus ) :
környezet = esemény [ 'env' ]
titkos_név = 'shmaster19/%s/key' % környezet
régió_neve = 'ap-délkelet-1'
ülés = boto3. ülés . Ülés ( )
ügyfél = ülés. ügyfél (
szolgáltatás neve = 'titkosmenedzser' ,
régió_neve = régió_neve
)
próbáld ki :
titkos_érték_válasz = ügyfél. get_secret_value (
SecretId = titkos_név
)
kivéve a ClientError-t mint hibát :
nyomtatás ( hiba )
más :
ha 'SecretString' ban ben titkos_érték_válasz :
titok = json. terhelések ( titkos_érték_válasz [ 'SecretString' ] )
Visszatérés titok
más :
dekódolt_bináris_titkos = alap64. b64 dekódolni ( titkos_érték_válasz [ 'SecretBinary' ] )
Visszatérés dekódolt_bináris_titkos
- json importálása: JSON-műveletek végrehajtására szolgál.
- boto3 importálása: az SDK az AWS és a Python közötti kommunikációhoz.
- import base64: Kódolási és dekódolási funkciók végrehajtására szolgál bináris adatokon Base64-ként.
- ClientError importálása: Ez lehetővé teszi a felhasználók számára, hogy kezeljék a kivételeket az írott kódban.
- titkos_név: Ebben a változóban adja meg a titok nevét. Vegye figyelembe, hogy ez a titok tartalmaz „%s” . Ilyenkor egy felhasználónak több hasonló formátumú kulcsa van. Például, ha egy felhasználó két titkot hozott létre, pl. „apikey/dev/key” és „apikey/prod/key” . Aztán a „%s” , ha a felhasználó megadja a „ dev ”, a Lambda funkció biztosítja a fejlesztési kulcs (apikey/dev/key) és fordítva.
- boto. session.Session(): lehetővé teszi a felhasználók számára, hogy szolgáltatási ügyfeleket és válaszokat hozzanak létre.
- régió_neve: Adja meg annak a régiónak a nevét, amelyben az AWS-titka be van állítva.
- Secret_value_response: Ebben a változóban a ' client.get_secret_value ” függvény, amely visszaadja a titok értékét.
- Decoded_binary_secert: A titok értékének megszerzése után az tovább lesz dekódolva alap 64 formátum .
Miután beillesztette a kódot a lambda függvénybe, kattintson a „ Telepítés ” gombot a változtatások mentéséhez és alkalmazásához:
5. lépés: A kód tesztelése
A blog ezen részében ellenőrizni fogjuk, hogy a kód működik-e vagy sem. Ehhez kattintson a „ Teszt ” gombot, miután sikeresen telepítette a lambda funkció módosításait:
A következő felületen adja meg a név a teszteléshez esemény a 'Esemény neve' terület:
Görgessen le a Esemény JSON szakasz , adja meg a „ env ” kulcsot, és adja meg az értéket JSON formátumban. A ' érték ” címre kerül átadásra „%s” . Mivel az általunk meghatározott titkok tartalmazzák a „ dev ' érték, a ' dev ' érték átadásra kerül a ' env ” változó. A Lambda funkció azonosítja a titkot, amikor a kód végrehajtásra kerül, mivel az adott titok azonosítója szerepel a kódban. A részletek megadása után kattintson a „ Megment ” gomb:
Ha az esemény sikeresen létrejött, kattintson a „ Teszt ” gomb:
Itt van sikeresen megszerezték a megadott titkunk értéke:
Ebből az útmutatóból ennyi.
Következtetés
Az API-kulcsok eléréséhez a Secret Managerben a Lambda használatával először hozzon létre egy titkos API-t, IAM-házirendet, szerepkört és Lambda-függvényt, és futtassa a funkció kódját. A lambda függvények meghívhatók az AWS Secret Manager értékeinek lekérésére, ha a kód végrehajtása során megadjuk a titok azonosítóját. Ez a cikk lépésről lépésre ismerteti az API-kulcsok elérését az AWS Secret Managerben az AWS Lambda használatával.