0Pricing
AI Agents · Aula

Rotação e segurança de segredos

Expiração de segredos, estratégias de rotação e soluções de cofres (AWS Secrets Manager).

Rotação e segurança de segredos é uma aula grátis de AI Agents no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AI Agents, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AI Agents inclui 4 aulas no total.

Por que os segredos precisam ser alternados

Mesmo que um segredo nunca seja exposto explicitamente, alterná-lo regularmente limita os danos de uma violação não detectada. Uma chave furtada silenciosamente há 6 meses se torna inútil depois da alternância.

Muitos padrões de segurança (SOC 2, PCI-DSS) exigem a alternância periódica de segredos. Criar código de agentes que facilite a alternância é uma prática profissional.

Políticas de expiração de chaves de API

Diferentes provedores têm políticas de expiração diferentes. Alguns permitem definir datas de expiração para as chaves; outros emitem chaves que nunca expiram, a menos que sejam alternadas manualmente. Audite suas chaves regularmente e defina lembretes no calendário para a alternância manual.

# 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 para agentes

O AWS Secrets Manager armazena segredos com segurança e oferece suporte à alternância automática. Seu agente busca o valor atual do segredo em tempo de execução por meio do SDK — sem chaves codificadas diretamente e sem arquivos .env em produção.

# 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 para segredos

O HashiCorp Vault é um sistema de gerenciamento de segredos de código aberto, popular em ambientes empresariais. Ele oferece suporte a segredos dinâmicos, controle de acesso detalhado e registro de auditoria de cada acesso a segredo.

# 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

Verificação de segredos: truffleHog

truffleHog examina repositórios git em busca de segredos que possam ter sido confirmados acidentalmente. Ele verifica todo o histórico de confirmações, não apenas o código atual. Execute-o antes de tornar um repositório público.

# 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: proteção de pré-confirmação

git-secrets é uma ferramenta de gancho do git, fornecida pela AWS, que bloqueia confirmações contendo segredos que correspondam aos padrões configurados. Ela é executada antes de cada confirmação e a rejeita quando um padrão de segredo é encontrado.

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

O que fazer se uma chave for exposta

Um plano de resposta passo a passo para uma chave de API comprometida. A rapidez é essencial — ferramentas de varredura automatizadas capturam chaves expostas poucos minutos após um 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.')

Detectando uso não autorizado

Depois de substituir uma chave, verifique se ela foi usada sem autorização. A maioria dos provedores oferece registros de uso e alertas de gastos que podem revelar se uma chave roubada foi usada para fazer chamadas à API.

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

Definindo limites de gastos para chaves de API

Defina limites rígidos de gastos para suas chaves de API a fim de limitar os danos causados por uma chave comprometida. Mesmo que alguém use sua chave, não poderá gerar uma cobrança ilimitada.

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

Princípio do menor privilégio para chaves

Conceda a cada chave de API apenas as permissões de que ela precisa. Uma chave que apenas lê dados não deve ter permissões para escrever ou excluir. A maioria dos provedores oferece chaves com escopo ou permissões limitados.

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

Criando uma verificação de integridade das chaves

Valide se suas chaves de API ainda são válidas na inicialização do agente. Detecte imediatamente chaves expiradas ou revogadas, em vez de falhar no meio da tarefa, depois que o agente já tiver consumido recursos.

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

Verificação de conhecimento: rotação e segurança de segredos

Teste sua compreensão sobre a rotação de segredos e as práticas de segurança.

Recapitulação: rotação e segurança de segredos

Agora você tem uma estratégia completa de segurança de segredos para agentes em produção:

  • Substitua as chaves de API a cada 60 a 90 dias como prática regular
  • Use o AWS Secrets Manager ou o HashiCorp Vault em ambientes de produção
  • Execute o truffleHog antes de tornar qualquer repositório público
  • Instale o git-secrets como um gancho de pré-envio para evitar o registro acidental de alterações
  • Se uma chave for exposta: revogue-a imediatamente, depois substitua-a e, por fim, audite o uso
  • Defina limites de gastos para todas as chaves de API a fim de limitar os danos de um comprometimento
  • Aplique o princípio do menor privilégio — conceda a cada chave apenas as permissões de que ela precisa

Perguntas Frequentes

A aula “Rotação e segurança de segredos” é grátis?

Sim — o texto completo de “Rotação e segurança de segredos” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AI Agents, atualize para CoddyKit PRO. O curso de AI Agents inclui 4 aulas no total.

O que vou aprender em “Rotação e segurança de segredos”?

Expiração de segredos, estratégias de rotação e soluções de cofres (AWS Secrets Manager). Você pratica AI Agents com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar AI Agents?

Nenhuma experiência prévia é necessária. AI Agents no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Rotação e segurança de segredos”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de AI Agents?

Sim. Cada aula de AI Agents inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Variáveis de ambiente para agentes
  2. Arquivos .env e python-dotenv
  3. Rotação e segurança de segredos
  4. Perfis de configuração para desenvolvimento e produção
← Voltar para AI Agents