Sichere Verwaltung von Zugangsdaten
Implementieren Sie Best Practices zur sicheren Verwaltung von Zugangsdaten für Cloud-Anbieter und vertraulichen Daten in Ihren automatisierten Terraform-Pipelines.
Sichere Verwaltung von Zugangsdaten ist eine kostenlose DevOps Bootcamp-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des DevOps Bootcamp-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.
Anmeldeinformationen in CI/CD absichern
Wenn Sie Infrastruktur mit Terraform in einer CI/CD-Pipeline automatisieren, benötigt Ihre Pipeline Zugriff auf Konten bei Cloud-Anbietern. Die sichere Verwaltung dieser Anmeldeinformationen ist entscheidend, um unbefugten Zugriff und Datenschutzverletzungen zu verhindern.
Stellen Sie sich vor, Sie geben einem Roboter die Schlüssel zu Ihrem Haus. Sie möchten sicherstellen, dass nur der richtige Roboter die richtigen Schlüssel erhält und diese geschützt sind.
Secrets nicht fest im Code hinterlegen
Ein häufiger Fehler besteht darin, vertrauliche Informationen wie API-Schlüssel oder Passwörter direkt in Terraform-Konfigurationsdateien oder CI/CD-Skripte einzubetten. Dies wird als Hardcoding bezeichnet.
- Sicherheitsrisiko: Secrets werden Teil der Historie Ihres Quellcodes, beispielsweise in Git.
- Offenlegung: Jede Person mit Zugriff auf das Repository kann sie sehen.
- Wartung: Zum Ändern eines Secrets sind eine Codeänderung und eine erneute Bereitstellung erforderlich.
Umgebungsvariablen (Grundlagen)
Für die lokale Entwicklung oder einfache Szenarien sind Umgebungsvariablen eine unkomplizierte Möglichkeit, Anmeldeinformationen bereitzustellen, ohne sie fest im Code zu hinterlegen. Sie setzen diese in Ihrer Shell, bevor Sie Terraform ausführen.
Das ist zwar besser als Hardcoding, aber für gemeinsam genutzte CI/CD-Pipelines nicht ideal, da Secrets bei unvorsichtiger Handhabung weiterhin in Protokollen oder Prozesslisten sichtbar sein können.
export AWS_ACCESS_KEY_ID="AKIA..."
export AWS_SECRET_ACCESS_KEY="abcdef..."
terraform planSecret Manager von CI/CD-Plattformen
Moderne CI/CD-Plattformen bieten integrierte Funktionen zur Secret-Verwaltung. Damit können Sie vertrauliche Daten sicher innerhalb der Plattform und getrennt von Ihrem Code-Repository speichern.
Beim Ausführen Ihrer Pipeline werden diese Secrets als Umgebungsvariablen oder Dateien in die Build-Umgebung eingebunden, jedoch niemals in Protokollen offengelegt oder in Ihrem Repository gespeichert.
Beispiel für GitHub-Actions-Secrets
GitHub Actions bietet einen eigenen Bereich für Repository-Secrets. Sie können diese über Settings > Secrets and variables > Actions > New repository secret hinzufügen.
In Ihrer Workflow-Datei können Sie anschließend über den Kontext secrets auf diese Secrets verweisen. In Protokollen werden sie automatisch maskiert.
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 initCloud-IAM-Rollen für Pipelines
Der sicherste Ansatz für die Authentifizierung in CI/CD ist die Verwendung von Identity-and-Access-Management-(IAM-)Rollen oder Servicekonten, die Ihr Cloud-Anbieter bereitstellt.
Statt langlebiger Zugriffsschlüssel übernimmt Ihre CI/CD-Pipeline eine temporäre Rolle mit bestimmten Berechtigungen und nutzt dabei häufig OpenID Connect (OIDC) für Vertrauensbeziehungen. Dadurch entfällt die Notwendigkeit, statische Anmeldeinformationen zu speichern.
Beispiel für AWS-IAM-Rolle und OIDC
Für AWS können Sie eine IAM-Rolle konfigurieren, die Ihr GitHub-Actions-Workflow direkt über OIDC übernehmen kann. Dadurch werden AWS-Zugriffsschlüssel nirgendwo gespeichert!
Sie definieren eine Vertrauensrichtlinie für die Rolle, die es dem OIDC-Anbieter von GitHub erlaubt, sie anhand bestimmter Bedingungen zu übernehmen, beispielsweise Repository und Branch.
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:*"
}
}
}
]
})
}Sensible Terraform-Ausgaben
Terraform-Ausgaben können manchmal vertrauliche Daten wie Datenbankpasswörter oder private Schlüssel enthalten. Sie sollten diese Ausgaben als sensitive markieren.
Wenn eine Ausgabe als sensibel markiert ist, blendet Terraform ihren Wert in der CLI-Ausgabe und in der State-Datei bei der Anzeige aus. Dadurch wird eine versehentliche Offenlegung verhindert.
output "database_password" {
value = aws_db_instance.main.password
description = "The database root password."
sensitive = true
}Prüfung zu sicheren Anmeldeinformationen
Welche Methode gilt allgemein als die sicherste, damit sich CI/CD-Pipelines bei Cloud-Anbietern authentifizieren können, ohne langlebige statische Anmeldeinformationen speichern zu müssen?
Rückblick: Sichere Anmeldeinformationen
Sie haben wichtige Strategien für die Verwaltung vertraulicher Daten in Ihren Terraform-CI/CD-Pipelines kennengelernt:
- Hardcoding vermeiden: Betten Sie Secrets niemals direkt in Ihren Code ein.
- CI/CD-Secrets nutzen: Verwenden Sie plattformspezifische Secret Manager für statische Anmeldeinformationen.
- IAM-Rollen/OIDC einsetzen: Für maximale Sicherheit verwenden Sie IAM-Rollen des Cloud-Anbieters mit OIDC, um temporäre Berechtigungen zu übernehmen, ohne Schlüssel zu speichern.
- Sensible Ausgaben markieren: Schützen Sie vertrauliche Daten, die durch Terraform-Ausgaben offengelegt werden.
Diese Praktiken sind entscheidend für eine robuste und sichere Infrastruktur.
Häufig gestellte Fragen
Ist die Lektion „Sichere Verwaltung von Zugangsdaten“ kostenlos?
Ja — der vollständige Text von „Sichere Verwaltung von Zugangsdaten“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des DevOps Bootcamp-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Sichere Verwaltung von Zugangsdaten“?
Implementieren Sie Best Practices zur sicheren Verwaltung von Zugangsdaten für Cloud-Anbieter und vertraulichen Daten in Ihren automatisierten Terraform-Pipelines. Du übst DevOps Bootcamp mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um DevOps Bootcamp zu starten?
Keine Vorkenntnisse erforderlich. DevOps Bootcamp auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Sichere Verwaltung von Zugangsdaten“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser DevOps Bootcamp-Lektion Code schreiben und ausführen?
Ja. Jede DevOps Bootcamp-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Terraform in CI/CD-Pipelines
- `plan` und `apply` automatisieren
- Sichere Verwaltung von Zugangsdaten
- GitOps und Pull-Request-Automatisierung