AI-agenter · Lektion

Rotation och säkerhet för hemligheter

Hantering av hemligheters utgång, rotationsstrategier och vault-lösningar (AWS Secrets Manager).

Lektion 3 av 413 steg

Rotation och säkerhet för hemligheter är en gratis lektion i AI-agenter på CoddyKit. Detta är lektion 3 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för AI-agenter, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i AI-agenter innehåller totalt 4 lektioner.

Varför hemligheter behöver roteras

Även om en hemlighet aldrig uttryckligen exponeras begränsar regelbunden rotation skadan från ett oupptäckt intrång. En nyckel som stals i tysthet för sex månader sedan blir oanvändbar efter rotation.

Många säkerhetsstandarder (SOC 2, PCI-DSS) kräver regelbunden rotation av hemligheter. Att bygga agentkod som är enkel att rotera är ett professionellt arbetssätt.

Giltighetspolicyer för API-nycklar

Olika leverantörer har olika giltighetspolicyer. Vissa låter dig ange giltighetstider för nycklar, medan andra utfärdar nycklar som aldrig upphör att gälla om de inte roteras manuellt. Granska dina nycklar regelbundet och lägg in kalenderpåminnelser för manuell 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 agenter

AWS Secrets Manager lagrar hemligheter på ett säkert sätt och stöder automatisk rotation. Agenten hämtar det aktuella hemlighetsvärdet vid körning via SDK:t — inga hårdkodade nycklar och inga .env-filer i 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 hemligheter

HashiCorp Vault är ett system för hantering av hemligheter med öppen källkod som är populärt i företagsmiljöer. Det stöder dynamiska hemligheter, finkornig åtkomstkontroll och granskningsloggning av varje åtkomst till en hemlighet.

# 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 policies

Hemmelighetsskanning: truffleHog

truffleHog söker igenom Git-arkiv efter hemligheter som kan ha checkats in av misstag. Det kontrollerar hela incheckningshistoriken, inte bara den aktuella koden. Kör det innan du gör ett arkiv offentligt.

# 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: skydd före incheckning

git-secrets är ett Git-hook-verktyg från AWS som blockerar incheckningar som innehåller hemligheter som matchar konfigurerade mönster. Det körs före varje incheckning och avvisar den om ett hemlighetsmönster hittas.

# 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')

Åtgärder vid exponerad nyckel

En steg-för-steg-plan för att hantera en komprometterad API-nyckel. Snabba åtgärder är avgörande — automatiserade skannrar samlar in exponerade nycklar inom några minuter efter en commit.

# 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.')

Upptäcka obehörig användning

Kontrollera om nyckeln användes utan auktorisering efter att den har roterats. De flesta leverantörer erbjuder användningsloggar och kostnadsvarningar som kan visa om en stulen nyckel användes för att göra API-anrop.

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()

Ange utgiftsgränser för API-nycklar

Ange fasta utgiftsgränser för API-nycklarna för att begränsa skadan från en komprometterad nyckel. Även om någon använder nyckeln kan personen inte skapa en obegränsad kostnad.

# 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')

Principen om minsta privilegium för nycklar

Ge varje API-nyckel endast de behörigheter den behöver. En nyckel som bara läser data ska inte ha behörighet att skriva eller ta bort data. De flesta leverantörer har stöd för avgränsade nycklar eller nycklar med begränsade behörigheter.

# 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')

Bygga en kontroll av nycklars status

Validera att API-nycklarna fortfarande är giltiga när agenten startar. Upptäck utgångna eller återkallade nycklar omedelbart i stället för att misslyckas mitt i en uppgift efter att agenten redan har förbrukat resurser.

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')

Kunskapskontroll: rotation och säkerhet för hemligheter

Testa förståelsen av rotation av hemligheter och säkerhetsrutiner.

Sammanfattning: rotation och säkerhet för hemligheter

Nu har ni en komplett strategi för säker hantering av hemligheter i produktionsagenter:

  • Rotera API-nycklar var 60:e–90:e dag som en stående rutin
  • Använd AWS Secrets Manager eller HashiCorp Vault i produktionsmiljöer
  • Kör truffleHog innan ett kodarkiv görs offentligt
  • Installera git-secrets som en pre-commit-hook för att förhindra oavsiktliga commits
  • Om en nyckel exponeras: återkalla den omedelbart, rotera den därefter och granska sedan användningen
  • Ange utgiftsgränser för alla API-nycklar för att begränsa skadan vid en kompromettering
  • Tillämpa minsta privilegium — ge varje nyckel endast de behörigheter den behöver
Gratis att börja

Lär dig AI-agenter med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
60
Lektioner
239

Vanliga frågor

Är lektionen ”Rotation och säkerhet för hemligheter” gratis?

Ja – hela texten till ”Rotation och säkerhet för hemligheter” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i AI-agenter, kan Ni uppgradera till CoddyKit PRO. Kursen i AI-agenter innehåller totalt 4 lektioner.

Vad lär jag mig i ”Rotation och säkerhet för hemligheter”?

Hantering av hemligheters utgång, rotationsstrategier och vault-lösningar (AWS Secrets Manager). Ni övar på AI-agenter med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig AI-agenter?

Du behöver inga förkunskaper. Utbildningen i AI-agenter på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”Rotation och säkerhet för hemligheter”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här AI-agenter-lektionen?

Ja. Varje AI-agenter-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Miljövariabler för agenter
  2. .env-filer och python-dotenv
  3. Rotation och säkerhet för hemligheter
  4. Konfigurationsprofiler för utveckling och produktion
← Tillbaka till AI-agenter