Serverløs udvikling med AWS Lambda · Lektion

Håndtering af hemmeligheder med AWS Secrets Manager

Gem, hent og roter følsomme legitimationsoplysninger og API-nøgler sikkert i dine serverless-applikationer ved hjælp af AWS Secrets Manager.

Lektion 2 af 411 trin

Håndtering af hemmeligheder med AWS Secrets Manager er en gratis Serverløs udvikling med AWS Lambda-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Serverløs udvikling med AWS Lambda, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Serverløs udvikling med AWS Lambda-kurset indeholder 4 lektioner i alt.

Secrets Manager: Det grundlæggende

Velkommen! I serverløse applikationer er det afgørende at håndtere følsomme data som databaseadgangskoder eller API-nøgler. Det udgør en stor sikkerhedsrisiko at hardkode disse værdier.

AWS Secrets Manager hjælper dig med at gemme, administrere og hente disse hemmeligheder sikkert gennem hele deres levetid.

Hvorfor ikke hardkode?

Det er dårlig praksis at hardkode hemmeligheder direkte i koden til din Lambda-funktion eller i konfigurationsfiler. Her er hvorfor:

  • Sikkerhedsrisiko: Hvis dit kodelager kompromitteres, bliver dine hemmeligheder afsløret.
  • Vedligeholdelse: Når en hemmelighed ændres, kræver det en ny udrulning af koden.
  • Overholdelse: Mange sikkerhedsstandarder forbyder hardkodede legitimationsoplysninger.

Sådan fungerer Secrets Manager

Secrets Manager krypterer dine hemmeligheder, når de er gemt, og under transport. Tjenesten stiller en dedikeret API til rådighed, så du kan hente dem programmatisk efter behov.

Det betyder, at din Lambda-funktion anmoder om hemmeligheden under kørsel, uden nogensinde at gemme den direkte i koden eller miljøvariablerne.

Oprettelse af en hemmelighed

Du kan oprette en hemmelighed i AWS Management Console, via AWS CLI eller ved hjælp af et AWS SDK.

Når du opretter en hemmelighed, angiver du dens type (f.eks. databaselegitimationsoplysninger eller API-nøgle), den faktiske hemmelighedsværdi og eventuelle indstillinger for automatisk udskiftning.

Hentning af hemmeligheder i Lambda

I din Lambda-funktion bruger du AWS SDK'et (f.eks. boto3 til Python) til at kalde Secrets Manager-API'en. Mere specifikt kalder du handlingen GetSecretValue.

Denne handling henter hemmeligheden sikkert og returnerer den til din funktion, så den kan bruges.

Eksempel på hentning i Python

Dette Python-kodestykke viser, hvordan en Lambda-funktion kan hente en hemmelighed med navnet MyDatabaseSecret. Husk, at IAM-rollen for din Lambda-funktion skal have tilladelse til at få adgang til hemmeligheden!

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-tilladelser til hemmeligheder

For at din Lambda-funktion kan hente en hemmelighed, skal dens udførelsesrolle have de nødvendige IAM-tilladelser.

Den skal specifikt have secretsmanager:GetSecretValue for målhemmeligheden eller -hemmelighederne. Det er bedste praksis kun at give adgang til de hemmeligheder, som din funktion faktisk har brug for.

Automatisk udskiftning af hemmeligheder

En af de stærke funktioner i Secrets Manager er automatisk udskiftning af hemmeligheder. Det øger sikkerheden ved regelmæssigt at ændre legitimationsoplysninger uden manuel indgriben.

Du kan konfigurere udskiftning for forskellige tjenester som RDS-databaser. Secrets Manager bruger en Lambda-funktion til at udføre selve udskiftningen.

Bedste praksis for hemmeligheder

Når du bruger AWS Secrets Manager:

  • Mindst mulige privilegier: Giv kun de nødvendige GetSecretValue-tilladelser.
  • Udskift regelmæssigt: Aktivér automatisk udskiftning, når det er muligt.
  • Overvåg adgang: Brug CloudTrail til at kontrollere, hvem der har fået adgang til dine hemmeligheder.
  • Kryptér yderligere: Brug KMS-nøgler til brugerdefineret kryptering efter behov.

Test din viden

Hvilke af følgende er de vigtigste fordele ved at bruge AWS Secrets Manager til serverløse applikationer?

Opsummering: Beskyt dine hemmeligheder!

Du har lært, hvordan AWS Secrets Manager er et vigtigt værktøj til at beskytte dine serverløse applikationer.

  • Det centraliserer og krypterer følsomme data.
  • Det gør det muligt for Lambda-funktioner at hente data sikkert efter behov.
  • Det understøtter automatisk udskiftning for øget sikkerhed.
  • De korrekte IAM-tilladelser er afgørende for adgangskontrollen.

Ved at bruge Secrets Manager reducerer du betydeligt de sikkerhedsrisici, der er forbundet med håndtering af legitimationsoplysninger.

Gratis at komme i gang

Lær Serverløs udvikling med AWS Lambda med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “Håndtering af hemmeligheder med AWS Secrets Manager” gratis?

Ja — hele teksten til “Håndtering af hemmeligheder med AWS Secrets Manager” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Serverløs udvikling med AWS Lambda-kurset, skal du opgradere til CoddyKit PRO. Serverløs udvikling med AWS Lambda-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Håndtering af hemmeligheder med AWS Secrets Manager”?

Gem, hent og roter følsomme legitimationsoplysninger og API-nøgler sikkert i dine serverless-applikationer ved hjælp af AWS Secrets Manager. Du øver dig i Serverløs udvikling med AWS Lambda med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Serverløs udvikling med AWS Lambda?

Der kræves ingen tidligere erfaring. Serverløs udvikling med AWS Lambda på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.

Hvor lang tid tager lektionen “Håndtering af hemmeligheder med AWS Secrets Manager”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Serverløs udvikling med AWS Lambda-lektion?

Ja. Alle Serverløs udvikling med AWS Lambda-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Avancerede IAM-politikker og -tilladelser
  2. Håndtering af hemmeligheder med AWS Secrets Manager
  3. Distribueret tracing med AWS X-Ray
  4. Struktureret logning og korrelations-id'er
← Tilbage til Serverløs udvikling med AWS Lambda