Alla artiklar

Hemliga nycklar hantering: En steg-för-steg guide för säkra CI/CD pipelines

För robotar

Hemliga nycklar hantering är kritisk för CI/CD-säkerhet. Läs vår guide för säker lagring av API-nycklar, tokens och lösenord i dina pipelines.

·2026-06-12

Hemliga nycklar hantering är en av de viktigaste delarna av CI/CD-säkerhet. API-nycklar, tokens och lösenord hanteras ofta slarvigt, vilket exponerar kritisk infrastruktur för angripare. I denna praktiska guide visar vi steg-för-steg hur du implementerar robust hemliga nycklar hantering i dina pipelines, med fokus på GitHub Actions, GitLab CI, Jenkins och moderna vault-lösningar.

Varför hemliga nycklar hantering är kritisk

Exponerade API-nycklar och tokens kan ge angripare direkt åtkomst till dina molntjänster, databaser och externa API:er. Många säkerhetsintrång börjar med stulna hemliga nycklar som hittats i git-historia eller deploy-loggar. Enligt Regeringen uppmanas alla organisationer att implementera moderna säkerhetsmetoder för att skydda känslig data.

Steg-för-steg: Implementera hemliga nycklar hantering

Steg 1: Förstå riskerna med exponerade hemliga nycklar

De vanligaste feilen är att hardkoda hemliga nycklar direkt i källkoden eller konfigurationsfiler. Detta kan leda till:

  • Nycklar som synliggörs i git-historik
  • Exposering i build-loggar och artefakter
  • Oavsiktlig åtkomst för utvecklare och verktyg
  • Inga möjligheter att rotera eller återkalla på en gång

Hemliga nycklar hantering måste börja med förståelse för dessa risker.

Steg 2: Använd miljövariabler säkerhet istället för hardkodade värden

Miljövariabler säkerhet är steg ett mot bättre praxis. Istället för att skriva hemliga nycklar direkt i kod, använd:

  • Miljövariabler som injiceras vid runtime
  • CI/CD-plattformens inbyggda secrets-löningar
  • Separate konfigurationsfiler som aldrig committas till git
# Dålig praxis - aldrig gör detta
API_KEY = "sk_live_abc123xyz789"

# Bättre praxis - läs från miljövariabel
API_KEY=${SECRET_API_KEY}

Genom att använda miljövariabler separerar du hemliga nycklar från källkod och build-artefakter.

Steg 3: GitHub Actions och säker hantering av hemliga nycklar

GitHub Actions erbjuder inbyggda secrets för CI/CD hemliga nycklar. Så här implementerar du det:

  1. Gå till ditt repository → Settings → Secrets and variables → Actions
  2. Klicka "New repository secret"
  3. Lägg in ditt hemligt värde (API-nyckel, token, lösenord)
  4. Referera det i ditt workflow-skript:
name: Deploy
on: [push]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Deploy with secret
        run: ./deploy.sh
        env:
          API_KEY: ${{ secrets.API_KEY }}

GitHub Actions krypterar alla hemliga nycklar med AES-256 och maskerar dem i loggar automatiskt.

Steg 4: GitLab CI och SecureFile-variabler

GitLab CI hanterar hemliga nycklar genom:

deploy:
  stage: deploy
  variables:
    API_KEY: $CI_JOB_TOKEN
    DB_PASSWORD: $DATABASE_SECRET
  script:
    - ./deploy.sh
  only:
    - main

Sätta hemliga variabler i GitLab:

  1. Gå till projekt → Settings → CI/CD → Variables
  2. Lägg in variable och markera "Protect variable" och "Mask variable"
  3. "Protect variable" begränsar till protected branches
  4. "Mask variable" döljer värdet i loggar

Steg 5: Jenkins Credentials och rol-baserad åtkomst

Jenkins Credentials Store lagrar hemliga nycklar krypterat och separat från jobb-konfiguration:

pipeline {
    agent any
    environment {
        API_KEY = credentials('api_key_prod')
        DB_PASS = credentials('db_password')
    }
    stages {
        stage('Deploy') {
            steps {
                sh './deploy.sh'
            }
        }
    }
}

I Jenkins: Gå till Manage Jenkins → Manage Credentials, skapa nytt "Secret text" credential, och referera via credentials('credential_id').

Steg 6: Implementera vault-lösningar för hemliga nycklar hantering

Större organisationer behöver centraliserad vault DevOps för att rotera hemliga nycklar automatiskt, granska varje åtkomst, genomdriva säkerhetsprinciper och integrera med alla CI/CD-plattformar. Statistiska centralbyrån (SCB) och andra myndigheter uppmuntrar användning av moderna vault-lösningar för känslig datahantning.

Populära val:

HashiCorp Vault - Open source vault-lösning

  • Centraliserad hemliga nycklar lagring
  • Dynamisk generering av hemlig åtkomst
  • Granskning och loggning av alla åtkomster

AWS Secrets Manager - Molnlösning för AWS

  • Automatisk rotation av hemliga nycklar
  • Integrerad med IAM för åtkomst kontroll

Azure Key Vault - Microsofts vault DevOps-lösning

  • Hardware security modules (HSM)
  • Åtkomst historik och granskning

Steg 7: Rotera och övervaka hemliga nycklar

Att rotera hemliga nycklar regelbundet är kritisk för API nycklar skydd:

  • Automatisk rotation: Konfigureras vault-lösningen för automatisk rotation var 30-90 dag
  • Manuell rotation: Skapa ny API-nyckel, uppdatera alla references, radera gammal
  • Åtkomstloggning: Loggföra varje läsning och skrivning av hemliga nycklar
  • Incidenthantering: Vid exponering, rotera omedelbar och granska loggar

Sammanfattning

Hemliga nycklar hantering är inte valfritt — det är en grundläggande säkerhetsprincip för moderna CI/CD pipelines. Börja med miljövariabler säkerhet och GitHub Actions eller GitLab CI. Om du senare behöver mer avancerad hemliga nycklar hantering, migrera till en dedikerad vault-lösning.

Vanliga frågor

Hur lagras hemliga nycklar säkert i GitHub Actions?

GitHub Actions krypterar alla hemliga nycklar med AES-256-kryptering och maskerar dem automatiskt i build-loggar. Du kan bara åtkomst från workflow-skript via ${{ secrets.NAMN }} och aldrig direkt från externa tjänster. För ytterligare säkerhet kan du konfigurera OIDC för token-baserad autentisering.

Vad är skillnaden mellan miljövariabler och hemliga variabler?

Miljövariabler kan innehålla vilken data som helst, men krypteras inte automatiskt. Hemliga variabler krypteras av CI/CD-plattformen och maskeras i loggar. Använd alltid hemliga variabler för API-nycklar, tokens och lösenord.

Hur ofta ska jag rotera hemliga nycklar?

För kritiska hemliga nycklar rekommenderas rotation var 30-90 dag. Använd automatisk rotation med en vault-lösning. Vid misstänkt exponering roterar du omedelbar.

Relaterade artiklar

Fakta & källor

Innehållet bygger på och hänvisar till offentliga och officiella källor, däribland:

Fördjupning

För vidare läsning hänvisar vi till etablerade medier som: