Ana içeriğe atla
Gateway Runtime ortamlarında API Proxy’ler üzerindeki API trafiğinin kayıt altına alınması söz konusu olduğunda aşağıdaki ayarlar ile ilgili logların nerede saklanması gerektiği ayarı yapılabilmektedir. Gateway Runtime ortamlarındaki API trafiğini diğer ortamlara göndermek için aşağıdaki konnektörler kullanılabilir:
Bu konnektörlere gönderilecek olan verinin yapısını incelemek için şu dokümana göz atabilirsiniz.
Gateway Runtime ortamlarına konnektör eklenmesini içeren görsele aşağıda yer verilmiştir: Konnektör Ekleme
  • Apinizer Yönetim Konsolunda ilgili API Trafiğinin sorgulanması ve analitik olarak görselleştirilmesi ancak ilgili Gateway Runtime ortamına Elasticsearch Konnektörü eklenmesi ile mümkün olmaktadır.
  • Eğer birden fazla Elasticsearch Konnektörü tanımlanması durumunda Apinizer Yönetim Konsolunda ilk eklenen Elasticsearch Konnektöründeki veriler görüntülenebilir.
  • Eğer Elasticsearch Konnektörü hiç eklenmemiş ise aşağıdaki alanlar/menüler tamamen kapatılır:
    • Analitikle ilgili tüm ekranlar ve menüler
    • API Proxy’nin Trace, API Trafiği ve Analitikler sekmeleri
    • Monitör menüsündeki Anomali Dedektörü
    • Yönetim menüsündeki Genel Bakış’a ait Analitik kısmı
    • OAuth2 politikası
    • Test konsolda yer alan Log sekmesi
    • Denetim menüsünde yer alan Token İstekleri
    • Rapor oluşturucu menüsü
    • Portaldaki Pano ve API Trafiği

Konnektörlerdeki Ortak Alanlar

Konnektör oluşturulurken her tip için aynı olan bazı girdi alanları vardır. Bu bilgiler aşağıdaki görselde seçili alanlardır. Konnektörlerdeki Ortak Alanlar Konnektörlerdeki ortak bilgilerin konfigürasyonu için kullanılan alanlar aşağıdaki tabloda görülmektedir.
AlanAçıklama
API Proxy Trafik Log Ayarları Ayrıntılarını Yapılandır (Configure API Proxy Traffic Log Setting Detail)Bu ayar aktifleştirildiğinde loglanacak olan alanlar seçilir. Loglama için gönderilecek alanlar arasında uzun metinler yer alıyorsa bu alanlar için boyut limiti ayarlanabilir.
Etkinleştirilse, API Proxy’sinin bulunamadığı veya mevcut olmadığı tüm trafik log kayıtları da hedefe aktarılır (If enabled, all traffic logs of which API proxy is not found or not exists are also exported to target)Bu ayar ile istenirse API Proxy’nin bulunmadığı veya mevcut olmadığı tüm trafik logları da hedefe aktarılır.
API Proxy Trafik Gizlilik Ayarlarını Yapılandır (Configure API Proxy Traffic Privacy Setting)Bu ayar aktifleştirildiğinde log kayıtları içerisinde açık bir şekilde erişilmesi istenmeyen verilerin, olduğu gibi görüntülenmesinin önüne geçilebilir. Bu bölüme ilişkin detaylı bilgi aşağıda anlatılmaktadır.
Etkinleştirilirse, gönderilmemiş istekler failover bağlantısına gönderilir (If enabled, unsent requests will be sent to failover connector)Konnektör çevrimdışıysa veya erişilemiyorsa, bu durumda gönderilemeyen log kayıtları için yeni failover bağlantısı tanımlanabilir.
Failover Executable Tipi (Failover Connector Type)Tanımlanacak failover konnektörünün tipi seçilir.
TipFailover tipinin Veritabanı (Database) seçilmesi durumunda bu alan aktifleşir. Veritabanı tipi seçilir.
Failover Bağlantısı (Failover Connection)Seçilen failover tipine göre tanımlanacak failover bağlantısı seçilir.
Operasyon (Operation)Failover tipinin Veritabanı (Database) seçilmesi durumunda bu alan aktifleşir. Operasyon tipi seçilir.

API Proxy Trafik Log Ayarları Ayrıntılarını Yapılandırma

“Configure API Traffic Log Setting Detail” (API Trafik Log Ayarları Ayrıntılarını Yapılandırma) seçeneği etkinleştirildiğinde, API trafik loglarının nasıl kaydedileceğini özelleştirebilirsiniz. Apinizer logları, sistemdeki trafik akışına göre dört farklı bölgeye ayrılmıştır.

API Trafik Log Bölgeleri

Apinizer, API trafiğini bu dört bölgede loglar:
  1. Client’tan Apinizer’a Gelen İstek (Request from Client)
  2. Apinizer’dan Backend’e Giden İstek (Request to Target)
  3. Backend’den Apinizer’a Gelen İstek (Response from Target)
  4. Apinizer’dan Client’a Giden İstek (Response to Client)
