Yakın zamanda Gürcistanlı bir öğrenci, geliştirici topluluğunda başından geçen üzücü deneyimi paylaştı. Masum bir hata sonucu Google Cloud Gemini API Anahtarını yanlışlıkla GitHub üzerinde sızdıran öğrenci, anahtarın sadece birkaç ay içinde kötü niyetli kişilerce kullanılmasıyla 55.444 dolar tutarında devasa bir faturayla baş başa kaldı.
Öğrenci çaresizlik içinde şunları söyledi: “Küçük bir hata hayatı kabusa çevirebilir.”
Olayın ortaya çıkmasının ardından durum birçok programcının dikkatini çekti ve hararetli tartışmalara yol açtı. Bazıları Google’ın neden “kesin bir harcama sınırı” sağlamadığını sorgularken, bazıları ekiplerinin de benzer tuzaklarla karşılaştığını paylaştı. Diğerleri ise öğrenciye sempatilerini dile getirerek Google’ı kullanıcı koruma mekanizmalarını güçlendirmeye çağırdı.
“Ücretsiz Krediler” Kabusu
Olayın nedeni oldukça basitti. Öğrenci, Google tarafından sağlanan 300 dolarlık ücretsiz krediyi kullanarak bazı öğrenme deneyleri yapmak amacıyla okul e-postasıyla Google Cloud’a kaydoldu. Aslında sadece 80 dolar harcamıştı ve geriye 220 doların üzerinde kredisi kalmıştı ancak 6 Haziran tarihinde yanlışlıkla Gemini API Anahtarını GitHub’a gönderdi. O sırada deponun (repository) gizli olduğunu düşünüyordu fakat anahtar bir “commit” işlemi sırasında açığa çıkmıştı ve öğrenci durumu fark etmedi. Durumu daha da kötüleştiren ise yaz tatili olması nedeniyle okul e-postasını neredeyse hiç kontrol etmemesi ve sorundan tamamen habersiz olmasıydı.
Ta ki 7 Eylül tarihine kadar… Bir GitHub kullanıcısı kendisine mesaj atarak API Anahtarının uzun süredir açıkta olduğunu ve başkaları tarafından kötüye kullanıldığını bildirdi. Hesabına giriş yapıp kontrol ettiğinde artık çok geçti; fatura 55.444 dolara fırlamıştı.
Öğrencinin açıklamasına göre borç üç dalga halinde birikmişti:
- Haziran: 732 Dolar (Kredi kartının süresi dolduğu için ödeme başarısız oldu)
- Ağustos: 31.000 Doların üzerinde
- 1 – 7 Eylül: 21.000 Doların üzerinde daha
Daha da inanılmazı, saldırganlar sadece iki gün içinde API’ye 14.200 istek göndermişti. Tüm istekler başarısız olsa da faturalandırma işlemi gerçekleşti.
Google ile Müzakerenin Sonucu: Sempati Var, İptal Yok
Sorunu keşfettikten sonra öğrenci derhal API Anahtarını iptal etti, Google Cloud Faturalandırma Destek ekibiyle iletişime geçti ve hatta olayı polise bildirdi. Kullanım günlükleri, GitHub bağlantıları, ekran görüntüleri ve API Anahtarı iptal kayıtları dahil olmak üzere kapsamlı kanıtlar sundu fakat Google’ın yanıtı şu oldu: “Fatura geçerliliğini korumaktadır ve iptal edilmeyecek veya değiştirilmeyecektir.”
Google tutum olarak her zaman nazik ve sempatik kaldı ama kararın kesin olduğunu da açıkça belirtti. Akabinde öğrenci bir uyarı aldı: Eğer 10 gün içinde ödeme yapmazsa borç bir tahsilat kurumuna devredilecek ve ek ücretler doğabilecekti.
Günlük ortalama gelirin yaklaşık 15 dolar olduğu Gürcistan’dan gelen öğrenci, söz konusu faturanın on yıllık gelirine eşdeğer olduğunu itiraf ederek şunları dile getirdi: “Bu, karşılayamayacağım bir miktar. Bir API Anahtarı dizisinin bana bu kadar ağır bir borç yükleyebileceğini hayal bile edemezdim. Sorumluluktan kaçmaya çalışmıyorum ama yapmadığım bir şey yüzünden hayatımın mahvolmasını istemiyorum.”
Geliştiricilerin Tartışması: Neden “Kesin Sınır” Yok?
Gönderi yayınlanır yayınlanmaz geliştirici topluluğunda büyük yankı uyandırdı. Birçok geliştiricinin ilk tepkisinin Google’ın neden sadece uyarılar ayarlayabildiği ancak harcamaları gerçekten sınırlayamadığı yönünde olması dikkat çekti.
Buna karşılık bir kullanıcı faturalandırma mekanizmasından kaynaklanan nedeni açıkladı: GCP’nin faturalandırması, çeşitli koşullar altında (ücretsiz katman olup olmadığı, bölgeler arası trafik vb.) hesaplamaları içeren “önce tüket, sonra öde” modeline dayanır. İlgili verilerin SKU kullanımı, karmaşık faktör hesaplaması ve faturalandırma görünümüne itilmesi süreçlerinden geçmesi gerekir ki söz konusu işlem genellikle bir günden fazla gecikmeye sahiptir. Dolayısıyla gerçek zamanlı kesin sınırlar uygulamak neredeyse imkansızdır.
Bununla beraber bazı kişiler çözümler de önerdi: “API çağrılarının sayısını ‘Kotalar’ aracılığıyla sınırlayabilirsiniz ancak bu tüm senaryolar için geçerli değildir. Benim alışkanlığım, hizmet hesabının IP aralığını (IPv4/IPv6) sınırlamak ve anahtar sızıntısını önlemek için kodu işlemeden (commit) önce taramak üzere gitleaks gibi araçlar kullanmaktır.”
Nihai Sonuç: Google Borcu Tamamen Sildi
Gönderi yayıldıkça daha fazla geliştirici olaya dikkat kesildi. Nihayet 25 Eylül tarihinde öğrenci en son gelişmeyi paylaştı: Google Cloud Faturalandırma ekibinin ikinci incelemesinden sonra 55.000 dolarlık borç tamamen silindi!
Öğrenci orijinal gönderisini güncelleyerek şunları söyledi: “Destek gösteren ve tavsiyede bulunan herkese en derin şükranlarımı sunmak istiyorum. Cesaretlendirmeniz benim için çok önemli. Ayrıca hizmetleri için Google Faturalandırma ekibine de teşekkür etmek istiyorum.”
Yine de yaşanan olay tüm bulut hizmeti kullanıcıları (özellikle öğrenciler ve bireysel geliştiriciler) için bir uyarı niteliği taşıyor. Tıpkı öğrencinin dediği gibi: “Küçük bir hata hayatı kabusa çevirebilir.” Bulut hizmetlerini öğrenen veya kullanan tüm geliştiriciler için bahse konu ifade kesinlikle bir abartı değildir.
Kaynak: https://eu.36kr.com/en/p/3486014581496960
https://www.reddit.com/r/googlecloud/comments/1noctxi/student_hit_with_a_5544478_google_cloud_bill/
