Hemlighetshantering med GitHub
Fördjupa er i säker lagring och åtkomst till känsliga autentiseringsuppgifter med GitHub Secrets och OpenID Connect (OIDC).
Hemlighetshantering med GitHub är en gratis lektion i DevOps-bootcamp på CoddyKit. Detta är lektion 2 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 DevOps-bootcamp, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.
Varför säker hantering av hemligheter?
I alla programvaruprojekt behöver du ofta använda känslig information som API-nycklar, databasautentiseringsuppgifter eller åtkomsttoken. Att lagra dessa direkt i koden eller i ditt repository innebär en allvarlig säkerhetsrisk.
Hantering av hemligheter är metoden att lagra och hantera dessa känsliga data på ett säkert sätt. Den säkerställer att endast auktoriserade system och användare kan komma åt dem och förhindrar obehörig exponering.
Vad är GitHub Secrets?
GitHub erbjuder ett säkert sätt att lagra känslig information som kallas GitHub Secrets. De är krypterade miljövariabler som du kan använda i dina GitHub Actions-arbetsflöden.
- De skrivs inte till loggarna som standard.
- De visas inte i användargränssnittet efter att de har skapats.
- De är endast tillgängliga för utvalda arbetsflöden.
Detta skyddar dina autentiseringsuppgifter från att oavsiktligt exponeras.
Konfigurera repository-hemligheter
Du kan definiera hemligheter på olika nivåer: repository-, miljö- eller organisationsnivå. Vanligast är att börja med repository-hemligheter.
Så här skapar du en:
- Gå till fliken Settings i ditt repository.
- Gå till Secrets and variables > Actions.
- Klicka på New repository secret.
Ge hemligheten ett unikt namn (t.ex. API_KEY) och klistra in dess hemliga värde.
Åtkomst till hemligheter i arbetsflöden
När en hemlighet har definierats kan du använda den i YAML-filerna för arbetsflöden. GitHub Actions infogar automatiskt hemligheter som miljövariabler i dina jobb.
Du kommer åt dem med kontexten ${{ secrets.SECRET_NAME }}. Det här skriptet simulerar ett steg som skulle använda en sådan hemlighet. Föreställ dig att MY_API_KEY har angetts som en miljövariabel av GitHub Actions om du vill köra det.
#!/bin/bash
# This script simulates a workflow step
# where a secret is passed as an environment variable.
echo "Attempting to use an API key..."
# In a real GitHub Action, MY_API_KEY would be
# set by ${{ secrets.MY_API_KEY }} in the workflow YAML.
if [ -z "$MY_API_KEY" ]; then
echo "Error: MY_API_KEY is not set!"
echo "Please define it as a secret in your workflow."
else
echo "Successfully accessed API key (partially shown): ${MY_API_KEY:0:5}..."
fiBredare omfattningar för hemligheter
Utöver repository-hemligheter erbjuder GitHub ytterligare två kraftfulla omfattningar:
- Organisationshemligheter: Tillgängliga för flera repositories inom en organisation. Användbara för hemligheter som delas mellan många projekt (t.ex. en organisationsgemensam distributionstoken).
- Miljöhemligheter: Kopplade till specifika distributionsmiljöer (t.ex.
stagingochproduction). De kan ha skyddsregler, till exempel krav på manuellt godkännande före distribution.
Använd alltid den minsta omfattning som behövs för maximal säkerhet.
Vad är OpenID Connect (OIDC)?
OpenID Connect (OIDC) är ett autentiseringslager som bygger ovanpå OAuth 2.0. Det är en standard som gör det möjligt för klienter att verifiera en slutanvändares identitet baserat på autentiseringen som utförts av en auktoriseringsserver.
Inom CI/CD gör OIDC det möjligt för arbetsflöden att autentisera säkert mot molnleverantörer (som AWS, Azure och GCP) utan att behöva lagra långlivade autentiseringsuppgifter (som API-nycklar) som GitHub Secrets.
Så fungerar OIDC med Actions
GitHub Actions kan fungera som en OIDC-leverantör. När ett arbetsflöde körs genererar GitHub en unik OIDC-token med kort livslängd för det specifika jobbet.
Denna token innehåller verifierbara claims om arbetsflödet, till exempel repository, gren och jobb-ID. Molnleverantörer kan sedan konfigureras att lita på token som utfärdats av GitHub och ge tillfällig åtkomst baserat på dessa claims.
Viktiga fördelar med OIDC
Att använda OIDC med GitHub Actions ger betydande säkerhetsfördelar:
- Inga långlivade autentiseringsuppgifter: Du lagrar inte statiska moln-API-nycklar i GitHub Secrets.
- Minskad risk: Token med kort livslängd minimerar påverkan om en token skulle utsättas för intrång.
- Finkornig åtkomst: Molnroller kan kopplas till specifika villkor för arbetsflödet (t.ex. tillåt endast distribution från grenen
main). - Spårbarhet: Det blir enklare att spåra vem som gjorde vad, eftersom identiteterna är kopplade till körningen av arbetsflödet.
Integrera OIDC med molnet
För att använda OIDC måste du konfigurera din molnleverantör (t.ex. AWS IAM, Azure AD eller GCP IAM) så att den litar på GitHubs OIDC-utfärdare.
Det innebär vanligtvis att du:
- Konfigurerar en identitetsleverantör (IdP) i ditt molnkonto.
- Definierar en roll eller policy som ger specifika behörigheter.
- Lägger till en "Trust Policy" för rollen, så att GitHubs OIDC-token kan anta den, ofta med villkor baserade på tokenens claims (t.ex. att den endast kommer från ett specifikt repository).
Arbetsflödet begär sedan en token och använder den för autentisering.
Snabbtest: säker åtkomst
Du har lärt dig om GitHub Secrets för att lagra känsliga data och OpenID Connect för molnautentisering utan lagrade autentiseringsuppgifter.
Vilka av följande påståenden om hantering av hemligheter i GitHub Actions är sanna?
Sammanfattning: skydda dina autentiseringsuppgifter
Utmärkt! Du har lärt dig hur du hanterar känsliga data på ett säkert sätt i dina CI/CD-pipelines.
- GitHub Secrets tillhandahåller krypterad lagring av API-nycklar och token i ditt repository, din organisation eller specifika miljöer.
- OpenID Connect (OIDC) erbjuder ett ännu säkrare sätt att autentisera mot molnleverantörer genom att använda kortlivade, verifierbara token i stället för statiska autentiseringsuppgifter.
Dessa metoder är avgörande för att bygga robusta och säkra DevOps-pipelines.
Lär dig DevOps-bootcamp 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
- 142
- Lektioner
- 568
Vanliga frågor
Är lektionen ”Hemlighetshantering med GitHub” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen DevOps-bootcamp, inklusive ”Hemlighetshantering med GitHub”, 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 DevOps-bootcamp innehåller totalt 4 lektioner.
Vad lär jag mig i ”Hemlighetshantering med GitHub”?
Fördjupa er i säker lagring och åtkomst till känsliga autentiseringsuppgifter med GitHub Secrets och OpenID Connect (OIDC). Ni övar på DevOps-bootcamp 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 DevOps-bootcamp?
Du behöver inga förkunskaper. Utbildningen i DevOps-bootcamp 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 2 av 4.
Hur lång tid tar lektionen ”Hemlighetshantering med GitHub”?
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 DevOps-bootcamp-lektionen?
Ja. Varje DevOps-bootcamp-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
- Bästa säkerhetspraxis i CI/CD
- Hemlighetshantering med GitHub
- Statisk säkerhetstestning av applikationer (SAST)
- Säkerhet för beroenden och leveranskedjan (SCA)