“Configure API Traffic Log Setting Detail” seçeneği etkinleştirildiğinde, bu bölgelerin her biri için loglama özelleştirilebilir. Varsayılan olarak, tüm mesaj bölgelerindeki alanların loglanması aktiftir. Loglanan alanlar ihtiyaca göre veya log sunucusunun kaynak tüketimi baz alınarak kısıtlanabilir.
Üretim Gateway Runtime ortamı için aşağıdaki bölgelere ait ögeleri loglama işleminin devre dışı bırakılması tavsiye edilmektedir:
  • Apinizer’dan Backend’e Giden İstek (Request to Target)
  • Backend’den Apinizer’a Gelen İstek (Response from Target)
Eğer bir API Proxy üretim Gateway Runtime ortamında çalışıyorsa, API Proxy’deki tüm poliçelerin ayarları ve testleri tamamlandığı ve artık geliştirme yapılmayacağı anlamına gelmektedir. Bu yüzden veri tabanında verilerinin aşırı büyümemesi için bu iki bölgedeki başlık, parametre ve gövde verilerinin yazılmaması tavsiye edilir.
Tüm loglama alanları kapalı olsa dahi istekte bir hata oluştuysa log alanlarının tümü hatanın tespit edilebilmesi için kayıt edilir. Bu özellik genel ayarlarda açılıp, kapatılabilir.
Formdata istekleri değişken veri büyüklükleri ve veri formatları nedeniyle dosya kısımları hiçbir şekilde loglanmamaktadır. Sadece diğer metadata alanları loglanmaktadır.
WebSocket ve gRPC istekleri Apinizer’a gelen ve Apinizer’dan çıkan veriler şeklinde tutulmakta olduğundan bu tip API Proxylerde sadece 2 bölge vardır.

Log Ayarları Ekranı

“Configure API Traffic Log Setting Detail” seçeneği etkinleştirildiğinde karşımıza gelen log ayarları ekranını içeren görsele aşağıda yer verilmiştir: Log Ayarları Ekranı Bu ekranda her bölge için hangi alanların loglanacağı seçilebilir ve uzun metinler içeren alanlar için boyut limiti ayarlanabilir.

Özelleştirilebilir Log Alanları

API traffic log ayarlarında özelleştirilebilecek alanlar aşağıda verilmiştir. Her alan için loglanıp loglanmayacağı seçilebilir ve uzun metinler içeren alanlar için boyut limiti ayarlanabilir.
AlanAçıklama
Tanımlama Metadata (Identification Metadata)Sistem tanımlama bilgilerini kaydeder
İstek Metadata (Request Metadata)İsteğe özgü metadata bilgilerini yakalar
API Proxy Metadata (API Proxy Metadata)Proxy ile ilgili metadata bilgilerini loglar
Yanıt Metadata (Response Metadata)Yanıta özgü metadata bilgilerini kaydeder
Metrikler (Metrics)Performans ve zamanlama metriklerini yakalar
İstemciden Gelen Başlık (Header from Client)Client’tan alınan tüm başlıkları kaydeder
İstemciden Gelen Gövde (Body from Client)Client’tan gelen istek gövdesini yakalar
İstemciden Gelen Parametre (Param from Client)Client’tan alınan parametreleri loglar
Hedefe Giden Başlık (Header to Target)Backend’e gönderilen başlıkları kaydeder
Hedefe Giden Gövde (Body to Target)Backend’e gönderilen istek gövdesini yakalar
Hedefe Giden Parametre (Param to Target)Backend’e gönderilen parametreleri loglar
Gönderilen Adres (Sent Address)İstek için adres bilgisini kaydeder
Hedeften Gelen Başlık (Header from Target)Backend’den alınan başlıkları kaydeder
Hedeften Gelen Gövde (Body from Target)Backend’den gelen yanıt gövdesini yakalar
İstemciye Giden Başlık (Header to Client)Client’a gönderilen başlıkları kaydeder
İstemciye Giden Gövde (Body to Client)Client’a gönderilen yanıt gövdesini yakalar

Boyut Limitleri

Loglama için gönderilecek alanlar arasında uzun metinler yer alıyorsa bu alanlar için boyut limiti ayarlanabilir. Bu sayede log kayıtlarının boyutu kontrol altında tutulabilir ve veri tabanı veya log hedef sistemindeki depolama alanı optimize edilebilir. Her alan için ayrı ayrı boyut limiti belirlenebilir. Belirlenen limit aşıldığında, ilgili alanın içeriği kesilerek loglanır veya tamamen atlanabilir.

API Proxy Trafik Gizlilik Ayarlarını Yapılandırma

Apinizer üzerinden akan mesaj trafiğinin (istek ve yanıt) kayıtlarını tutmaktadır. Mesajların herhangi bir bölümünde (başlık, parametre, gövde) kredi kartı bilgileri, şifre, telefon numarası gibi hassas ya da kişisel veriler bulunabilir. Bu verilerin log kayıtları içerisinde açık bir şekilde erişilmesi istenmediği durumlarda Apinizer “API Proxy Trafik Gizlilik Ayarları” ile log kayıtları içerisindeki hassasiyet/gizlilik taşıyan alanlara aşağıdaki işlemleri uygulayarak, verinin olduğu gibi görüntülenmesinin önüne geçilebilir:
API Proxy bazlı log ayarları için API Proxy Konfigürasyonu - Ayarlar Sekmesi sayfasındaki API Trafik Log Ayarları bölümüne bakabilirsiniz.
  • Maskeleme: Alanın değerine * işaretiyle maske uygulanır.
  • Silme: Alanın değeri loglanırken silinir.
  • Şifreleme: Uygulama bazında üretilen salt kodu ile alanın değeri şifrelenir.
  • Hashleme: Alanın değeri hashlenerek loglanır.
