Dynamiska hemligheter och leasing
Kortlivade autentiseringsuppgifter som upphör automatiskt.
Dynamiska hemligheter och leasing är en gratis lektion i Cyber Security Academy på CoddyKit. Detta är lektion 3 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Cyber Security Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Cyber Security Academy innehåller totalt 4 lektioner.
Statiska och dynamiska hemligheter
En statisk hemlighet skapas en gång och återanvänds på obestämd tid – till exempel samma databaslösenord som tio tjänster delar i flera år. Statiska hemligheter är standardlösningen och samtidigt problemet: de har lång livslängd, delas brett och är svåra att rotera.
En dynamisk hemlighet genereras på begäran, är unik för en konsument och upphör automatiskt att gälla. I stället för att lagra ett lösenord skapar valvet en helt ny autentiseringsuppgift varje gång någon begär en.
Denna enda förändring löser de svåraste delarna av hemlighetshantering: rotation blir automatisk och skadeomfånget vid en läcka minskar till nästan noll.
Så fungerar dynamiska hemligheter
Dynamiska hemligheter kräver att valvet har privilegierad åtkomst till backend-systemet. För en databas ser flödet ut så här:
- En administratör konfigurerar valvet med en root-autentiseringsuppgift för databasen och en mall för skapande.
- En app autentiserar sig och begär en autentiseringsuppgift.
- Valvet kör
CREATE USERi databasen och returnerar ett nytt användarnamn och lösenord. - När leasen löper ut kör valvet automatiskt
DROP USER.
Appen ser aldrig ett långlivat lösenord – den får ett tillfälligt lösenord som är kopplat till dess identitet och lease.
# Configure Vault's database engine with a creation statement
vault write database/roles/billing-readonly \
db_name=appdb \
creation_statements="CREATE ROLE \"{{name}}\" LOGIN PASSWORD '{{password}}' VALID UNTIL '{{expiration}}'; GRANT SELECT ON billing TO \"{{name}}\";" \
default_ttl="1h" max_ttl="24h"Begära en dynamisk autentiseringsuppgift
När en applikation behöver åtkomst till en databas ber den valvet om en autentiseringsuppgift. Svaret innehåller ett unikt, nyskapat användarnamn och lösenord samt en lease som anger hur länge den är giltig.
Varje konsument får en egen autentiseringsuppgift. Om två pods av samma tjänst startar får de två olika användarnamn, vilket möjliggör granskning per konsument på databasnivå.
vault read database/creds/billing-readonly
# Example response:
# lease_id database/creds/billing-readonly/abc123
# lease_duration 1h
# password A1b-2Cd3-temp-xyz
# username v-approle-billing-9f3a2Leases: avtalet om livslängd
En lease är ett avtal som anger hur länge denna hemlighet är giltig. Varje dynamisk hemlighet har en TTL (livslängd) och eventuellt en max TTL.
- default_ttl hur länge autentiseringsuppgiften gäller innan den löper ut.
- max_ttl den absoluta övre gränsen, även vid förnyelser.
När leasen löper ut återkallar valvet autentiseringsuppgiften – det tar aktivt bort databasanvändaren. Giltighetens slut är inte bara en flagga; det utlöser faktisk rensning. Det är detta som gör läckta dynamiska hemligheter självläkande: en stulen autentiseringsuppgift blir oanvändbar inom TTL-fönstret.
Förnya och återkalla leases
Långlivade appar som överlever en lease måste förnya den innan den löper ut. Förnyelsen förlänger TTL upp till max TTL, varefter appen måste begära en ny autentiseringsuppgift.
Operatörer kan också återkalla en lease omedelbart – en kill switch vid en incident. När en lease återkallas tas den underliggande autentiseringsuppgiften bort direkt, oavsett hur mycket av TTL-tiden som återstår.
Ni kan även återkalla alla leases under ett prefix för att omedelbart stänga av en hel tjänst eller miljö.
# Renew a lease before it expires
vault lease renew database/creds/billing-readonly/abc123
# Revoke a single lease immediately (incident kill switch)
vault lease revoke database/creds/billing-readonly/abc123
# Revoke every lease under a path prefix
vault lease revoke -prefix database/creds/billing-readonlyBortom databaser
Dynamiska hemligheter är inte begränsade till databaser. Vault och liknande verktyg genererar kortlivade autentiseringsuppgifter för många system:
- Cloud IAM tillfälliga AWS-/GCP-/Azure-åtkomstnycklar via assume-role-flöden av STS-typ.
- SSH signerade, kortlivade SSH-certifikat i stället för statiska nycklar.
- PKI/TLS certifikat som utfärdas på begäran och har kort giltighet.
- RabbitMQ, MongoDB, Consul kortlivade autentiseringsuppgifter för tjänster.
Mönstret är detsamma överallt: begär, använd kortvarigt och låt löpa ut automatiskt. Statiska molnnycklar med lång livslängd är en vanlig källa till intrång; dynamiska IAM-autentiseringsuppgifter eliminerar dem.
# Generate temporary AWS credentials scoped to a role
vault read aws/creds/deploy-role
# returns short-lived access_key, secret_key, security_token
# Sign an SSH key for short-lived access (valid minutes, not forever)
vault write ssh/sign/admin public_key=@id_ed25519.pub ttl=15mVarför dynamiska hemligheter minskar skadeomfånget
Föreställ er en läckt autentiseringsuppgift i de två modellerna:
- Statisk lösenordet gäller tills en människa upptäcker det, roterar det och uppdaterar alla konsumenter. Exponeringsfönstret är dagar eller månader.
- Dynamisk autentiseringsuppgiften upphör inom sin TTL (ofta efter minuter eller upp till en timme) och var begränsad till en konsument med minsta möjliga behörighet. Exponeringsfönstret är mycket kort och skadan begränsad.
Dynamiska hemligheter förvandlar rotation från ett besvärligt manuellt projekt till en automatisk, kontinuerlig egenskap hos systemet.
Kompromissen med root-autentiseringsuppgiften
Dynamiska hemligheter är kraftfulla, men kräver att valvet har en mycket privilegierad root-autentiseringsuppgift för varje backend där det kan skapa de användare som autentiseringsuppgifterna gäller. Det koncentrerar risken till valvet.
Skyddsåtgärder:
- Rotera själva root-autentiseringsuppgiften så att inte ens valvet behåller det ursprungliga administratörslösenordet.
- Begränsa root-kontot till exakt de behörigheter som krävs för att skapa och ta bort användare – inget mer.
- Isolera och övervaka valvets värd noggrant, eftersom den nu är ett mål med högt värde.
Vault kan rotera sin egen root-autentiseringsuppgift så att ingen människa känner till den efter konfigureringen.
# After configuring the engine, rotate the root credential
# so even operators no longer know the original password
vault write -force database/rotate-root/appdbHantera utgångna autentiseringsuppgifter i applikationskod
Appar måste skrivas för att förvänta sig att autentiseringsuppgifter ändras. Med statiska hemligheter läser koden ett lösenord en gång vid starten. Med dynamiska hemligheter måste koden:
- Hämta en autentiseringsuppgift och notera dess lease-TTL.
- Förnya leasen eller hämta en ny autentiseringsuppgift innan den löper ut.
- Återansluta på ett kontrollerat sätt när en gammal autentiseringsuppgift återkallas.
Ett vanligt mönster är en sidecar-agent som hanterar leasens livscykel och skriver om en lokal fil med hemligheten, så att appen bara behöver läsa in sin konfiguration igen. Anslutningspooler måste också uppdateras så att de inte håller fast vid en utgången autentiseringsuppgift.
# Vault Agent auto-renews and re-templates on rotation
auto_auth { method "approle" { ... } }
template {
contents = "{{ with secret \"database/creds/billing-readonly\" }}{{ .Data.username }}:{{ .Data.password }}{{ end }}"
destination = "/run/secrets/db"
command = "systemctl reload billing-app"
}När statiska hemligheter inte går att undvika
Alla hemligheter kan inte vara dynamiska. Vissa API:er från tredje part utfärdar en enda långlivad nyckel som inte kan genereras på begäran. För dessa statiska hemligheter ska ni använda kompenserande skyddsåtgärder:
- Lagra dem i valvet, aldrig i koden.
- Begränsa dem enligt principen om minsta möjliga behörighet.
- Rotera dem enligt ett schema (tas upp i nästa lektion).
- Övervaka hur de används och leta efter avvikelser.
Tumregeln är: föredra dynamiska hemligheter; när statiska är nödvändiga ska de roteras och granskas utan undantag.
Dynamiska hemligheter i CI/CD
CI/CD-pipelines är ett utmärkt användningsfall. En pipeline innehåller traditionellt långlivade distributionsnycklar – ett attraktivt mål. Med dynamiska hemligheter gör pipelinen följande:
- Autentiserar sig mot valvet med sin OIDC-identitet (t.ex. GitHub Actions OIDC-token).
- Begär kortlivade molnautentiseringsuppgifter som endast gäller under jobbets körning.
- Låter dem löpa ut automatiskt när jobbet är klart.
Det finns aldrig någon långlivad distributionsnyckel. En komprometterad pipelinelog läcker en autentiseringsuppgift som redan har upphört att gälla när någon hinner läsa den.
# GitHub Actions job exchanges its OIDC token for a short-lived AWS role
# No static AWS keys stored as repo secrets
permissions:
id-token: write
steps:
- uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: arn:aws:iam::123:role/deploy
aws-region: eu-central-1Snabbtest
Testa er förståelse av leases och dynamiska hemligheter.
Sammanfattning: dynamiska hemligheter och leases
Ni har lärt er hur kortlivade, automatiskt utgående autentiseringsuppgifter förändrar hemlighetshanteringen.
- Dynamiska hemligheter genereras på begäran, är unika för varje konsument och upphör automatiskt att gälla, till skillnad från återanvända statiska hemligheter.
- En lease anger en TTL och en max TTL; när den löper ut återkallar valvet autentiseringsuppgiften och utför faktisk rensning.
- Leases kan förnyas av långlivade appar eller återkallas omedelbart som en kill switch vid en incident.
- Dynamiska hemligheter fungerar för databaser, cloud IAM, SSH, PKI med mera, vilket minskar skadeomfånget och automatiserar rotation.
- Kompromissen är en privilegierad root-autentiseringsuppgift i valvet; rotera den och begränsa dess behörigheter strikt.
- Appar och CI/CD måste kunna hantera att autentiseringsuppgifter löper ut; föredra dynamiska hemligheter och rotera statiska när de inte går att undvika.
Därefter går vi igenom hur nycklar roteras och hur läckor upptäcks när de ändå slinker igenom.
Lär dig Cyber Security Academy med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 76
- Lektioner
- 303
Vanliga frågor
Är lektionen ”Dynamiska hemligheter och leasing” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Cyber Security Academy, inklusive ”Dynamiska hemligheter och leasing”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Cyber Security Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Dynamiska hemligheter och leasing”?
Kortlivade autentiseringsuppgifter som upphör automatiskt. Ni övar på Cyber Security Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Cyber Security Academy?
Du behöver inga förkunskaper. Utbildningen i Cyber Security Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.
Hur lång tid tar lektionen ”Dynamiska hemligheter och leasing”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Cyber Security Academy-lektionen?
Ja. Varje Cyber Security Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Problemet med hemligheter på drift
- Valv och hemlighetslager
- Dynamiska hemligheter och leasing
- Nyckelrotation och detektering