Putaran Rahsia dan Keselamatan
Tamat tempoh rahsia, strategi putaran dan penyelesaian peti besi (AWS Secrets Manager).
Putaran Rahsia dan Keselamatan ialah pelajaran Ejen AI percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Ejen AI, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Ejen AI merangkumi sejumlah 4 pelajaran.
Mengapa Rahsia Perlu Diputar
Walaupun rahsia tidak pernah didedahkan secara jelas, melakukan rotasi secara berkala mengehadkan kerosakan akibat pencerobohan yang tidak dikesan. Kunci yang dicuri secara senyap 6 bulan lalu menjadi tidak berguna selepas rotasi.
Banyak piawaian keselamatan (SOC 2, PCI-DSS) memerlukan rotasi rahsia secara berkala. Membina kod ejen yang mudah menyokong rotasi ialah amalan profesional.
Dasar Luput Kunci API
Penyedia yang berbeza mempunyai dasar luput yang berbeza. Sesetengahnya membenarkan Anda menetapkan tarikh luput pada kunci; yang lain mengeluarkan kunci yang tidak pernah luput melainkan diputar secara manual. Audit kunci Anda secara berkala dan tetapkan peringatan kalendar untuk rotasi 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 untuk Ejen
AWS Secrets Manager menyimpan rahsia dengan selamat dan menyokong rotasi automatik. Ejen Anda mendapatkan nilai rahsia semasa pada masa jalan melalui SDK — tiada kunci yang dikodkan secara keras dan tiada fail .env dalam persekitaran pengeluaran.
# 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 untuk Pengurusan Rahsia
HashiCorp Vault ialah sistem pengurusan rahsia sumber terbuka yang popular dalam persekitaran perusahaan. Sistem ini menyokong rahsia dinamik, kawalan akses berbutir halus dan pengelogan audit bagi setiap akses rahsia.
# 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 policiesPengimbasan Rahsia: truffleHog
truffleHog mengimbas repository Git untuk mencari rahsia yang mungkin tersilap dihantar. Alat ini memeriksa keseluruhan sejarah komit, bukan hanya kod semasa. Jalankan alat ini sebelum menjadikan repository awam.
# 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: Perlindungan Pra-Komit
git-secrets ialah alat cangkuk Git daripada AWS yang menyekat komit yang mengandungi rahsia yang sepadan dengan corak yang dikonfigurasikan. Alat ini dijalankan sebelum setiap komit dan menolak komit jika corak rahsia ditemui.
# 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')Perkara yang Perlu Dilakukan Jika Kunci Terdedah
Pelan tindak balas langkah demi langkah untuk kunci API yang telah terjejas. Kepantasan amat penting — pengimbas automatik mengumpulkan kunci yang terdedah dalam masa beberapa minit selepas perubahan dihantar.
# 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.')Mengesan Penggunaan Tanpa Kebenaran
Selepas menggilirkan kunci, semak sama ada kunci itu telah digunakan tanpa kebenaran. Kebanyakan penyedia menawarkan log penggunaan dan amaran perbelanjaan yang boleh mendedahkan sama ada kunci yang dicuri telah digunakan untuk membuat panggilan 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()Menetapkan Had Perbelanjaan pada Kunci API
Tetapkan had perbelanjaan tegas pada kunci API anda untuk mengehadkan kerosakan akibat kunci yang terjejas. Walaupun seseorang menggunakan kunci anda, mereka tidak boleh menghasilkan bil tanpa had.
# 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')Prinsip Keistimewaan Minimum untuk Kunci
Berikan setiap kunci API hanya kebenaran yang diperlukan. Kunci yang hanya membaca data tidak sepatutnya mempunyai kebenaran untuk menulis atau memadam data. Kebanyakan penyedia menyokong kunci dengan skop atau kebenaran terhad.
# 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')Membina Pemeriksaan Kesihatan Kunci
Sahkan bahawa kunci API anda masih sah semasa ejen dimulakan. Kesan kunci yang telah tamat tempoh atau dibatalkan dengan serta-merta, bukannya gagal di tengah-tengah tugas selepas ejen sudah menggunakan sumber.
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')Pemeriksaan Pengetahuan: Penggiliran Rahsia dan Keselamatan
Uji pemahaman anda tentang penggiliran rahsia dan amalan keselamatan.
Imbas Kembali: Penggiliran Rahsia dan Keselamatan
Anda kini mempunyai strategi keselamatan rahsia yang lengkap untuk ejen pengeluaran:
- Gilirkan kunci API setiap 60–90 hari sebagai amalan tetap
- Gunakan AWS Secrets Manager atau HashiCorp Vault untuk persekitaran pengeluaran
- Jalankan
truffleHogsebelum menjadikan mana-mana repositori sumber terbuka - Pasang
git-secretssebagai cangkuk sebelum komit untuk menghalang penghantaran perubahan secara tidak sengaja - Jika kunci terdedah: batalkan serta-merta, kemudian gilirkan kunci, kemudian audit penggunaan
- Tetapkan had perbelanjaan pada semua kunci API untuk mengehadkan kerosakan akibat pencerobohan
- Terapkan keistimewaan minimum — berikan setiap kunci hanya kebenaran yang diperlukannya
Pelajari Ejen AI dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 60
- Pelajaran
- 239
Soalan Lazim
Adakah pelajaran “Putaran Rahsia dan Keselamatan” percuma?
Ya — teks penuh “Putaran Rahsia dan Keselamatan” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Ejen AI, tingkat taraf kepada CoddyKit PRO. Kursus Ejen AI merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Putaran Rahsia dan Keselamatan”?
Tamat tempoh rahsia, strategi putaran dan penyelesaian peti besi (AWS Secrets Manager). Anda berlatih Ejen AI menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Ejen AI?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Ejen AI di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.
Berapa lamakah pelajaran “Putaran Rahsia dan Keselamatan” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Ejen AI ini?
Ya. Setiap pelajaran Ejen AI menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Pemboleh Ubah Persekitaran untuk Ejen
- Fail .env dan python-dotenv
- Putaran Rahsia dan Keselamatan
- Profil Konfigurasi untuk Pembangunan dan Pengeluaran