Intensiv DevOps-uddannelse · Lektion

Sikker administration af legitimationsoplysninger

Implementér bedste praksis for sikker administration af cloud-udbyderes legitimationsoplysninger og følsomme data i dine automatiserede Terraform-pipelines.

Lektion 3 af 410 trin

Sikker administration af legitimationsoplysninger er en gratis Intensiv DevOps-uddannelse-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Intensiv DevOps-uddannelse, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.

Sikre legitimationsoplysninger i CI/CD

Når du automatiserer infrastruktur med Terraform i en CI/CD-arbejdsgang, har din arbejdsgang brug for adgang til konti hos cloududbydere. Sikker håndtering af disse legitimationsoplysninger er afgørende for at forhindre uautoriseret adgang og databrud.

Tænk på det som at give en robot nøglerne til dit hus. Du vil sikre dig, at kun den rigtige robot har de rigtige nøgler, og at nøglerne er beskyttet.

Undgå hardcodede hemmeligheder

En almindelig fejl er at indlejre følsomme oplysninger, f.eks. API-nøgler eller adgangskoder, direkte i dine Terraform-konfigurationsfiler eller CI/CD-scripts. Det kaldes hardcoding.

  • Sikkerhedsrisiko: Hemmeligheder bliver en del af din kildekodehistorik (f.eks. Git).
  • Eksponering: Alle med adgang til opbevaringsstedet kan se dem.
  • Vedligeholdelse: Ændring af en hemmelighed kræver ændring af koden og en ny udrulning.

Miljøvariabler (grundlæggende)

Til lokal udvikling eller grundlæggende scenarier er miljøvariabler en enkel måde at angive legitimationsoplysninger på uden hardcoding. Du angiver dem i din shell, før du kører Terraform.

Selvom det er bedre end hardcoding, er dette ikke ideelt til delte CI/CD-arbejdsgange, da hemmeligheder stadig kan være synlige i logge eller proceslister, hvis de ikke håndteres omhyggeligt.

export AWS_ACCESS_KEY_ID="AKIA..."
export AWS_SECRET_ACCESS_KEY="abcdef..."
terraform plan

Hemmelighedshåndtering i CI/CD-platforme

Moderne CI/CD-platforme tilbyder indbyggede funktioner til håndtering af hemmeligheder. De gør det muligt at gemme følsomme data sikkert på selve platformen, adskilt fra dit kodearkiv.

Når din arbejdsgang kører, indsættes disse hemmeligheder i byggemiljøet som miljøvariabler eller filer, men de eksponeres aldrig i logge eller gemmes i dit arkiv.

Eksempel på GitHub Actions-hemmeligheder

GitHub Actions har et dedikeret afsnit til arkivhemmeligheder. Du kan tilføje dem via Settings > Secrets and variables > Actions > New repository secret.

I din arbejdsgangsfil kan du derefter referere til disse hemmeligheder ved hjælp af konteksten secrets. De maskeres automatisk i logge.

name: Deploy Infra
on: [push]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - name: Configure AWS Credentials
      uses: aws-actions/configure-aws-credentials@v1
      with:
        aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
        aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
        aws-region: us-east-1
    - name: Terraform Init
      run: terraform init

IAM-roller til cloudarbejdsgange

Den sikreste tilgang til godkendelse i CI/CD er at bruge roller til Identity and Access Management (IAM) eller servicekonti fra din cloududbyder.

I stedet for langlivede adgangsnøgler antager din CI/CD-arbejdsgang en midlertidig rolle med bestemte tilladelser, ofte ved hjælp af OpenID Connect (OIDC) til tillidsrelationer. Det fjerner helt behovet for at gemme statiske legitimationsoplysninger.

Eksempel på AWS IAM-rolle + OIDC

Med AWS kan du konfigurere en IAM-rolle, som din GitHub Actions-arbejdsgang kan antage direkte ved hjælp af OIDC. Det betyder, at ingen AWS-adgangsnøgler gemmes noget sted!

Du definerer en tillidspolitik for rollen, som tillader GitHubs OIDC-udbyder at antage den baseret på bestemte betingelser (f.eks. arkiv og gren).

resource "aws_iam_role" "github_actions_role" {
  name = "github-actions-oidc-role"
  assume_role_policy = jsonencode({
    Version = "2012-10-17"
    Statement = [
      {
        Effect = "Allow"
        Principal = {
          Federated = "arn:aws:iam::123456789012:oidc-provider/token.actions.githubusercontent.com"
        }
        Action = "sts:AssumeRoleWithWebIdentity"
        Condition = {
          StringEquals = {
            "token.actions.githubusercontent.com:aud" : "sts.amazonaws.com"
          }
          StringLike = {
            "token.actions.githubusercontent.com:sub" : "repo:your-org/your-repo:*"
          }
        }
      }
    ]
  })
}

Følsomme Terraform-outputværdier

Nogle gange kan Terraform-output indeholde følsomme data, f.eks. databaseadgangskoder eller private nøgler. Du bør markere disse outputværdier som sensitive.

Når en outputværdi er markeret som følsom, skjuler Terraform dens værdi i CLI-outputtet og tilstandsfilen, når den vises. Det hjælper med at forhindre utilsigtet eksponering.

output "database_password" {
  value       = aws_db_instance.main.password
  description = "The database root password."
  sensitive   = true
}

Kontrol af sikre legitimationsoplysninger

Hvilken metode anses generelt for at være den sikreste måde for CI/CD-arbejdsgange at godkende sig hos cloududbydere på, uden at der er behov for at gemme langlivede statiske legitimationsoplysninger?

Opsummering: Sikre legitimationsoplysninger

Du har lært vigtige strategier til håndtering af følsomme data i dine Terraform CI/CD-arbejdsgange:

  • Undgå hardcoding: Indlejr aldrig hemmeligheder direkte i din kode.
  • Udnyt CI/CD-hemmeligheder: Brug platformsspecifikke systemer til håndtering af hemmeligheder for statiske legitimationsoplysninger.
  • Brug IAM-roller/OIDC: For den højeste sikkerhed skal du bruge cloududbyderens IAM-roller med OIDC til at antage midlertidige tilladelser uden at gemme nøgler.
  • Markér følsomme outputværdier: Beskyt følsomme data, som eksponeres af Terraform-output.

Disse praksisser er afgørende for at opretholde en robust og sikker infrastruktur.

Gratis at komme i gang

Lær Intensiv DevOps-uddannelse 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
142
Lektioner
568

Ofte stillede spørgsmål

Er lektionen “Sikker administration af legitimationsoplysninger” gratis?

Ja — alle 3 lektioner i læringssporet Intensiv DevOps-uddannelse, inklusive “Sikker administration af legitimationsoplysninger”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Sikker administration af legitimationsoplysninger”?

Implementér bedste praksis for sikker administration af cloud-udbyderes legitimationsoplysninger og følsomme data i dine automatiserede Terraform-pipelines. Du øver dig i Intensiv DevOps-uddannelse 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å Intensiv DevOps-uddannelse?

Der kræves ingen tidligere erfaring. Intensiv DevOps-uddannelse 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 3 af 4.

Hvor lang tid tager lektionen “Sikker administration af legitimationsoplysninger”?

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 Intensiv DevOps-uddannelse-lektion?

Ja. Alle Intensiv DevOps-uddannelse-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. Terraform i CI/CD-pipelines
  2. Automatisering af `plan` og `apply`
  3. Sikker administration af legitimationsoplysninger
  4. GitOps og automatisering af pull requests
← Tilbage til Intensiv DevOps-uddannelse