Secrets Management auf STACKIT
Die sichere Verwaltung von Secrets wie Passwörtern, API-Keys und Zertifikaten ist essentiell für die Anwendungssicherheit.
Was sind Secrets?
Secrets sind sensible Informationen, die nicht im Code gespeichert werden sollten:
- Datenbank-Passwörter
- API-Keys und Tokens
- SSL/TLS-Zertifikate
- Verschlüsselungsschlüssel
:::danger Speichern Sie niemals Secrets in Git-Repositories oder im Klartext! :::
STACKIT Secrets Manager
STACKIT bietet einen zentralen Service für Secrets Management:
Secrets erstellen
# Secret erstellen
stackit secrets create \
--name db-password \
--value "super-secure-password" \
--description "Production database password"
# Secret mit Datei
stackit secrets create \
--name api-key \
--file ./api-key.txt
Secrets in Anwendungen verwenden
// Node.js Beispiel
const { SecretsClient } = require('@stackit/secrets');
const client = new SecretsClient();
const dbPassword = await client.getSecret('db-password');
// Datenbankverbindung mit Secret
const db = await connectDatabase({
host: 'db.stackit.cloud',
user: 'admin',
password: dbPassword
});
Verschlüsselung
Alle Secrets werden automatisch verschlüsselt:
- At Rest: AES-256 Verschlüsselung
- In Transit: TLS 1.3
- Key Rotation: Automatische Schlüsselrotation
graph LR
A[Application] -->|TLS| B[Secrets Manager]
B -->|Encrypted| C[Storage]
D[Master Key] -->|Encrypts| C
Zugriffskontrolle
Implementieren Sie das Prinzip der minimalen Rechte:
# IAM Policy für Secrets
policies:
- name: read-db-secrets
effect: Allow
actions:
- secrets:GetSecret
resources:
- arn:stackit:secrets:*:db-*
principals:
- service:app-backend
:::tip Verwenden Sie Service Accounts für Anwendungen statt persönlicher Credentials. :::
Secrets Rotation
Regelmäßige Rotation erhöht die Sicherheit:
# Automatische Rotation konfigurieren
stackit secrets rotation enable \
--name db-password \
--interval 90d \
--lambda-function rotate-db-password
Rotation Best Practices
- Planen Sie Rotationen: Automatisieren Sie den Prozess
- Testen Sie Rotationen: In Staging-Umgebung
- Überwachen Sie Rotationen: Alerts bei Fehlern
- Dokumentieren Sie: Rotation-Prozeduren
Audit Logging
Überwachen Sie Zugriffe auf Secrets:
{
"timestamp": "2024-02-05T10:30:00Z",
"action": "GetSecret",
"secret": "db-password",
"principal": "app-backend",
"result": "success",
"sourceIP": "10.0.1.42"
}
Integration mit CI/CD
# GitHub Actions Beispiel
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Get Secrets
run: |
export DB_PASSWORD=$(stackit secrets get db-password)
export API_KEY=$(stackit secrets get api-key)
- name: Deploy Application
run: ./deploy.sh
:::warning Verwenden Sie kurzlebige Tokens für CI/CD-Pipelines, keine langlebigen Credentials. :::
Notfall-Zugriff
Implementieren Sie Break-Glass-Verfahren für Notfälle:
- Separate Notfall-Accounts mit MFA
- Audit-Trail für Notfall-Zugriffe
- Automatische Benachrichtigungen
Compliance und Standards
- DSGVO: Verschlüsselung personenbezogener Daten
- ISO 27001: Sichere Schlüsselverwaltung
- PCI DSS: Schutz von Zahlungsdaten
Checkliste
- Keine Secrets im Code oder Git
- Verschlüsselung aktiviert
- Zugriffskontrolle konfiguriert
- Rotation implementiert
- Audit Logging aktiviert
- Notfall-Prozeduren dokumentiert