Håndtering av hemmeligheter med AWS Secrets Manager
Lagre, hent og roter sensitive legitimasjonsopplysninger og API-nøkler på en sikker måte i serverless-applikasjonene Deres ved hjelp av AWS Secrets Manager
Håndtering av hemmeligheter med AWS Secrets Manager er en gratis leksjon i Serverløs utvikling med AWS Lambda på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Serverløs utvikling med AWS Lambda, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Serverløs utvikling med AWS Lambda inneholder totalt 4 leksjoner.
Secrets Manager: Det grunnleggende
Velkommen! I serverløse applikasjoner er det avgjørende å håndtere sensitive data som databasepassord eller API-nøkler på en sikker måte. Det innebærer en betydelig sikkerhetsrisiko å hardkode disse verdiene.
AWS Secrets Manager hjelper Dem med å lagre, administrere og hente disse hemmelighetene på en sikker måte gjennom hele livssyklusen.
Hvorfor ikke hardkode?
Det er en dårlig praksis å hardkode hemmeligheter direkte i Lambda-funksjonens kode eller konfigurasjonsfiler. Her er hvorfor:
- Sikkerhetsrisiko: Hvis kodelageret blir kompromittert, blir hemmelighetene eksponert.
- Vedlikehold: Når en hemmelighet endres, må koden distribueres på nytt.
- Samsvar: Mange sikkerhetsstandarder forbyr hardkodet legitimasjon.
Slik fungerer Secrets Manager
Secrets Manager krypterer hemmelighetene Deres både når de lagres og under overføring. Tjenesten tilbyr et dedikert API for programmatisk henting når det trengs.
Det betyr at Lambda-funksjonen Deres ber om hemmeligheten under kjøring, uten å lagre den direkte i koden eller miljøvariablene.
Opprette en hemmelighet
De kan opprette en hemmelighet i AWS Management Console, via AWS CLI eller ved hjelp av en AWS SDK.
Når De oppretter en hemmelighet, angir De typen (for eksempel databaselegitimasjon eller API-nøkkel), selve hemmelighetsverdien og eventuelle innstillinger for automatisk rotering.
Hente hemmeligheter i Lambda
I Lambda-funksjonen Deres bruker De AWS SDK (for eksempel boto3 for Python) til å kalle Secrets Manager-API-et. Mer spesifikt bruker De operasjonen GetSecretValue.
Denne operasjonen henter hemmeligheten på en sikker måte og returnerer den til funksjonen, slik at den kan brukes.
Eksempel på henting i Python
Dette Python-utdraget viser hvordan en Lambda-funksjon kan hente en hemmelighet med navnet MyDatabaseSecret. Husk at IAM-rollen til Lambda-funksjonen må ha tillatelse til å få tilgang til hemmeligheten!
import boto3
import json
from botocore.exceptions import ClientError
def get_secret(secret_name):
client = boto3.client('secretsmanager')
try:
get_secret_value_response = client.get_secret_value(
SecretId=secret_name
)
except ClientError as e:
# Handle errors like ResourceNotFoundException
print(f"Error retrieving secret: {e}")
raise e
else:
if 'SecretString' in get_secret_value_response:
return get_secret_value_response['SecretString']
# For binary secrets, use 'SecretBinary'
return None
# This is a runnable example, not a full Lambda handler.
# In a real Lambda, 'event' and 'context' would be parameters.
if __name__ == "__main__":
print("--- Simulating Secret Retrieval ---")
print("Attempting to retrieve 'MyDatabaseSecret'...")
try:
# In a real scenario, replace with your secret's actual name
# secret_json = get_secret('MyDatabaseSecret')
# if secret_json:
# secret_data = json.loads(secret_json)
# print(f"Username: {secret_data.get('username')}")
# print(f"Password (first 5 chars): {secret_data.get('password')[:5]}...")
# else:
# print("Secret could not be retrieved or was binary.")
print("Retrieval logic demonstrated. Remember IAM permissions!")
except Exception as e:
print(f"An error occurred during simulation: {e}")IAM-tillatelser for hemmeligheter
For at Lambda-funksjonen Deres skal kunne hente en hemmelighet, må kjøringsrollen ha de nødvendige IAM-tillatelsene.
Den trenger spesifikt secretsmanager:GetSecretValue for målhemmeligheten(e). Det er beste praksis å bare gi tilgang til hemmelighetene funksjonen faktisk trenger.
Automatisk rotering av hemmeligheter
En av de effektive funksjonene i Secrets Manager er automatisk rotering av hemmeligheter. Dette øker sikkerheten ved å endre legitimasjon regelmessig uten manuell inngripen.
De kan konfigurere rotering for ulike tjenester, for eksempel RDS-databaser. Secrets Manager bruker en Lambda-funksjon til å utføre selve roteringen.
Beste praksis for hemmeligheter
Når De bruker AWS Secrets Manager:
- Minste privilegium: Gi bare nødvendige
GetSecretValue-tillatelser. - Roter regelmessig: Aktiver automatisk rotering når det er mulig.
- Overvåk tilgang: Bruk CloudTrail til å kontrollere hvem som har fått tilgang til hemmelighetene Deres.
- Krypter ytterligere: Bruk KMS-nøkler for egendefinert kryptering ved behov.
Test kunnskapene Deres
Hvilke av følgende er viktige fordeler ved å bruke AWS Secrets Manager i serverløse applikasjoner?
Oppsummering: Sikre hemmelighetene Deres!
De har lært hvordan AWS Secrets Manager er et viktig verktøy for å sikre serverløse applikasjoner.
- Tjenesten sentraliserer og krypterer sensitive data.
- Den muliggjør sikker henting ved behov fra Lambda-funksjoner.
- Den støtter automatisk rotering for økt sikkerhet.
- Riktige IAM-tillatelser er avgjørende for tilgangskontroll.
Ved å bruke Secrets Manager reduserer De sikkerhetsrisikoen knyttet til håndtering av legitimasjon betydelig.
Lær deg Serverløs utvikling med AWS Lambda med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 12
- Leksjoner
- 48
Ofte stilte spørsmål
Er leksjonen «Håndtering av hemmeligheter med AWS Secrets Manager» gratis?
Ja – hele teksten i «Håndtering av hemmeligheter med AWS Secrets Manager» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Serverløs utvikling med AWS Lambda-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Serverløs utvikling med AWS Lambda inneholder totalt 4 leksjoner.
Hva lærer jeg i «Håndtering av hemmeligheter med AWS Secrets Manager»?
Lagre, hent og roter sensitive legitimasjonsopplysninger og API-nøkler på en sikker måte i serverless-applikasjonene Deres ved hjelp av AWS Secrets Manager Du øver på Serverløs utvikling med AWS Lambda med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Serverløs utvikling med AWS Lambda?
Ingen tidligere erfaring er nødvendig. Serverløs utvikling med AWS Lambda på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.
Hvor lang tid tar leksjonen «Håndtering av hemmeligheter med AWS Secrets Manager»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Serverløs utvikling med AWS Lambda-leksjonen?
Ja. Alle Serverløs utvikling med AWS Lambda-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Avanserte IAM-policyer og tillatelser
- Håndtering av hemmeligheter med AWS Secrets Manager
- Distribuert sporing med AWS X-Ray
- Strukturert logging og korrelasjons-ID-er