API Anahtarı Yönetimi
API anahtarları, uygulamanızın MyAIDepartments platformuna güvenli erişimini sağlar. Bu rehberde API anahtarlarının oluşturulması, yönetimi ve güvenliği anlatılmaktadır.
API Anahtarı Oluşturma
Dashboard Üzerinden
- Dashboard'a giriş yapın
- Ayarlar > API Anahtarları bölümüne gidin
- "Yeni API Anahtarı Oluştur" butonuna tıklayın
- Anahtara açıklayıcı bir isim verin
- İzinleri seçin (read, write, delete)
- "Oluştur" butonuna tıklayın
Anahtar Formatı
pk_live_1234567890abcdefghijklmnop
│ │ └─ Random string (token)
│ └─ Environment (live/test)
└─ Prefix (pk = public key)
Anahtar Tipleri
Test Anahtarı (Test Mode)
pk_test_xxxxxxxxxxxxx
sk_test_xxxxxxxxxxxxx
- Gerçek veri oluşturmaz
- Sandbox ortamda çalışır
- Geliştirme ve test için idealdir
- Limitsiz kullanım
Canlı Anahtar (Live Mode)
pk_live_xxxxxxxxxxxxx
sk_live_xxxxxxxxxxxxx
- Gerçek verilerle çalışır
- Production ortamda kullanılır
- Rate limit uygulanır
- Faturalaması yapılır
İzin Seviyeleri
Her API anahtarına farklı izinler atayabilirsiniz:
Okuma İzni (Read)
{
"permissions": ["read"],
"scopes": [
"conversations:read",
"calls:read",
"accounts:read",
"analytics:read"
]
}
Yapabilir:
- Konuşmaları görüntüleme
- Aramaları listeleme
- Hesap bilgilerini okuma
- Analitikleri görüntüleme
Yapamaz:
- Yeni kayıt oluşturma
- Güncelleme
- Silme
Yazma İzni (Write)
{
"permissions": ["read", "write"],
"scopes": ["conversations:write", "calls:write", "accounts:write"]
}
Yapabilir:
- Okuma izinlerinin tümü
- Yeni konuşma başlatma
- Hesap oluşturma/güncelleme
- Ayarları değiştirme
Yapamaz:
- Silme işlemleri
- Admin işlemleri
Tam İzin (Full Access)
{
"permissions": ["read", "write", "delete"],
"scopes": ["*"]
}
⚠️ Dikkat: Tam izin verirken çok dikkatli olun!
Anahtar Güvenliği
✅ Yapılması Gerekenler
- Ortam Değişkenlerinde Saklayın
# .env dosyası
MYAI_API_KEY=sk_live_xxxxxxxxxxxxx
MYAI_API_SECRET=whsec_yyyyyyyyyyyyy
// Kullanım
const apiKey = process.env.MYAI_API_KEY;
- Farklı Ortamlar İçin Farklı Anahtarlar
Development → pk_test_dev_xxxxx
Staging → pk_test_stg_xxxxx
Production → pk_live_prd_xxxxx
- IP Whitelist Kullanın
Allowed IPs:
- 203.0.113.0/24
- 198.51.100.0/24
- Düzenli Olarak Rotate Edin
Anahtarları her 90 günde bir yenileyin.
❌ Yapılmaması Gerekenler
- Git'e Commit Etmeyin
# .gitignore
.env
.env.local
secrets/
- Client-Side Kodda Kullanmayın
// ❌ YANLIŞ - API anahtarı görünür!
const apiKey = "sk_live_xxxxx";
fetch("https://api.myaidepartments.com", {
headers: { Authorization: `Bearer ${apiKey}` },
});
// ✅ DOĞRU - Backend'den istek yapın
fetch("/api/your-backend-endpoint");
- Herkese Açık Yerlerde Paylaşmayın
- Slack kanalları
- Screenshot'lar
- Public GitHub repo'ları
Anahtar Rotasyonu
Adım 1: Yeni Anahtar Oluştur
curl -X POST https://api.myaidepartments.com/v1/api-keys \
-H "Authorization: Bearer CURRENT_KEY" \
-d '{"name": "New Production Key"}'
Adım 2: Uygulamayı Güncelle
Her ortamda anahtar değişikliğini test edin.
Adım 3: Eski Anahtarı Deaktive Et
curl -X DELETE https://api.myaidepartments.com/v1/api-keys/{key_id} \
-H "Authorization: Bearer CURRENT_KEY"
Adım 4: İzleyin
Eski anahtarla istek gelip gelmediğini kontrol edin.
Anahtar İzleme
Kullanım İstatistikleri
Dashboard'da her anahtar için:
┌─────────────────────────────────────────┐
│ API Anahtar: Production Key │
├─────────────────────────────────────────┤
│ Toplam İstek: 1,234,567 │
│ Başarılı: 1,234,000 (99.95%) │
│ Başarısız: 567 (0.05%) │
│ Son Kullanım: 2 dakika önce │
│ Son IP: 203.0.113.45 │
└─────────────────────────────────────────┘
Alarm Kurma
Kritik olaylar için alarm oluşturun:
Alarms:
- Type: High Error Rate
Threshold: >5% in 5 minutes
Action: Send email & Slack notification
- Type: Unusual IP
Condition: New IP address
Action: Send security alert
- Type: Rate Limit
Threshold: >80% of limit
Action: Send warning email
Çoklu Anahtar Yönetimi
Büyük ekipler için öneriler:
Anahtar Adlandırma
{environment}-{service}-{purpose}-{date}
Örnekler:
prod-api-backend-2025-01
test-webhook-staging-2025-01
dev-frontend-local-2025-01
Anahtar Matrisi
| Ortam | Backend | Frontend | Mobile | Webhook |
|---|---|---|---|---|
| Dev | ✓ | ✓ | ✓ | ✓ |
| Test | ✓ | ✓ | ✓ | ✓ |
| Staging | ✓ | ✗ | ✓ | ✓ |
| Prod | ✓ | ✗ | ✓ | ✓ |
API Anahtar İpuçları
💡 Pro Tips:
- Metadata Kullanın: Her anahtara metadata ekleyin
{
"metadata": {
"team": "backend",
"project": "main-api",
"owner": "ahmet@example.com"
}
}
-
Expiry Date Belirleyin: Anahtarların otomatik expire olmasını sağlayın
-
Minimum İzin Prensibi: Sadece gerekli izinleri verin
-
Monitoring Tool Kullanın: Datadog, New Relic gibi araçlarla izleyin
API Anahtar Sızıntısı
Anahtar Sızdıysa Ne Yapmalı?
- Hemen Deaktive Edin (1-2 dakika içinde)
- Yeni Anahtar Oluşturun
- Sızıntı Kaynağını Bulun
- Güvenlik Loglarını İnceleyin
- Gerekirse Şifreyi Değiştirin
GitHub Token Scanner
GitHub otomatik olarak sızan tokenları tespit eder:
⚠️ Secret scanning alert
Found: MY_AI_DEPARTMENTS_API_KEY
Location: config.js:14
CLI ile Anahtar Yönetimi
# Tüm anahtarları listele
myai keys list
# Yeni anahtar oluştur
myai keys create --name "Prod API" --permissions read,write
# Anahtar detaylarını göster
myai keys show key_abc123
# Anahtarı sil
myai keys delete key_abc123
# Anahtar kullanım istatistikleri
myai keys stats key_abc123
Sonraki Adımlar
- 2.2 Kimlik Doğrulama - Auth mekanizmaları
- 2.3 API Referansı - Endpoint detayları
- 5.1 Güvenlik Best Practices - Güvenlik önerileri