API Proxy Trafik Gizlilik Ayarları, sadece Apinizer üzerinde tutulan log kayıtlarındaki verinin saklanması ile ilgilidir. Herhangi bir şekilde Backend API’ye giden veri veya Client’a dönen veri ile ilgili değildir! Bu veriler üzerinde işlem yapmak için politikalardan faydalanabilirsiniz.

Gizlilik Ayarlarının Uygulanması

Log kaydının oluşturulması zamanında tanımlanan element adları ile istek ve yanıt mesajlarının “başlık, parametre ve gövde” alanları üzerinde tarama yapılır. Bulunan element adları için element adına özel tanımlanan işlem (maskeleme, silme, şifreleme, hashleme) uygulanır. İstek veya yanıt gövdesi üzerinde element adının aranması için gövde değerinin XML, JSON veya Form verisi (form-data, x-www-form-urlencoded) olması gereklidir. Veri eğer XML veya JSON ise tüm element isimlerinde (recursive olarak), form verisi ise tüm anahtar kelimelerde “hassas veri element adı” değeri aranır, bulunması durumunda XML veya JSON ise element değerine, form verisi ise anahtar karşılığındaki değere ilgili işlem (maskeleme, silme, şifreleme, hashleme) uygulanır. Veri üzerindeki ilgili element/anahtar adının sonuna da işlem yapıldığını belirtmek amacıyla “-PA” suffix’i eklenir. PA: Privacy Applied anlamındadır. Tanımlanan bir alan başına “API Proxy Trafik Gizlilik Ayarları”nın uygulanması için şu alanların tamamında tarama yapılır:
  • İstemciden Gelen Mesajın Başlık, Sorgu(Query) Parametresi ve Gövdesi
  • Backend’e Giden Mesajın Başlık, Sorgu(Query) Parametresi ve Gövdesi
  • Backend’den Dönen Mesajın Başlık ve Gövdesi
  • İstemciye Dönen Mesajın Başlık ve Gövdesi
Taranan alanlardan da anlaşılacağı üzere API Proxy Trafik Gizlilik Ayarları performans anlamında maliyetli bir işlemdir.Loglama işlemleri asenkron yapıldığından her ne kadar API Trafiğine etkisi olmasa da yoğun olarak kullanılacaksa işlemci gücüne olacak etkisi göz önüne alınarak sistem konfigürasyonu yapılmalıdır.

Tanımlar Ekranı

“API Proxy Trafik Gizlilik Ayarları”nı aktif hale getirmek için Aktifleştir seçeneği etkin olmalıdır. API Proxy Trafik Gizlilik Ayarları aktifleştirildiğinde karşımıza gelen ekranı içeren görsele aşağıda yer verilmiştir: API Proxy Trafik Gizlilik Ayarları Element adı ve bu tanıma ne yapılacağı (işlem bilgisi) ikilileri tanımlanır. Ekle tuşu ile tanım listesine eklenir. Burada tanımlanan bir element adı ve ilgili işlem tüm API Proxyler için geçerli olur. Bir tanım oluşturulduğunda otomatik olarak tüm API Proxy’lere eklenir. Bir tanım silindiğinde ise tüm API Proxy’lerden bu ayar kaldırılır.
Eğer bir API Proxy yoksa, gelen isteklere tanımların hepsi uygulanır.

Salt (Tuz) Nedir?

API Proxy Trafik Gizlilik Ayarları işlemlerinden bir tanesi de hashlemedir. Hashleme yöntemi seçildiğinde verinin bir algoritma ile geri dönüşmeyecek şekilde hashlenerek tutulması sağlanır. Hashlenen veri tek yönlüdür, ve geri getirilemez. Sadece hashli verinin tekrar oluşturulması sağlanabilir. Salt ile normalde hash algoritması seçilerek oluşacak olan çıktının farklı oluşması sağlanarak hashlenen değerin kıyaslama yapılarak bulunabilmesinin önüne geçilir. API Proxy Trafik Gizlilik Ayarları ilk aktif hale getirildiğinde Apinizer bir tane salt değeri oluşturur ve verileri bununla hashler. Normalde her değerin farklı saltlar ile hashlenmesi daha doğru gibi gözükse de, bazı durumlarda verinin aranarak bulunması veya verinin değerinin doğru olduğunun da bilinmesi gerekliliği oluşabileceğinden, bu salt Apinizer tarafından değiştirilmeden gizli bir şekilde saklanır. Kullanıcıya ise değer girerek aynı hashli veriyi ekran üzerinden oluşturabilmesine izin verilir.