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.
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.
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
- Avancerede IAM-politikker og -tilladelser
- Håndtering af hemmeligheder med AWS Secrets Manager
- Distribueret tracing med AWS X-Ray
- Struktureret logning og korrelations-id'er