Zaman Kısıtlaması
ipucu
Bu doküman spesifik bir politikanın detaylı kullanımını anlatır. Eğer Apinizer politika yapısını ilk kez kullanıyorsanız veya politikaların genel çalışma prensiplerini öğrenmek istiyorsanız, öncelikle Politika Nedir? sayfasını okumanızı öneririz.
Genel Bakış
Amacı Nedir?
- API Proxy (API Vekil Sunucusu) trafiğini gün ve saat aralıklarına göre filtreleyerek yetkisiz zamanlarda erişimi engellemek.
- Bakım pencereleri veya kampanya süreleri gibi belirli zaman dilimlerinde istekleri otomatik olarak yönetmek.
- Farklı zaman dilimlerinden gelen çağrıları Zone ID ayarı sayesinde tutarlı şekilde değerlendirmek.
- Allow/Restrict aksiyon modlarıyla aynı yapılandırmayı hem izin verme hem de engelleme senaryolarında yeniden kullanmak.
Çalışma Prensibi
- İstek Gelişi: API Gateway'e gelen her HTTP/HTTPS isteği için, istemin kaynak IP adresi tespit edilir.
- Politika Kontrolü: Zaman Kısıtlaması politikası aktif ise, sistem aşağıdaki sırayla kontrol yapar:
- Condition (koşul) tanımlı mı? Varsa koşul sağlanıyor mu?
- Politika aktif mi (active=true)?
- Variable kullanılıyor mu yoksa Apinizer default mı?
- Saat Blo ğu Değerlendirmesi: Tanımlı hourWrapper kuralları seçilen Zone ID üzerinden gün, ay ve saat aralıklarına göre çalıştırılır; Allow modunda en az bir kural eşleşmesi gerekir, Restrict modunda eşleşen kural isteği bloklar.
- Karar Verme:
- Eşleşme Var: Allow modunda istek geçer; Restrict modunda isteğe varsayılan veya özelleştirilmiş hata kodu döndürülür.
- Eşleşme Yok: Allow modunda istek 403 ile reddedilir; Restrict modunda istek devam eder.
- Hata İşleme: Politika kuralına uymayan istekler için özelleştirilebilir HTTP durum kodu ve hata mesajı döndürülür.
Özellikler ve Yetenekler
Temel Özellikler
- Çoklu Saat Bloğu Yönetimi: Bir politika içinde sınırsız hourWrapper tanımlanarak farklı gün ve saat aralıkları aynı politikada toplanabilir.
- Çift Modlu Aksiyon Tipi: EnumRestrictionType (ALLOW/RESTRICT) desteği ile aynı yapılandırma hem izin verme hem de engelleme senaryolarına uygulanabilir.
- Zone ID Tabanlı Değerlendirme: Zone ID alanı sayesinde istekler varsayılan sunucu saatinden bağımsız, seçilen zaman dilimine göre değerlendirilir.
- Aktif/Pasif Durum Kontrolü: Politikanın aktif veya pasif durumunu kolayca değiştirme (active/passive toggle). Pasif durumda politika uygulanmaz ancak yapılandırması saklanır.
- Koşul Bazlı Uygulama: Query Builder ile karmaşık koşullar oluşturarak politikanın ne zaman uygulanacağını belirleme (örn: sadece belirli endpoint'lere veya header değerlerine göre).
İleri Düzey Özellikler
- Özel Gün ve Ay Tanımları: EnumDayType.CUSTOM seçimiyle tek bir gün, belirli bir ayın tamamı veya her ayın aynı günü gibi kurallar oluşturulabilir.
- Tam Gün Kuralı: WholeDay seçeneğiyle saat detayı girmeden gün bazlı tam bloklama veya izin verme yapılır.
- Kapsayıcı Doğrulama: isValid() kontrolleri ile zorunlu alan denetimleri, saat aralığı bütünlüğü ve isim benzersizliği otomatik doğrulanır.
- Export/Import Özelliği: Politika yapılandırmasını ZIP dosyası olarak export etme. Farklı ortamlara (Development, Test, Production) import etme. Versiyon kontrolü ve yedekleme imkanı.
- Policy Group ve Proxy Group Desteği: Birden fazla politikayı Policy Group içinde yönetme. Proxy Group'lara toplu politika atama. Merkezi güncelleme ve deploy işlemleri.
- Deploy ve Versiyonlama: Politika değişikliklerini canlı ortama deploy etme. Hangi API Proxy'lerde kullanıldığını görme (Policy Usage). Proxy Group ve Policy Group kullanım raporları.