Salaisuuksien kierrätys ja turvallisuus
Salaisuuksien vanheneminen, kierrätysstrategiat ja vault-ratkaisut (AWS Secrets Manager)
Salaisuuksien kierrätys ja turvallisuus on ilmainen Tekoälyagentit-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Tekoälyagentit-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Tekoälyagentit-kurssilla on yhteensä 4 oppituntia.
Miksi salaisuudet on kierrätettävä
Vaikka salaisuutta ei koskaan paljastettaisi tarkoituksella, sen säännöllinen kierrättäminen rajoittaa havaitsematta jääneen tietomurron aiheuttamia vahinkoja. Kuusi kuukautta sitten salaa varastettu avain muuttuu hyödyttömäksi kierrättämisen jälkeen.
Monet tietoturvastandardit (SOC 2, PCI-DSS) edellyttävät salaisuuksien säännöllistä kierrättämistä. Kierrätystä tukevan agenttikoodin rakentaminen on ammattimaista toimintaa.
API-avainten vanhenemiskäytännöt
Eri palveluntarjoajilla on erilaiset vanhenemiskäytännöt. Joidenkin avulla avaimille voi määrittää vanhenemispäivän, kun taas toisten avaimet eivät vanhene koskaan, ellei niitä kierrätetä manuaalisesti. Tarkistakaa avaimet säännöllisesti ja asettakaa kalenterimuistutukset manuaalista kierrätystä varten.
# 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 agenteille
AWS Secrets Manager tallentaa salaisuudet turvallisesti ja tukee automaattista kierrätystä. Agentti hakee nykyisen salaisuuden arvon ajon aikana SDK:n avulla — ei suoraan koodiin kirjoitettuja avaimia eikä tuotannossa käytettäviä .env-tiedostoja.
# 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 salaisuuksille
HashiCorp Vault on avoimen lähdekoodin salaisuuksien hallintajärjestelmä, joka on suosittu yritysympäristöissä. Se tukee dynaamisia salaisuuksia, tarkasti rajattua käyttöoikeuksien hallintaa ja jokaisen salaisuuden käytön auditointilokia.
# 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 policiesSalaisuuksien haku: truffleHog
truffleHog etsii git-repositorioista salaisuuksia, jotka on saatettu commitoida vahingossa. Se tarkistaa koko commit-historian, ei vain nykyistä koodia. Suorittakaa se ennen repositorion julkaisemista julkiseksi.
# 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: suojaus ennen committia
git-secrets on AWS:n git-hook-työkalu, joka estää määritettyjä malleja vastaavia salaisuuksia sisältävät commitit. Se suoritetaan ennen jokaista committia ja hylkää sen, jos salaisuutta vastaava malli löytyy.
# 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')Mitä tehdä, jos avain paljastuu
Vaiheittainen toimintasuunnitelma vaarantuneen API-avaimen varalta. Nopeus on ratkaisevan tärkeää — automaattiset skannerit poimivat paljastuneet avaimet muutamassa minuutissa commitista.
# 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.')Luvattoman käytön havaitseminen
Kun olet kierrättänyt avaimen, tarkista, käytettiinkö sitä luvatta. Useimmat palveluntarjoajat tarjoavat käyttölokeja ja kulutushälytyksiä, joista voi selvitä, käytettiinkö varastettua avainta API-kutsujen tekemiseen.
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()API-avainten kulutusrajojen asettaminen
Aseta API-avaimille ehdottomat kulutusrajat, jotta vaarantuneen avaimen aiheuttamat vahingot jäävät rajallisiksi. Vaikka joku käyttäisi avaintasi, hän ei voi kerryttää rajattoman suurta laskua.
# 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')Avainten pienimmän oikeuden periaate
Anna kullekin API-avaimelle vain sen tarvitsemat käyttöoikeudet. Avaimella, joka ainoastaan lukee tietoja, ei pitäisi olla kirjoitus- tai poisto-oikeuksia. Useimmat palveluntarjoajat tukevat rajattuun laajuuteen tai tiettyihin käyttöoikeuksiin rajoitettuja avaimia.
# 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')Avaimen toimintakunnon tarkistuksen rakentaminen
Varmista, että API-avaimesi ovat edelleen voimassa agentin käynnistyessä. Havaitse vanhentuneet tai mitätöidyt avaimet heti sen sijaan, että tehtävä epäonnistuisi kesken suorituksen agentin jo kulutettua resursseja.
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')Tietotesti: salaisuuksien kierrätys ja tietoturva
Testaa, miten hyvin ymmärrät salaisuuksien kierrätyksen ja tietoturvakäytännöt.
Kertaus: salaisuuksien kierrätys ja tietoturva
Sinulla on nyt kattava tuotantoagenttien salaisuuksien suojausstrategia:
- Kierrätä API-avaimet 60–90 päivän välein vakiintuneena käytäntönä
- Käytä AWS Secrets Manageria tai HashiCorp Vaultia tuotantoympäristöissä
- Suorita
truffleHogennen repositorion julkaisemista avoimena - Asenna
git-secretspre-commit-koukuksi estämään tahattomat commitit - Jos avain paljastuu: mitätöi se heti, kierrätä se sen jälkeen ja tarkista käyttö
- Aseta kaikille API-avaimille kulutusrajat vaarantumisesta aiheutuvien vahinkojen rajoittamiseksi
- Noudata pienimmän oikeuden periaatetta — anna kullekin avaimelle vain sen tarvitsemat käyttöoikeudet
Opi Tekoälyagentit tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 60
- Oppitunnit
- 239
Usein kysytyt kysymykset
Onko oppitunti ”Salaisuuksien kierrätys ja turvallisuus” ilmainen?
Kyllä – oppitunnin ”Salaisuuksien kierrätys ja turvallisuus” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Tekoälyagentit-kurssin, päivitä CoddyKit PROhon. Tekoälyagentit-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Salaisuuksien kierrätys ja turvallisuus”?
Salaisuuksien vanheneminen, kierrätysstrategiat ja vault-ratkaisut (AWS Secrets Manager) Harjoittelet Tekoälyagentit-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Tekoälyagentit-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Tekoälyagentit-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.
Kuinka kauan ”Salaisuuksien kierrätys ja turvallisuus”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Tekoälyagentit-oppitunnilla?
Kyllä. Jokainen Tekoälyagentit-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Agenttien ympäristömuuttujat
- .env-tiedostot ja python-dotenv
- Salaisuuksien kierrätys ja turvallisuus
- Kehitys- ja tuotantoympäristön asetukset