Rotation und Sicherheit von Secrets
Ablauf von Secrets, Rotationsstrategien und Vault-Lösungen (AWS Secrets Manager).
Rotation und Sicherheit von Secrets ist eine kostenlose AI Agents-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 AI Agents-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der AI Agents-Kurs umfasst insgesamt 4 Lektionen.
Warum Secrets rotiert werden müssen
Selbst wenn ein Secret nie ausdrücklich offengelegt wurde, begrenzt regelmäßiges Rotieren den Schaden eines unentdeckten Sicherheitsvorfalls. Ein Schlüssel, der vor 6 Monaten unbemerkt gestohlen wurde, ist nach der Rotation nutzlos.
Viele Sicherheitsstandards (SOC 2, PCI-DSS) verlangen eine regelmäßige Rotation von Secrets. Agentencode rotationsfreundlich zu gestalten, ist professionelle Praxis.
Ablaufrichtlinien für API-Schlüssel
Verschiedene Anbieter haben unterschiedliche Ablaufrichtlinien. Bei einigen können Sie für Schlüssel ein Ablaufdatum festlegen; andere stellen Schlüssel aus, die niemals ablaufen, sofern sie nicht manuell rotiert werden. Überprüfen Sie Ihre Schlüssel regelmäßig und setzen Sie sich Kalendererinnerungen für die manuelle Rotation.
# Key rotation schedule by provider (as of mid-2025):
# OpenAI: no automatic expiry, rotate manually every 90 days
# Anthropic: no automatic expiry, rotate manually every 90 days
# Google Cloud: API keys can have expiry dates set in the console
# AWS: IAM access keys: rotate every 90 days (AWS Security Hub recommends)
# Tavily: no automatic expiry, rotate when suspected compromise
# Best practices:
# - Set a recurring calendar event: 'Rotate API keys'
# - Document when each key was last rotated
# - Store rotation date in a secrets manager, not a spreadsheet
print('Schedule key rotation every 60-90 days as a standing task')AWS Secrets Manager für Agenten
AWS Secrets Manager speichert Secrets sicher und unterstützt die automatische Rotation. Ihr Agent ruft den aktuellen Secret-Wert zur Laufzeit über das SDK ab — keine fest codierten Schlüssel und keine .env-Dateien in der Produktion.
# pip install boto3
import boto3
import json
def get_secret(secret_name: str, region: str = 'us-east-1') -> dict:
client = boto3.client('secretsmanager', region_name=region)
response = client.get_secret_value(SecretId=secret_name)
return json.loads(response['SecretString'])
# Store secrets as JSON in Secrets Manager:
# Secret name: 'prod/myagent/api-keys'
# Secret value: {'OPENAI_API_KEY': 'sk-...', 'SEARCH_API_KEY': 'tvly-...'}
# Fetch at agent startup:
# secrets = get_secret('prod/myagent/api-keys')
# openai_key = secrets['OPENAI_API_KEY']HashiCorp Vault für Secrets
HashiCorp Vault ist ein Open-Source-System zur Verwaltung von Secrets, das in Unternehmensumgebungen weit verbreitet ist. Es unterstützt dynamische Secrets, eine fein abgestufte Zugriffskontrolle und die Protokollierung jedes Secret-Zugriffs.
# pip install hvac
import hvac
import os
def get_vault_secret(path: str, key: str) -> str:
client = hvac.Client(
url=os.environ['VAULT_ADDR'],
token=os.environ['VAULT_TOKEN'] # from env, not hard-coded
)
if not client.is_authenticated():
raise RuntimeError('Vault authentication failed')
response = client.secrets.kv.read_secret_version(path=path)
return response['data']['data'][key]
# Usage:
# openai_key = get_vault_secret('secret/myagent', 'OPENAI_API_KEY')
# Vault provides:
# - Audit log of every secret read
# - Lease-based secrets that expire automatically
# - Fine-grained ACL policiesSecret-Scanning: truffleHog
truffleHog durchsucht Git-Repositories nach Secrets, die versehentlich eingecheckt worden sein könnten. Es überprüft die gesamte Commit-Historie, nicht nur den aktuellen Code. Führen Sie es aus, bevor Sie ein Repository öffentlich machen.
# pip install trufflehog
# Or: brew install trufflehog (Mac)
# Scan current git repository:
# trufflehog git file://.
# Scan only recent commits:
# trufflehog git file://. --since-commit HEAD~50
# Scan a GitHub repository:
# trufflehog github --repo https://github.com/yourorg/yourrepo
# truffleHog detects:
# - OpenAI API keys (sk-proj-...)
# - Anthropic keys (sk-ant-...)
# - AWS access keys (AKIA...)
# - Private keys (BEGIN RSA PRIVATE KEY)
# - And 700+ other secret patterns
print('Run truffleHog before open-sourcing any private repository')git-secrets: Schutz vor Commits
git-secrets ist ein Git-Hook-Tool von AWS, das Commits mit Secrets blockiert, die konfigurierten Mustern entsprechen. Es wird vor jedem Commit ausgeführt und weist ihn zurück, wenn ein Secret-Muster gefunden wird.
# Install:
# brew install git-secrets (Mac)
# or: git clone https://github.com/awslabs/git-secrets && make install
# Set up in your repo:
# git secrets --install
# git secrets --register-aws (adds AWS key patterns)
# Add custom patterns (e.g., OpenAI keys):
# git secrets --add 'sk-proj-[A-Za-z0-9_-]{48,}'
# Now attempting to commit a secret:
# git add agent.py # file containing API key
# git commit -m 'add agent'
# [ERROR] Untracked secret found in agent.py
# Commit blocked!
print('git-secrets prevents secrets from ever entering git history')Was tun, wenn ein Schlüssel offengelegt wurde
Ein Schritt-für-Schritt-Plan für den Umgang mit einem kompromittierten API-Schlüssel. Schnelligkeit ist entscheidend – automatisierte Scanner greifen offengelegte Schlüssel innerhalb weniger Minuten nach einem Commit ab.
# INCIDENT RESPONSE: Exposed API Key
#
# Step 1 (IMMEDIATE): Revoke the exposed key
# OpenAI: platform.openai.com/api-keys -> Delete key
# Anthropic: console.anthropic.com -> API Keys -> Delete
# AWS: IAM console -> Access Keys -> Deactivate/Delete
#
# Step 2: Generate a new key
# Create a replacement key with the same permissions
#
# Step 3: Update everywhere
# - Local .env
# - Staging environment
# - Production environment (Secrets Manager / Vault)
# - CI/CD secrets (GitHub Actions, GitLab CI)
#
# Step 4: Audit usage
# - Check provider usage logs for unauthorized activity
# - Check billing for unexpected charges
#
# Step 5: Prevent recurrence
# - Add pattern to git-secrets
# - Enable pre-commit hooks
print('Revoke first. Then rotate. Then audit. Then prevent.')Nicht autorisierte Nutzung erkennen
Prüfen Sie nach der Rotation eines Schlüssels, ob er ohne Autorisierung verwendet wurde. Die meisten Anbieter stellen Nutzungsprotokolle und Ausgabenwarnungen bereit, anhand derer sich erkennen lässt, ob ein gestohlener Schlüssel für API-Aufrufe verwendet wurde.
import openai
import datetime
client = openai.OpenAI(api_key='YOUR_NEW_API_KEY')
# Check OpenAI usage for the past day
# (requires usage read permissions on the key)
def check_recent_usage():
# OpenAI billing/usage dashboard: platform.openai.com/usage
# Set up spending alerts: platform.openai.com/account/limits
# - 'Email alert' when monthly spend exceeds $X
print('Suspicious usage indicators to look for:')
print('1. Spikes in token usage outside business hours')
print('2. Requests from unexpected IP addresses')
print('3. Models or endpoints you do not use')
print('4. Unusual cost patterns')
print('\nAlways set spending limits and alerts on new API keys')
check_recent_usage()Ausgabenlimits für API-Schlüssel festlegen
Legen Sie feste Ausgabenlimits für Ihre API-Schlüssel fest, um den Schaden durch einen kompromittierten Schlüssel zu begrenzen. Selbst wenn jemand Ihren Schlüssel verwendet, kann dadurch keine unbegrenzt hohe Rechnung entstehen.
# OpenAI spending limits:
# platform.openai.com/account/limits
# - Set 'Monthly budget' (hard limit — API stops when reached)
# - Set 'Email notification threshold' (soft alert)
# Best practice for agent keys:
# - Development key: $5-10/month hard limit
# - Staging key: $20-50/month hard limit
# - Production key: Based on expected usage + 2x buffer
# - CI/CD test key: $5/month hard limit (mocks should handle most tests)
# Anthropic:
# console.anthropic.com -> Settings -> Spending Limits
# Use separate keys per environment so limits are independent
print('Spending limits cap the blast radius of a compromised key')Prinzip der geringsten Berechtigungen für Schlüssel
Geben Sie jedem API-Schlüssel nur die Berechtigungen, die er benötigt. Ein Schlüssel, der nur Daten liest, sollte keine Berechtigungen zum Schreiben oder Löschen haben. Die meisten Anbieter unterstützen Schlüssel mit eingeschränktem Geltungsbereich oder begrenzten Berechtigungen.
# Principle of Least Privilege applied to agent API keys:
# OpenAI key scopes (if API allows scoped keys):
# - Read-only key: for logging/audit agents
# - Write key: for agents that create content
# - Admin key: NEVER use in agent code — only for management
# Tavily API:
# - Basic plan: limited search results
# - Research plan: more results, images
# Use the plan appropriate to the agent's needs
# AWS IAM for agents:
# Create a dedicated IAM role/user per agent with only the S3/DynamoDB
# paths it needs to read/write. No admin permissions.
# Rule: If the key is compromised, how much damage can be done?
# Minimize the answer through scoped permissions.
print('Least privilege limits blast radius of any single key compromise')Eine Gültigkeitsprüfung für Schlüssel erstellen
Überprüfen Sie beim Start des Agenten, ob Ihre API-Schlüssel noch gültig sind. Erkennen Sie abgelaufene oder widerrufene Schlüssel sofort, statt erst mitten in einer Aufgabe fehlzuschlagen, nachdem der Agent bereits Ressourcen verbraucht hat.
import openai
def check_openai_key_health(api_key: str) -> bool:
try:
client = openai.OpenAI(api_key=api_key)
# Make a minimal API call to verify the key
models = client.models.list()
print(f'OpenAI key valid. {len(list(models))} models available.')
return True
except openai.AuthenticationError:
print('ERROR: OpenAI API key is invalid or expired.')
return False
except openai.PermissionDeniedError:
print('ERROR: API key lacks required permissions.')
return False
# At agent startup:
# import os
# if not check_openai_key_health(os.environ['OPENAI_API_KEY']):
# raise SystemExit('Cannot start: invalid API key')Wissenscheck: Rotation und Sicherheit von Secrets
Testen Sie Ihr Verständnis der Rotation von Secrets und der zugehörigen Sicherheitspraktiken.
Zusammenfassung: Rotation und Sicherheit von Secrets
Sie verfügen nun über eine vollständige Strategie für die Sicherheit von Secrets in Produktionsagenten:
- Rotieren Sie API-Schlüssel routinemäßig alle 60–90 Tage
- Verwenden Sie AWS Secrets Manager oder HashiCorp Vault in Produktionsumgebungen
- Führen Sie
truffleHogaus, bevor Sie ein Repository als Open Source veröffentlichen - Installieren Sie
git-secretsals Pre-Commit-Hook, um versehentliche Commits zu verhindern - Wenn ein Schlüssel offengelegt wurde: sofort widerrufen, anschließend rotieren und danach die Nutzung prüfen
- Legen Sie für alle API-Schlüssel Ausgabenlimits fest, um den Schaden einer Kompromittierung zu begrenzen
- Wenden Sie das Prinzip der geringsten Berechtigungen an – geben Sie jedem Schlüssel nur die benötigten Berechtigungen
Häufig gestellte Fragen
Ist die Lektion „Rotation und Sicherheit von Secrets“ kostenlos?
Ja — der vollständige Text von „Rotation und Sicherheit von Secrets“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des AI Agents-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der AI Agents-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Rotation und Sicherheit von Secrets“?
Ablauf von Secrets, Rotationsstrategien und Vault-Lösungen (AWS Secrets Manager). Du übst AI Agents 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 AI Agents zu starten?
Keine Vorkenntnisse erforderlich. AI Agents 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 „Rotation und Sicherheit von Secrets“?
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 AI Agents-Lektion Code schreiben und ausführen?
Ja. Jede AI Agents-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
- Umgebungsvariablen für Agenten
- .env-Dateien und python-dotenv
- Rotation und Sicherheit von Secrets
- Konfigurationsprofile für Entwicklung und Produktion