[{"data":1,"prerenderedAt":1888},["ShallowReactive",2],{"\u002F2026\u002Faws-lambda-guvenlik-rehberi\u002F":3,"surround-\u002F2026\u002Faws-lambda-guvenlik-rehberi":1879},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"date":10,"updated":10,"categories":11,"tags":13,"readingTime":20,"body":25,"_type":1872,"_id":1873,"_source":1874,"_file":1875,"_stem":1876,"_extension":1877,"_original_dir":1878},"\u002F2026\u002Faws-lambda-guvenlik-rehberi","2026",false,"","AWS Lambda Gerçekten Güvenli mi? Sunucusuz Mimaride Sizi Bekleyen 7 Risk","Bulut ortamlarındaki güvenlik hatalarının %95'i insan kaynaklı yanlış yapılandırmalardan kaynaklanıyor (SentinelOne, 2026) ve serverless fonksiyonlar bu riskten muaf değil. Lambda güvenliğinde en kritik 7 riski keşfedin.","2026-05-10T21:00:00.000Z",[12],"Cloud",[14,15,16,17,18,19],"AWS","Lambda","Serverless","Security","IAM","Cloud-Security",{"text":21,"minutes":22,"time":23,"words":24},"11 min read",10.745,644700,2149,{"type":26,"children":27,"toc":1859},"root",[28,68,80,141,148,153,179,346,376,382,401,435,465,506,526,532,552,572,673,678,699,705,718,744,762,785,803,831,837,842,847,1058,1071,1091,1097,1110,1115,1299,1315,1335,1341,1354,1359,1377,1381,1387,1415,1425,1449,1474,1495,1501,1506,1511,1564,1570,1593,1602,1624,1652,1661,1667,1853],{"type":29,"tag":30,"props":31,"children":32},"element","p",{},[33,36,42,44,51,53,58,60,66],{"type":34,"value":35},"text","Sunucusuz bilişim, altyapı yönetimi derdini ortadan kaldırarak yazılım dünyasında bir özgürlük çağı başlattı. Ancak 2025 itibarıyla bulut ortamlarının ",{"type":29,"tag":37,"props":38,"children":39},"strong",{},[40],{"type":34,"value":41},"%54'ünde internete açık ve hassas veri içeren VM ve serverless örnekleri",{"type":34,"value":43}," tespit edildi (",{"type":29,"tag":45,"props":46,"children":48},"badge",{"link":47},"https:\u002F\u002Fwww.wiz.io\u002Freports\u002Fcloud-data-security-report-2025",[49],{"type":34,"value":50},"Wiz 2025 Cloud Data Security Report",{"type":34,"value":52},", 2025). Bu özgürlüğün bir bedeli var: Sunucular görünmez olduğunda onları korumak için ezberlediğimiz geleneksel yöntemler geçersizleşiyor. Bulut ortamlarındaki güvenlik hatalarının ",{"type":29,"tag":37,"props":54,"children":55},{},[56],{"type":34,"value":57},"%95'i insan kaynaklı yanlış yapılandırmalardan",{"type":34,"value":59}," kaynaklanıyor (",{"type":29,"tag":45,"props":61,"children":63},{"link":62},"https:\u002F\u002Fwww.sentinelone.com\u002Fcybersecurity-101\u002Fcloud-security\u002Fcloud-security-statistics\u002F",[64],{"type":34,"value":65},"SentinelOne 2026 Bulut Güvenliği İstatistikleri",{"type":34,"value":67},", 2026) ve AWS Lambda bu riskten muaf değil.",{"type":29,"tag":30,"props":69,"children":70},{},[71,73,78],{"type":34,"value":72},"AWS Lambda'nın güvenlik modeli, klasik \"çevre güvenliği\" anlayışından tamamen ",{"type":29,"tag":37,"props":74,"children":75},{},[76],{"type":34,"value":77},"kimlik ve kod bütünlüğü",{"type":34,"value":79}," temeline kaymış durumda. Bu rehberde Lambda'nın iç mimarisinden IAM rollerine, gizli bilgi yönetiminden ağ izolasyonuna kadar bulut güvenliği uzmanlarının uykularını kaçıran detayları ele alıyoruz.",{"type":29,"tag":81,"props":82,"children":85},"alert",{"title":83,"type":84},"Key Takeaways","info",[86],{"type":29,"tag":87,"props":88,"children":89},"ul",{},[90,104,116,129],{"type":29,"tag":91,"props":92,"children":93},"li",{},[94,96,102],{"type":34,"value":95},"Bulut ortamlarında verilen IAM izinlerinin %98'i hiç kullanılmıyor, bu da aşırı yetkili fonksiyonların patlama yarıçapını büyütüyor (",{"type":29,"tag":45,"props":97,"children":99},{"link":98},"https:\u002F\u002Fsysdig.com",[100],{"type":34,"value":101},"Sysdig 2024 Raporu",{"type":34,"value":103},", 2024).",{"type":29,"tag":91,"props":105,"children":106},{},[107,114],{"type":29,"tag":108,"props":109,"children":111},"code",{"className":110},[],[112],{"type":34,"value":113},"\u002Ftmp",{"type":34,"value":115}," dizini aynı yürütme ortamında sıcak başlangıçlar arasında kalıcıdır; hassas dosyaların işlendikten sonra silinmemesi veri sızıntısına yol açabilir.",{"type":29,"tag":91,"props":117,"children":118},{},[119,121,127],{"type":34,"value":120},"Lambda'nın ",{"type":29,"tag":108,"props":122,"children":124},{"className":123},[],[125],{"type":34,"value":126},"GetFunction",{"type":34,"value":128}," API'si, fonksiyon kod paketini indirmek için pre-signed URL döndürür; sabit kodlanmış anahtarlar dakikalar içinde ele geçirilebilir.",{"type":29,"tag":91,"props":130,"children":131},{},[132,134,139],{"type":34,"value":133},"Kritik fonksiyonlara ",{"type":29,"tag":37,"props":135,"children":136},{},[137],{"type":34,"value":138},"ayrılmış eşzamanlılık",{"type":34,"value":140}," tanımlamak, DoS saldırıları sırasında güvenlik izleme sistemlerinin çalışmaya devam etmesini sağlar.",{"type":29,"tag":142,"props":143,"children":145},"h2",{"id":144},"_1-lambda-hücresinin-anatomisi-paylaşımlı-sorumluluğun-sınırları",[146],{"type":34,"value":147},"1. Lambda Hücresinin Anatomisi: Paylaşımlı Sorumluluğun Sınırları?",{"type":29,"tag":30,"props":149,"children":150},{},[151],{"type":34,"value":152},"Bulut güvenliğinin temel taşı olan paylaşımlı sorumluluk modeli Lambda'da en uç noktaya ulaşır. AWS, Firecracker mikro VM'lerle izole edilmiş geçici bir ortam sunar; çalışma zamanını, işletim sistemini ve ağı yönetir. Ancak bu kutuya ne kod yazdığınız, hangi yetkileri verdiğiniz ve gelen veriyi nasıl karşıladığınız tamamen sizin sorumluluğunuzdadır.",{"type":29,"tag":30,"props":154,"children":155},{},[156,158,163,165,170,172,177],{"type":34,"value":157},"Buradaki en büyük yanılgı, sandbox ortamının kusursuz olduğu varsayımıdır. Bir Lambda fonksiyonu sonlandığında ",{"type":29,"tag":108,"props":159,"children":161},{"className":160},[],[162],{"type":34,"value":113},{"type":34,"value":164}," dizindeki veriler silinir, ancak aynı yürütme ortamı sıcak tutulup başka bir çağrı için kullanılırsa, önceki çağrıda ",{"type":29,"tag":108,"props":166,"children":168},{"className":167},[],[169],{"type":34,"value":113},{"type":34,"value":171}," altına yazılan dosyalar otomatik olarak temizlenmez. Hassas bir dosyanın sonraki çağrı tarafından okunması mümkün olabilir. Bu nedenle kodunuzu durumsuz yazmak ve hassas verileri asla ",{"type":29,"tag":108,"props":173,"children":175},{"className":174},[],[176],{"type":34,"value":113},{"type":34,"value":178},"'ye kalıcı olarak bırakmamak en büyük güvenlik prensibinizdir.",{"type":29,"tag":180,"props":181,"children":185},"pre",{"className":182,"code":183,"language":184,"meta":7,"style":7},"language-mermaid shiki shiki-themes catppuccin-latte one-dark-pro","sequenceDiagram\n    participant Client\n    participant Lambda Service\n    participant MicroVM\n\n    Client->>Lambda Service: İstek (Event)\n    Note over Lambda Service: 1. Yürütme Ortamını Başlat veya Mevcut Olanı Kullan\n    Lambda Service->>MicroVM: Kodu Yükle ve Handler'i Çağır\n    activate MicroVM\n    MicroVM-->>MicroVM: Ortam Değişkenlerini Çöz & IAM Rolünü Al\n    Note left of MicroVM: 2. Kod Çalışır (En fazla 15 dk)\n    MicroVM-->>MicroVM: \u002Ftmp'ye Geçici Dosya Yazabilir\n    MicroVM->>Lambda Service: Sonucu Döndür\n    deactivate MicroVM\n    Note over Lambda Service: 3. Ortamı Dondur veya Sonlandır\n    Lambda Service->>Client: Yanıt\n    Note right of Client: Risk: \u002Ftmp kalıntıları ve durumlu veri sızıntısı\n","mermaid",[186],{"type":29,"tag":108,"props":187,"children":188},{"__ignoreMap":7},[189,201,210,219,228,238,247,256,265,274,283,292,301,310,319,328,337],{"type":29,"tag":190,"props":191,"children":194},"span",{"class":192,"line":193},"line",1,[195],{"type":29,"tag":190,"props":196,"children":198},{"style":197},"--shiki-default:#4C4F69;--shiki-dark:#ABB2BF",[199],{"type":34,"value":200},"sequenceDiagram\n",{"type":29,"tag":190,"props":202,"children":204},{"class":192,"line":203},2,[205],{"type":29,"tag":190,"props":206,"children":207},{"style":197},[208],{"type":34,"value":209},"    participant Client\n",{"type":29,"tag":190,"props":211,"children":213},{"class":192,"line":212},3,[214],{"type":29,"tag":190,"props":215,"children":216},{"style":197},[217],{"type":34,"value":218},"    participant Lambda Service\n",{"type":29,"tag":190,"props":220,"children":222},{"class":192,"line":221},4,[223],{"type":29,"tag":190,"props":224,"children":225},{"style":197},[226],{"type":34,"value":227},"    participant MicroVM\n",{"type":29,"tag":190,"props":229,"children":231},{"class":192,"line":230},5,[232],{"type":29,"tag":190,"props":233,"children":235},{"emptyLinePlaceholder":234},true,[236],{"type":34,"value":237},"\n",{"type":29,"tag":190,"props":239,"children":241},{"class":192,"line":240},6,[242],{"type":29,"tag":190,"props":243,"children":244},{"style":197},[245],{"type":34,"value":246},"    Client->>Lambda Service: İstek (Event)\n",{"type":29,"tag":190,"props":248,"children":250},{"class":192,"line":249},7,[251],{"type":29,"tag":190,"props":252,"children":253},{"style":197},[254],{"type":34,"value":255},"    Note over Lambda Service: 1. Yürütme Ortamını Başlat veya Mevcut Olanı Kullan\n",{"type":29,"tag":190,"props":257,"children":259},{"class":192,"line":258},8,[260],{"type":29,"tag":190,"props":261,"children":262},{"style":197},[263],{"type":34,"value":264},"    Lambda Service->>MicroVM: Kodu Yükle ve Handler'i Çağır\n",{"type":29,"tag":190,"props":266,"children":268},{"class":192,"line":267},9,[269],{"type":29,"tag":190,"props":270,"children":271},{"style":197},[272],{"type":34,"value":273},"    activate MicroVM\n",{"type":29,"tag":190,"props":275,"children":277},{"class":192,"line":276},10,[278],{"type":29,"tag":190,"props":279,"children":280},{"style":197},[281],{"type":34,"value":282},"    MicroVM-->>MicroVM: Ortam Değişkenlerini Çöz & IAM Rolünü Al\n",{"type":29,"tag":190,"props":284,"children":286},{"class":192,"line":285},11,[287],{"type":29,"tag":190,"props":288,"children":289},{"style":197},[290],{"type":34,"value":291},"    Note left of MicroVM: 2. Kod Çalışır (En fazla 15 dk)\n",{"type":29,"tag":190,"props":293,"children":295},{"class":192,"line":294},12,[296],{"type":29,"tag":190,"props":297,"children":298},{"style":197},[299],{"type":34,"value":300},"    MicroVM-->>MicroVM: \u002Ftmp'ye Geçici Dosya Yazabilir\n",{"type":29,"tag":190,"props":302,"children":304},{"class":192,"line":303},13,[305],{"type":29,"tag":190,"props":306,"children":307},{"style":197},[308],{"type":34,"value":309},"    MicroVM->>Lambda Service: Sonucu Döndür\n",{"type":29,"tag":190,"props":311,"children":313},{"class":192,"line":312},14,[314],{"type":29,"tag":190,"props":315,"children":316},{"style":197},[317],{"type":34,"value":318},"    deactivate MicroVM\n",{"type":29,"tag":190,"props":320,"children":322},{"class":192,"line":321},15,[323],{"type":29,"tag":190,"props":324,"children":325},{"style":197},[326],{"type":34,"value":327},"    Note over Lambda Service: 3. Ortamı Dondur veya Sonlandır\n",{"type":29,"tag":190,"props":329,"children":331},{"class":192,"line":330},16,[332],{"type":29,"tag":190,"props":333,"children":334},{"style":197},[335],{"type":34,"value":336},"    Lambda Service->>Client: Yanıt\n",{"type":29,"tag":190,"props":338,"children":340},{"class":192,"line":339},17,[341],{"type":29,"tag":190,"props":342,"children":343},{"style":197},[344],{"type":34,"value":345},"    Note right of Client: Risk: \u002Ftmp kalıntıları ve durumlu veri sızıntısı\n",{"type":29,"tag":347,"props":348,"children":350},"quote",{"icon":349},"ph:shield-check-duotone",[351],{"type":29,"tag":30,"props":352,"children":353},{},[354,359,361,366,368,374],{"type":29,"tag":37,"props":355,"children":356},{},[357],{"type":34,"value":358},"Atıf Kapsülü:",{"type":34,"value":360}," AWS Firecracker mikro VM'leri her çağrıda bellek izolasyonu sağlar, ancak ",{"type":29,"tag":108,"props":362,"children":364},{"className":363},[],[365],{"type":34,"value":113},{"type":34,"value":367}," dizini aynı yürütme ortamında sıcak başlangıçlar arasında kalıcıdır (",{"type":29,"tag":45,"props":369,"children":371},{"link":370},"https:\u002F\u002Fdocs.aws.amazon.com\u002Flambda\u002Flatest\u002Fdg\u002Flambda-security.html",[372],{"type":34,"value":373},"AWS Lambda Güvenlik Dokümantasyonu",{"type":34,"value":375},", 2024). Bu nedenle durumsuz kod yazmak ve hassas dosyaları işlendikten hemen sonra silmek, veri sızıntısını önlemenin tek yoludur.",{"type":29,"tag":142,"props":377,"children":379},{"id":378},"_2-iam-labirenti-en-az-yetkiyi-vermenin-kritik-önemi",[380],{"type":34,"value":381},"2. IAM Labirenti: En Az Yetkiyi Vermenin Kritik Önemi?",{"type":29,"tag":30,"props":383,"children":384},{},[385,387,391,393,399],{"type":34,"value":386},"Bulut ortamlarında verilen tüm izinlerin yalnızca %2'si aktif olarak kullanılıyor (",{"type":29,"tag":45,"props":388,"children":389},{"link":98},[390],{"type":34,"value":101},{"type":34,"value":392},", 2024). Bu şu anlama geliyor: Lambda fonksiyonlarının büyük çoğunluğu hiç ihtiyaç duymadığı yetkilerle dolaşıyor. Lambda'nın en kritik güvenlik yapılandırması olan IAM Execution Role, kodunuzun AWS ekosisteminde neler yapabileceğini belirler. Bir saldırganın hayali, ",{"type":29,"tag":108,"props":394,"children":396},{"className":395},[],[397],{"type":34,"value":398},"\"*\"",{"type":34,"value":400}," yetkisine sahip bir Lambda'yı ele geçirip bu rolü kötüye kullanmaktır.",{"type":29,"tag":30,"props":402,"children":403},{},[404,409,411,417,419,425,427,433],{"type":29,"tag":37,"props":405,"children":406},{},[407],{"type":34,"value":408},"Ölümcül Senaryo:",{"type":34,"value":410}," Kullanıcıların profil fotoğraflarını S3'e yükleyen bir Lambda fonksiyonunuz olsun. Bu fonksiyonun rolüne yalnızca ",{"type":29,"tag":108,"props":412,"children":414},{"className":413},[],[415],{"type":34,"value":416},"s3:PutObject",{"type":34,"value":418}," yetkisi vermeniz gerekirken, test kolaylığı bahanesiyle ",{"type":29,"tag":108,"props":420,"children":422},{"className":421},[],[423],{"type":34,"value":424},"s3:*",{"type":34,"value":426}," veya ",{"type":29,"tag":108,"props":428,"children":430},{"className":429},[],[431],{"type":34,"value":432},"AdministratorAccess",{"type":34,"value":434}," tanımlarsanız, kodunuzdaki bir yol atlatma (path traversal) açığı saldırganın tüm S3 bucket'larınızı listelemesine ve silmesine olanak tanır.",{"type":29,"tag":347,"props":436,"children":438},{"icon":437},"ph:warning-circle-duotone",[439],{"type":29,"tag":30,"props":440,"children":441},{},[442,447,449,455,457,463],{"type":29,"tag":37,"props":443,"children":444},{},[445],{"type":34,"value":446},"Tipik Bir Denetim Senaryosu:",{"type":34,"value":448}," Yaygın olarak karşılaşılan bir durumda, bir Lambda fonksiyonunun ",{"type":29,"tag":108,"props":450,"children":452},{"className":451},[],[453],{"type":34,"value":454},"dynamodb:*",{"type":34,"value":456}," yetkisine sahip olduğu tespit edildi. Oysa fonksiyon yalnızca tek bir tabloya yazma yapıyordu. Yetki ",{"type":29,"tag":108,"props":458,"children":460},{"className":459},[],[461],{"type":34,"value":462},"dynamodb:PutItem",{"type":34,"value":464}," ile o tabloya kısıtlandığında hata yönetimi mekanizması bozuldu; geliştirici daha önce hata almamak için yetkileri geçici olarak yükseltmiş ve unutmuştu. Bu, en az yetki prensibinin ihmal edilmesinin tipik bir örneğidir.",{"type":29,"tag":30,"props":466,"children":467},{},[468,473,475,481,483,489,491,496,498,504],{"type":29,"tag":37,"props":469,"children":470},{},[471],{"type":34,"value":472},"Pratik Savunma:",{"type":34,"value":474}," IAM rollerini ",{"type":29,"tag":108,"props":476,"children":478},{"className":477},[],[479],{"type":34,"value":480},"Resource",{"type":34,"value":482}," ve ",{"type":29,"tag":108,"props":484,"children":486},{"className":485},[],[487],{"type":34,"value":488},"Condition",{"type":34,"value":490}," bloklarıyla olabildiğince daraltın. Örneğin yalnızca belirli bir bucket'a ve belirli bir prefix'e yazma izni verin. ",{"type":29,"tag":108,"props":492,"children":494},{"className":493},[],[495],{"type":34,"value":488},{"type":34,"value":497}," ile yalnızca belirli VPC'den gelen çağrılara izin verin. Joker karakter ",{"type":29,"tag":108,"props":499,"children":501},{"className":500},[],[502],{"type":34,"value":503},"*",{"type":34,"value":505}," kullanımını CI\u002FCD pipeline'ınızda otomatik taramalarla engelleyin.",{"type":29,"tag":347,"props":507,"children":509},{"icon":508},"ph:identification-badge-duotone",[510],{"type":29,"tag":30,"props":511,"children":512},{},[513,517,519,524],{"type":29,"tag":37,"props":514,"children":515},{},[516],{"type":34,"value":358},{"type":34,"value":518}," 2024 Sysdig raporuna göre bulut ortamlarında verilen IAM izinlerinin %98'i hiç kullanılmıyor (",{"type":29,"tag":45,"props":520,"children":521},{"link":98},[522],{"type":34,"value":523},"Sysdig",{"type":34,"value":525},", 2024). Bu durum, Lambda fonksiyonlarının neredeyse tamamının en az yetki prensibine aykırı yapılandırıldığını ve olası bir ihlalde saldırganın eline gereksiz yere geniş bir yetki seti geçeceğini gösteriyor.",{"type":29,"tag":142,"props":527,"children":529},{"id":528},"_3-tetikleyici-çığları-ve-olay-enjeksiyon-tehditleri",[530],{"type":34,"value":531},"3. Tetikleyici Çığları ve Olay Enjeksiyon Tehditleri?",{"type":29,"tag":30,"props":533,"children":534},{},[535,537,543,545,550],{"type":34,"value":536},"Lambda'nın doğası olay güdümlüdür. Bir S3 bucket'ına dosya yüklenmesi, bir API Gateway çağrısı veya bir SQS kuyruğuna mesaj düşmesi... Tüm bu olaylar Lambda'ya bir ",{"type":29,"tag":108,"props":538,"children":540},{"className":539},[],[541],{"type":34,"value":542},"event",{"type":34,"value":544}," nesnesi taşır. En büyük hata, bu ",{"type":29,"tag":108,"props":546,"children":548},{"className":547},[],[549],{"type":34,"value":542},{"type":34,"value":551}," nesnesinin güvenilir olduğunu varsaymaktır.",{"type":29,"tag":30,"props":553,"children":554},{},[555,557,563,565,570],{"type":34,"value":556},"Özellikle S3 tetikleyicilerinde durum kritiktir. Birisi bucket'ınıza ",{"type":29,"tag":108,"props":558,"children":560},{"className":559},[],[561],{"type":34,"value":562},"malicious_file.jpg'; DROP TABLE users; --",{"type":34,"value":564}," adında bir dosya yüklediğinde, dosya adı doğrudan Lambda'nın ",{"type":29,"tag":108,"props":566,"children":568},{"className":567},[],[569],{"type":34,"value":542},{"type":34,"value":571}," objesine gider. Bu dosya adını bir sistem komutunda veya SQL sorgusunda doğrudan kullanırsanız, komut enjeksiyonuna kapı açarsınız.",{"type":29,"tag":180,"props":573,"children":575},{"className":182,"code":574,"language":184,"meta":7,"style":7},"sequenceDiagram\n    participant Attacker\n    participant S3 Bucket\n    participant Lambda Function\n    participant Database\n\n    Attacker->>S3 Bucket: Kötü amaçlı dosya yükle (dosya adı enjeksiyon içeriyor)\n    S3 Bucket->>Lambda Function: Olay Tetikle (Event: {\"key\": \"dosya_adi\"})\n    Note over Lambda Function: Girdi Temizliği YAPILMAZSA\n    Lambda Function->>Database: SQL Sorgusu Çalıştır (Injection başarılı)\n    Database->>Attacker: Hassas Veriler Sızdırıldı\n    Note right of Attacker: Kural: Event'e körü körüne güvenme. \u003Cbr\u002F>Girdiyi doğrula ve temizle.\n",[576],{"type":29,"tag":108,"props":577,"children":578},{"__ignoreMap":7},[579,586,594,602,610,618,625,633,641,649,657,665],{"type":29,"tag":190,"props":580,"children":581},{"class":192,"line":193},[582],{"type":29,"tag":190,"props":583,"children":584},{"style":197},[585],{"type":34,"value":200},{"type":29,"tag":190,"props":587,"children":588},{"class":192,"line":203},[589],{"type":29,"tag":190,"props":590,"children":591},{"style":197},[592],{"type":34,"value":593},"    participant Attacker\n",{"type":29,"tag":190,"props":595,"children":596},{"class":192,"line":212},[597],{"type":29,"tag":190,"props":598,"children":599},{"style":197},[600],{"type":34,"value":601},"    participant S3 Bucket\n",{"type":29,"tag":190,"props":603,"children":604},{"class":192,"line":221},[605],{"type":29,"tag":190,"props":606,"children":607},{"style":197},[608],{"type":34,"value":609},"    participant Lambda Function\n",{"type":29,"tag":190,"props":611,"children":612},{"class":192,"line":230},[613],{"type":29,"tag":190,"props":614,"children":615},{"style":197},[616],{"type":34,"value":617},"    participant Database\n",{"type":29,"tag":190,"props":619,"children":620},{"class":192,"line":240},[621],{"type":29,"tag":190,"props":622,"children":623},{"emptyLinePlaceholder":234},[624],{"type":34,"value":237},{"type":29,"tag":190,"props":626,"children":627},{"class":192,"line":249},[628],{"type":29,"tag":190,"props":629,"children":630},{"style":197},[631],{"type":34,"value":632},"    Attacker->>S3 Bucket: Kötü amaçlı dosya yükle (dosya adı enjeksiyon içeriyor)\n",{"type":29,"tag":190,"props":634,"children":635},{"class":192,"line":258},[636],{"type":29,"tag":190,"props":637,"children":638},{"style":197},[639],{"type":34,"value":640},"    S3 Bucket->>Lambda Function: Olay Tetikle (Event: {\"key\": \"dosya_adi\"})\n",{"type":29,"tag":190,"props":642,"children":643},{"class":192,"line":267},[644],{"type":29,"tag":190,"props":645,"children":646},{"style":197},[647],{"type":34,"value":648},"    Note over Lambda Function: Girdi Temizliği YAPILMAZSA\n",{"type":29,"tag":190,"props":650,"children":651},{"class":192,"line":276},[652],{"type":29,"tag":190,"props":653,"children":654},{"style":197},[655],{"type":34,"value":656},"    Lambda Function->>Database: SQL Sorgusu Çalıştır (Injection başarılı)\n",{"type":29,"tag":190,"props":658,"children":659},{"class":192,"line":285},[660],{"type":29,"tag":190,"props":661,"children":662},{"style":197},[663],{"type":34,"value":664},"    Database->>Attacker: Hassas Veriler Sızdırıldı\n",{"type":29,"tag":190,"props":666,"children":667},{"class":192,"line":294},[668],{"type":29,"tag":190,"props":669,"children":670},{"style":197},[671],{"type":34,"value":672},"    Note right of Attacker: Kural: Event'e körü körüne güvenme. \u003Cbr\u002F>Girdiyi doğrula ve temizle.\n",{"type":29,"tag":30,"props":674,"children":675},{},[676],{"type":34,"value":677},"En basit çözüm, olay verisini işlemeden önce bir şema doğrulamasından geçirmektir. Beklediğiniz formatta olmayan hiçbir veri işlenmemelidir. Ayrıca fonksiyon kodunuzda hiçbir zaman kullanıcı girdisini doğrudan sistem komutuna veya SQL sorgusuna parametre olarak eklemeyin; her zaman parametreleştirilmiş sorgu kullanın.",{"type":29,"tag":347,"props":679,"children":681},{"icon":680},"ph:code-duotone",[682],{"type":29,"tag":30,"props":683,"children":684},{},[685,689,691,697],{"type":29,"tag":37,"props":686,"children":687},{},[688],{"type":34,"value":358},{"type":34,"value":690}," Event tetikleyicileri Lambda'nın en güçlü özelliği olsa da, doğrulanmamış girdi kabul etmek sunucusuz ortamlardaki en yaygın enjeksiyon açıklığıdır (",{"type":29,"tag":45,"props":692,"children":694},{"link":693},"https:\u002F\u002Fowasp.org\u002Fwww-project-serverless-top-10\u002F",[695],{"type":34,"value":696},"OWASP Serverless Top 10",{"type":34,"value":698},", 2024). Şema doğrulaması ve parametreleştirilmiş sorgular, bu saldırı yüzeyini kapatmanın en etkili iki yöntemidir.",{"type":29,"tag":142,"props":700,"children":702},{"id":701},"_4-gizli-bilgiler-nerede-saklanmalı-kod-ortam-değişkeni-ve-parametre-dükkanı",[703],{"type":34,"value":704},"4. Gizli Bilgiler Nerede Saklanmalı: Kod, Ortam Değişkeni ve Parametre Dükkanı?",{"type":29,"tag":30,"props":706,"children":707},{},[708,710,716],{"type":34,"value":709},"Lambda güvenliğinin en kanayan yarasıdır: \"Nasıl olsa kimse görmez\" mantığıyla API anahtarlarını veya veritabanı bağlantı cümlelerini doğrudan koda gömmek. 2023 yılında GitHub'a 12.8 milyon gizli bilgi (secret) sızdırıldı; bu bir önceki yıla göre %28 artış anlamına geliyor (",{"type":29,"tag":45,"props":711,"children":713},{"link":712},"https:\u002F\u002Fblog.gitguardian.com\u002Fthe-state-of-secrets-sprawl-2024\u002F",[714],{"type":34,"value":715},"GitGuardian 2024 Raporu",{"type":34,"value":717},", 2024). AWS Lambda da bu riskten muaf değil.",{"type":29,"tag":30,"props":719,"children":720},{},[721,726,728,734,736,742],{"type":29,"tag":37,"props":722,"children":723},{},[724],{"type":34,"value":725},"Kod İndirme Tehdidi:",{"type":34,"value":727}," ",{"type":29,"tag":108,"props":729,"children":731},{"className":730},[],[732],{"type":34,"value":733},"lambda:GetFunction",{"type":34,"value":735}," API iznine sahip herhangi bir kimlik, fonksiyonun kaynak kod paketini indirmek için geçici bir S3 URL'si alabilir. Saldırgan bu ZIP dosyasını indirir ve ",{"type":29,"tag":108,"props":737,"children":739},{"className":738},[],[740],{"type":34,"value":741},"grep",{"type":34,"value":743}," ile tarar. Bir dakikadan kısa sürede tüm sabitlenmiş anahtarlara ulaşır.",{"type":29,"tag":30,"props":745,"children":746},{},[747,752,754,760],{"type":29,"tag":37,"props":748,"children":749},{},[750],{"type":34,"value":751},"Ortam Değişkenleri:",{"type":34,"value":753}," Bekleme anında KMS ile şifrelenir. Ancak fonksiyon çalıştığı anda düz metin olarak belleğe yüklenir. Kodunuzda ",{"type":29,"tag":108,"props":755,"children":757},{"className":756},[],[758],{"type":34,"value":759},"print(os.environ)",{"type":34,"value":761}," gibi bir debug satırı bırakırsanız tüm sırlarınız CloudWatch Logs'a düşer. Log okuma yetkisi olan herkes bu verileri görebilir.",{"type":29,"tag":30,"props":763,"children":764},{},[765,770,772,777,778,783],{"type":29,"tag":37,"props":766,"children":767},{},[768],{"type":34,"value":769},"Doğru Çözüm:",{"type":34,"value":771}," Parolalar, token'lar ve bağlantı cümleleri için ",{"type":29,"tag":37,"props":773,"children":774},{},[775],{"type":34,"value":776},"AWS Secrets Manager",{"type":34,"value":426},{"type":29,"tag":37,"props":779,"children":780},{},[781],{"type":34,"value":782},"SSM Parameter Store (SecureString)",{"type":34,"value":784}," kullanın. Kod içinde bu servislere çalışma zamanında bağlanarak gizli bilgileri alın. Bu yöntem hem kodu hem de konfigürasyonu dışarıdan gelebilecek sızıntılara karşı korur.",{"type":29,"tag":81,"props":786,"children":789},{"title":787,"type":788},"Beklenmedik Saldırı Yüzeyi","warning",[790],{"type":29,"tag":30,"props":791,"children":792},{},[793,795,801],{"type":34,"value":794},"Ortam değişkenleri yalnızca loglara yanlışlıkla yazdırıldığında değil, ",{"type":29,"tag":108,"props":796,"children":798},{"className":797},[],[799],{"type":34,"value":800},"lambda:GetFunctionConfiguration",{"type":34,"value":802}," API'si çağrıldığında da düz metin olarak döner. Bu API genellikle CI\u002FCD araçlarına verilir ve gözden kaçan bir yetki genişlemesiyle tüm ortam değişkenleriniz okunabilir hale gelir.",{"type":29,"tag":347,"props":804,"children":806},{"icon":805},"ph:key-duotone",[807],{"type":29,"tag":30,"props":808,"children":809},{},[810,814,816,821,823,829],{"type":29,"tag":37,"props":811,"children":812},{},[813],{"type":34,"value":358},{"type":34,"value":815}," AWS Lambda ortam değişkenleri KMS ile şifrelense de, ",{"type":29,"tag":108,"props":817,"children":819},{"className":818},[],[820],{"type":34,"value":800},{"type":34,"value":822}," API'si ve CloudWatch loglama yoluyla düz metin olarak ifşa olabilir (",{"type":29,"tag":45,"props":824,"children":826},{"link":825},"https:\u002F\u002Fdocs.aws.amazon.com\u002Flambda\u002Flatest\u002Fdg\u002FAPI_GetFunctionConfiguration.html",[827],{"type":34,"value":828},"AWS Lambda API Referansı",{"type":34,"value":830},", 2024). Secrets Manager veya SSM Parameter Store kullanmak, gizli bilgileri hem koddan hem de ortam değişkenlerinden soyutlayarak bu riski ortadan kaldırır.",{"type":29,"tag":142,"props":832,"children":834},{"id":833},"_5-ağ-labirentine-yolculuk-vpc-i̇çinde-ve-dışında-güvenlik",[835],{"type":34,"value":836},"5. Ağ Labirentine Yolculuk: VPC İçinde ve Dışında Güvenlik?",{"type":29,"tag":30,"props":838,"children":839},{},[840],{"type":34,"value":841},"Varsayılan olarak Lambda, AWS'nin kendi yönettiği genel bir ağda çalışır ve internete doğrudan çıkabilir. Ancak RDS veya ElastiCache gibi özel kaynaklara erişmek için Lambda'yı Sanal Özel Bulut'a bağlamanız gerekir.",{"type":29,"tag":30,"props":843,"children":844},{},[845],{"type":34,"value":846},"Bu bağlantı sırasında Lambda'nın yürütme ortamına bir Elastic Network Interface bağlanır ve fonksiyonunuz özel bir IP alır. Güvenlik gruplarını yanlış yapılandırmak, saldırgana iç ağınızda bir atlama noktası kazandırır.",{"type":29,"tag":180,"props":848,"children":850},{"className":182,"code":849,"language":184,"meta":7,"style":7},"graph TD\n    subgraph Internet\n        User[Meşru Kullanıcı \u002F Saldırgan]\n    end\n\n    subgraph AWS Cloud\n        IG[Internet Gateway]\n        \n        subgraph VPC\n            PrivateSubnet[Özel Alt Ağ - Veritabanı Katmanı]\n            LambdaSubnet[Özel Alt Ağ - Lambda]\n            \n            LambdaFunc[AWS Lambda Fonksiyonu]\n            RDS[(RDS Veritabanı)]\n            \n            NAT[NAT Gateway]\n        end\n\n        User -- HTTP\u002FTLS --> IG\n        IG -- Güvenlik Grubu İzni --> LambdaSubnet\n        LambdaFunc -- Veritabanı Bağlantısı --> RDS\n        LambdaFunc -- İnternet Çıkışı --> NAT\n    end\n    style LambdaFunc fill:#FF9900,stroke:#232F3E,stroke-width:1px\n    style User fill:#999,stroke:#555,stroke-width:1px\n",[851],{"type":29,"tag":108,"props":852,"children":853},{"__ignoreMap":7},[854,862,870,878,886,893,901,909,917,925,933,941,949,957,965,972,980,988,996,1005,1014,1023,1032,1040,1049],{"type":29,"tag":190,"props":855,"children":856},{"class":192,"line":193},[857],{"type":29,"tag":190,"props":858,"children":859},{"style":197},[860],{"type":34,"value":861},"graph TD\n",{"type":29,"tag":190,"props":863,"children":864},{"class":192,"line":203},[865],{"type":29,"tag":190,"props":866,"children":867},{"style":197},[868],{"type":34,"value":869},"    subgraph Internet\n",{"type":29,"tag":190,"props":871,"children":872},{"class":192,"line":212},[873],{"type":29,"tag":190,"props":874,"children":875},{"style":197},[876],{"type":34,"value":877},"        User[Meşru Kullanıcı \u002F Saldırgan]\n",{"type":29,"tag":190,"props":879,"children":880},{"class":192,"line":221},[881],{"type":29,"tag":190,"props":882,"children":883},{"style":197},[884],{"type":34,"value":885},"    end\n",{"type":29,"tag":190,"props":887,"children":888},{"class":192,"line":230},[889],{"type":29,"tag":190,"props":890,"children":891},{"emptyLinePlaceholder":234},[892],{"type":34,"value":237},{"type":29,"tag":190,"props":894,"children":895},{"class":192,"line":240},[896],{"type":29,"tag":190,"props":897,"children":898},{"style":197},[899],{"type":34,"value":900},"    subgraph AWS Cloud\n",{"type":29,"tag":190,"props":902,"children":903},{"class":192,"line":249},[904],{"type":29,"tag":190,"props":905,"children":906},{"style":197},[907],{"type":34,"value":908},"        IG[Internet Gateway]\n",{"type":29,"tag":190,"props":910,"children":911},{"class":192,"line":258},[912],{"type":29,"tag":190,"props":913,"children":914},{"style":197},[915],{"type":34,"value":916},"        \n",{"type":29,"tag":190,"props":918,"children":919},{"class":192,"line":267},[920],{"type":29,"tag":190,"props":921,"children":922},{"style":197},[923],{"type":34,"value":924},"        subgraph VPC\n",{"type":29,"tag":190,"props":926,"children":927},{"class":192,"line":276},[928],{"type":29,"tag":190,"props":929,"children":930},{"style":197},[931],{"type":34,"value":932},"            PrivateSubnet[Özel Alt Ağ - Veritabanı Katmanı]\n",{"type":29,"tag":190,"props":934,"children":935},{"class":192,"line":285},[936],{"type":29,"tag":190,"props":937,"children":938},{"style":197},[939],{"type":34,"value":940},"            LambdaSubnet[Özel Alt Ağ - Lambda]\n",{"type":29,"tag":190,"props":942,"children":943},{"class":192,"line":294},[944],{"type":29,"tag":190,"props":945,"children":946},{"style":197},[947],{"type":34,"value":948},"            \n",{"type":29,"tag":190,"props":950,"children":951},{"class":192,"line":303},[952],{"type":29,"tag":190,"props":953,"children":954},{"style":197},[955],{"type":34,"value":956},"            LambdaFunc[AWS Lambda Fonksiyonu]\n",{"type":29,"tag":190,"props":958,"children":959},{"class":192,"line":312},[960],{"type":29,"tag":190,"props":961,"children":962},{"style":197},[963],{"type":34,"value":964},"            RDS[(RDS Veritabanı)]\n",{"type":29,"tag":190,"props":966,"children":967},{"class":192,"line":321},[968],{"type":29,"tag":190,"props":969,"children":970},{"style":197},[971],{"type":34,"value":948},{"type":29,"tag":190,"props":973,"children":974},{"class":192,"line":330},[975],{"type":29,"tag":190,"props":976,"children":977},{"style":197},[978],{"type":34,"value":979},"            NAT[NAT Gateway]\n",{"type":29,"tag":190,"props":981,"children":982},{"class":192,"line":339},[983],{"type":29,"tag":190,"props":984,"children":985},{"style":197},[986],{"type":34,"value":987},"        end\n",{"type":29,"tag":190,"props":989,"children":991},{"class":192,"line":990},18,[992],{"type":29,"tag":190,"props":993,"children":994},{"emptyLinePlaceholder":234},[995],{"type":34,"value":237},{"type":29,"tag":190,"props":997,"children":999},{"class":192,"line":998},19,[1000],{"type":29,"tag":190,"props":1001,"children":1002},{"style":197},[1003],{"type":34,"value":1004},"        User -- HTTP\u002FTLS --> IG\n",{"type":29,"tag":190,"props":1006,"children":1008},{"class":192,"line":1007},20,[1009],{"type":29,"tag":190,"props":1010,"children":1011},{"style":197},[1012],{"type":34,"value":1013},"        IG -- Güvenlik Grubu İzni --> LambdaSubnet\n",{"type":29,"tag":190,"props":1015,"children":1017},{"class":192,"line":1016},21,[1018],{"type":29,"tag":190,"props":1019,"children":1020},{"style":197},[1021],{"type":34,"value":1022},"        LambdaFunc -- Veritabanı Bağlantısı --> RDS\n",{"type":29,"tag":190,"props":1024,"children":1026},{"class":192,"line":1025},22,[1027],{"type":29,"tag":190,"props":1028,"children":1029},{"style":197},[1030],{"type":34,"value":1031},"        LambdaFunc -- İnternet Çıkışı --> NAT\n",{"type":29,"tag":190,"props":1033,"children":1035},{"class":192,"line":1034},23,[1036],{"type":29,"tag":190,"props":1037,"children":1038},{"style":197},[1039],{"type":34,"value":885},{"type":29,"tag":190,"props":1041,"children":1043},{"class":192,"line":1042},24,[1044],{"type":29,"tag":190,"props":1045,"children":1046},{"style":197},[1047],{"type":34,"value":1048},"    style LambdaFunc fill:#FF9900,stroke:#232F3E,stroke-width:1px\n",{"type":29,"tag":190,"props":1050,"children":1052},{"class":192,"line":1051},25,[1053],{"type":29,"tag":190,"props":1054,"children":1055},{"style":197},[1056],{"type":34,"value":1057},"    style User fill:#999,stroke:#555,stroke-width:1px\n",{"type":29,"tag":30,"props":1059,"children":1060},{},[1061,1063,1069],{"type":34,"value":1062},"Burada dikkat edilmesi gereken temel nokta, Lambda'ya hem NAT üzerinden internete çıkış hem de veritabanına erişim verirken güvenlik grubu kurallarını mümkün olan en dar şekilde yazmaktır. Veritabanı portuna ",{"type":29,"tag":108,"props":1064,"children":1066},{"className":1065},[],[1067],{"type":34,"value":1068},"0.0.0.0\u002F0",{"type":34,"value":1070},"'dan erişime izin vermek tüm ağ izolasyonunu yok eder.",{"type":29,"tag":347,"props":1072,"children":1074},{"icon":1073},"ph:globe-duotone",[1075],{"type":29,"tag":30,"props":1076,"children":1077},{},[1078,1082,1084,1090],{"type":29,"tag":37,"props":1079,"children":1080},{},[1081],{"type":34,"value":358},{"type":34,"value":1083}," AWS Lambda VPC entegrasyonu, her alt ağda bir ENI oluşturarak fonksiyonun özel kaynaklara erişmesini sağlar, ancak güvenlik gruplarının aşırı geniş tanımlanması, Lambda'yı iç ağa yönelik saldırılarda bir pivot noktası haline getirebilir (",{"type":29,"tag":45,"props":1085,"children":1087},{"link":1086},"https:\u002F\u002Fdocs.aws.amazon.com\u002Flambda\u002Flatest\u002Fdg\u002Fconfiguration-vpc.html",[1088],{"type":34,"value":1089},"AWS VPC Dokümantasyonu",{"type":34,"value":103},{"type":29,"tag":142,"props":1092,"children":1094},{"id":1093},"_6-operasyonel-savaş-alanı-eşzamanlılık-ve-hizmet-reddi",[1095],{"type":34,"value":1096},"6. Operasyonel Savaş Alanı: Eşzamanlılık ve Hizmet Reddi?",{"type":29,"tag":30,"props":1098,"children":1099},{},[1100,1102,1108],{"type":34,"value":1101},"Lambda, varsayılan olarak bölge başına 1000 eşzamanlı yürütme limitiyle çalışır (",{"type":29,"tag":45,"props":1103,"children":1105},{"link":1104},"https:\u002F\u002Fdocs.aws.amazon.com\u002Flambda\u002Flatest\u002Fdg\u002Flambda-concurrency.html",[1106],{"type":34,"value":1107},"AWS Lambda Kotaları",{"type":34,"value":1109},", 2024). Bir saldırgan maliyetlerinizi şişirmek veya güvenlik izleme sistemlerinizi devre dışı bırakmak için bu limiti hedef alabilir.",{"type":29,"tag":30,"props":1111,"children":1112},{},[1113],{"type":34,"value":1114},"Saldırgan saniyede binlerce istek göndererek bölgesel limitinizi doldurmayı hedefler. Başarılı olursa aynı hesaptaki meşru fonksiyonlarınız kısılmaya başlar. Kritik olan şu: Saldırı tespit ve engelleme mantığınız da Lambda'da çalışıyorsa kendinizi tamamen kör etmiş olursunuz.",{"type":29,"tag":180,"props":1116,"children":1118},{"className":182,"code":1117,"language":184,"meta":7,"style":7},"graph LR\n    subgraph Saldırgan Altyapısı\n        Bot1[Bot 1]\n        Bot2[Bot 2]\n        Bot3[Bot N]\n    end\n\n    subgraph AWS Bölgesi\n        Limit[Eşzamanlılık Limiti: 1000]\n        \n        Bot1 & Bot2 & Bot3 -- Yüksek Frekanslı Sahte İstekler --> LambdaGiris\n        \n        subgraph Lambda Servisi\n            LambdaGiris[Lambda API]\n            Islem[Yürütme Birimleri]\n        end\n\n        LambdaGiris -- Limit Aşıldı --> Islem\n        Islem -- Kısıtlandı (Throttle) --> MesruKullanici\n    end\n    \n    style Limit fill:#f9f,stroke:#333,stroke-width:2px\n    style MesruKullanici fill:#9f9,stroke:#333,stroke-width:2px\n",[1119],{"type":29,"tag":108,"props":1120,"children":1121},{"__ignoreMap":7},[1122,1130,1138,1146,1154,1162,1169,1176,1184,1192,1199,1207,1214,1222,1230,1238,1245,1252,1260,1268,1275,1283,1291],{"type":29,"tag":190,"props":1123,"children":1124},{"class":192,"line":193},[1125],{"type":29,"tag":190,"props":1126,"children":1127},{"style":197},[1128],{"type":34,"value":1129},"graph LR\n",{"type":29,"tag":190,"props":1131,"children":1132},{"class":192,"line":203},[1133],{"type":29,"tag":190,"props":1134,"children":1135},{"style":197},[1136],{"type":34,"value":1137},"    subgraph Saldırgan Altyapısı\n",{"type":29,"tag":190,"props":1139,"children":1140},{"class":192,"line":212},[1141],{"type":29,"tag":190,"props":1142,"children":1143},{"style":197},[1144],{"type":34,"value":1145},"        Bot1[Bot 1]\n",{"type":29,"tag":190,"props":1147,"children":1148},{"class":192,"line":221},[1149],{"type":29,"tag":190,"props":1150,"children":1151},{"style":197},[1152],{"type":34,"value":1153},"        Bot2[Bot 2]\n",{"type":29,"tag":190,"props":1155,"children":1156},{"class":192,"line":230},[1157],{"type":29,"tag":190,"props":1158,"children":1159},{"style":197},[1160],{"type":34,"value":1161},"        Bot3[Bot N]\n",{"type":29,"tag":190,"props":1163,"children":1164},{"class":192,"line":240},[1165],{"type":29,"tag":190,"props":1166,"children":1167},{"style":197},[1168],{"type":34,"value":885},{"type":29,"tag":190,"props":1170,"children":1171},{"class":192,"line":249},[1172],{"type":29,"tag":190,"props":1173,"children":1174},{"emptyLinePlaceholder":234},[1175],{"type":34,"value":237},{"type":29,"tag":190,"props":1177,"children":1178},{"class":192,"line":258},[1179],{"type":29,"tag":190,"props":1180,"children":1181},{"style":197},[1182],{"type":34,"value":1183},"    subgraph AWS Bölgesi\n",{"type":29,"tag":190,"props":1185,"children":1186},{"class":192,"line":267},[1187],{"type":29,"tag":190,"props":1188,"children":1189},{"style":197},[1190],{"type":34,"value":1191},"        Limit[Eşzamanlılık Limiti: 1000]\n",{"type":29,"tag":190,"props":1193,"children":1194},{"class":192,"line":276},[1195],{"type":29,"tag":190,"props":1196,"children":1197},{"style":197},[1198],{"type":34,"value":916},{"type":29,"tag":190,"props":1200,"children":1201},{"class":192,"line":285},[1202],{"type":29,"tag":190,"props":1203,"children":1204},{"style":197},[1205],{"type":34,"value":1206},"        Bot1 & Bot2 & Bot3 -- Yüksek Frekanslı Sahte İstekler --> LambdaGiris\n",{"type":29,"tag":190,"props":1208,"children":1209},{"class":192,"line":294},[1210],{"type":29,"tag":190,"props":1211,"children":1212},{"style":197},[1213],{"type":34,"value":916},{"type":29,"tag":190,"props":1215,"children":1216},{"class":192,"line":303},[1217],{"type":29,"tag":190,"props":1218,"children":1219},{"style":197},[1220],{"type":34,"value":1221},"        subgraph Lambda Servisi\n",{"type":29,"tag":190,"props":1223,"children":1224},{"class":192,"line":312},[1225],{"type":29,"tag":190,"props":1226,"children":1227},{"style":197},[1228],{"type":34,"value":1229},"            LambdaGiris[Lambda API]\n",{"type":29,"tag":190,"props":1231,"children":1232},{"class":192,"line":321},[1233],{"type":29,"tag":190,"props":1234,"children":1235},{"style":197},[1236],{"type":34,"value":1237},"            Islem[Yürütme Birimleri]\n",{"type":29,"tag":190,"props":1239,"children":1240},{"class":192,"line":330},[1241],{"type":29,"tag":190,"props":1242,"children":1243},{"style":197},[1244],{"type":34,"value":987},{"type":29,"tag":190,"props":1246,"children":1247},{"class":192,"line":339},[1248],{"type":29,"tag":190,"props":1249,"children":1250},{"emptyLinePlaceholder":234},[1251],{"type":34,"value":237},{"type":29,"tag":190,"props":1253,"children":1254},{"class":192,"line":990},[1255],{"type":29,"tag":190,"props":1256,"children":1257},{"style":197},[1258],{"type":34,"value":1259},"        LambdaGiris -- Limit Aşıldı --> Islem\n",{"type":29,"tag":190,"props":1261,"children":1262},{"class":192,"line":998},[1263],{"type":29,"tag":190,"props":1264,"children":1265},{"style":197},[1266],{"type":34,"value":1267},"        Islem -- Kısıtlandı (Throttle) --> MesruKullanici\n",{"type":29,"tag":190,"props":1269,"children":1270},{"class":192,"line":1007},[1271],{"type":29,"tag":190,"props":1272,"children":1273},{"style":197},[1274],{"type":34,"value":885},{"type":29,"tag":190,"props":1276,"children":1277},{"class":192,"line":1016},[1278],{"type":29,"tag":190,"props":1279,"children":1280},{"style":197},[1281],{"type":34,"value":1282},"    \n",{"type":29,"tag":190,"props":1284,"children":1285},{"class":192,"line":1025},[1286],{"type":29,"tag":190,"props":1287,"children":1288},{"style":197},[1289],{"type":34,"value":1290},"    style Limit fill:#f9f,stroke:#333,stroke-width:2px\n",{"type":29,"tag":190,"props":1292,"children":1293},{"class":192,"line":1034},[1294],{"type":29,"tag":190,"props":1295,"children":1296},{"style":197},[1297],{"type":34,"value":1298},"    style MesruKullanici fill:#9f9,stroke:#333,stroke-width:2px\n",{"type":29,"tag":30,"props":1300,"children":1301},{},[1302,1307,1309,1313],{"type":29,"tag":37,"props":1303,"children":1304},{},[1305],{"type":34,"value":1306},"Kalkanınız:",{"type":34,"value":1308}," Kritik öneme sahip fonksiyonlara (güvenlik, olay müdahalesi, sağlık kontrolü) ",{"type":29,"tag":37,"props":1310,"children":1311},{},[1312],{"type":34,"value":138},{"type":34,"value":1314}," tanımlayın. Böylece saldırı sırasında diğer fonksiyonlar kısılsa bile kritik olanlar çalışmaya devam eder. Bu, sunucusuz dünyada \"kaynak garantisi\" sağlamanın en etkili yoludur.",{"type":29,"tag":347,"props":1316,"children":1318},{"icon":1317},"ph:shield-plus-duotone",[1319],{"type":29,"tag":30,"props":1320,"children":1321},{},[1322,1326,1328,1334],{"type":29,"tag":37,"props":1323,"children":1324},{},[1325],{"type":34,"value":358},{"type":34,"value":1327}," AWS Lambda'da ayrılmış eşzamanlılık (reserved concurrency), belirli bir fonksiyonun kullanabileceği maksimum yürütme sayısını garanti altına alarak DoS saldırıları sırasında dahi kritik iş yüklerinin çalışmasını sürdürmesini sağlar (",{"type":29,"tag":45,"props":1329,"children":1331},{"link":1330},"https:\u002F\u002Fdocs.aws.amazon.com\u002Flambda\u002Flatest\u002Fdg\u002Fconfiguration-concurrency.html",[1332],{"type":34,"value":1333},"AWS Lambda Geliştirici Rehberi",{"type":34,"value":103},{"type":29,"tag":142,"props":1336,"children":1338},{"id":1337},"_7-tedarik-zinciri-tehditleri-lambda-katmanları",[1339],{"type":34,"value":1340},"7. Tedarik Zinciri Tehditleri: Lambda Katmanları?",{"type":29,"tag":30,"props":1342,"children":1343},{},[1344,1346,1352],{"type":34,"value":1345},"Ortak kod ve kütüphaneleri paylaşan Lambda Katmanları, geliştirme hızını artırırken sessiz bir tehdit de oluşturur. Katmanlar salt okunur olarak ",{"type":29,"tag":108,"props":1347,"children":1349},{"className":1348},[],[1350],{"type":34,"value":1351},"\u002Fopt",{"type":34,"value":1353}," dizinine bağlanır ve birden fazla fonksiyon tarafından kullanılır. Eğer CI\u002FCD pipeline'ınızda bu katmanı güncelleyen mekanizma yeterince korunmuyorsa, saldırgan tek bir katman güncellemesiyle yüzlerce fonksiyona zararlı kod enjekte edebilir.",{"type":29,"tag":30,"props":1355,"children":1356},{},[1357],{"type":34,"value":1358},"Lambda'nın yerleşik kod bütünlüğü kontrolleri genellikle doğrudan yüklenen ZIP dosyasına odaklanır; katman içeriğindeki küçük bir değişiklik fark edilmeyebilir. Ayrıca üçüncü parti katmanlar kullanıyorsanız, bu katmanların güncellemelerini düzenli olarak taramak ve bağımlılık güvenlik açıklarını denetlemek sizin sorumluluğunuzdadır.",{"type":29,"tag":81,"props":1360,"children":1363},{"title":1361,"type":1362},"İç Tehdit Riski","error",[1364],{"type":29,"tag":30,"props":1365,"children":1366},{},[1367,1369,1375],{"type":34,"value":1368},"Katmanların bir diğer az bilinen riski: ",{"type":29,"tag":108,"props":1370,"children":1372},{"className":1371},[],[1373],{"type":34,"value":1374},"lambda:PublishLayerVersion",{"type":34,"value":1376}," yetkisi genellikle geliştiricilere geniş kapsamlı verilir. Bu yetkiyi kötüye kullanan bir iç tehdit (veya çalınan bir credential), mevcut bir katmanın yeni bir sürümünü yayınlayarak tüm bağlı fonksiyonlara arka kapı yerleştirebilir.",{"type":29,"tag":1378,"props":1379,"children":1380},"hr",{},[],{"type":29,"tag":142,"props":1382,"children":1384},{"id":1383},"_8-gözetim-ve-tespit-loglama-ve-i̇zleme-stratejisi",[1385],{"type":34,"value":1386},"8. Gözetim ve Tespit: Loglama ve İzleme Stratejisi?",{"type":29,"tag":30,"props":1388,"children":1389},{},[1390,1392,1398,1399,1405,1407,1413],{"type":34,"value":1391},"Lambda güvenliğinin en çok ihmal edilen ayağı loglama ve izlemedir. Tüm Lambda fonksiyonları ",{"type":29,"tag":108,"props":1393,"children":1395},{"className":1394},[],[1396],{"type":34,"value":1397},"stdout",{"type":34,"value":482},{"type":29,"tag":108,"props":1400,"children":1402},{"className":1401},[],[1403],{"type":34,"value":1404},"stderr",{"type":34,"value":1406}," çıktılarını otomatik olarak CloudWatch Logs'a yazar; log grubu adı ",{"type":29,"tag":108,"props":1408,"children":1410},{"className":1409},[],[1411],{"type":34,"value":1412},"\u002Faws\u002Flambda\u002F\u003Cfonksiyon-adi>",{"type":34,"value":1414}," formatındadır ve değiştirilemez. Bu loglar güvenlik olaylarını tespit etmek için en değerli kaynağınızdır, ancak aynı zamanda hassas veri sızdırmanın da en kolay yoludur.",{"type":29,"tag":30,"props":1416,"children":1417},{},[1418,1423],{"type":29,"tag":37,"props":1419,"children":1420},{},[1421],{"type":34,"value":1422},"Güvenlik İzleme İçin CloudWatch Logs:",{"type":34,"value":1424}," Lambda loglarınızı CloudWatch Logs Insights ile sorgulayarak anormal çağrı desenlerini, başarısız kimlik doğrulamalarını veya beklenmedik hata mesajlarını tespit edebilirsiniz. Örneğin, bir fonksiyonun normalden 10 kat fazla çağrıldığını veya yürütme süresinin aniden uzadığını fark etmek bir güvenlik olayının erken sinyali olabilir.",{"type":29,"tag":30,"props":1426,"children":1427},{},[1428,1433,1434,1440,1441,1447],{"type":29,"tag":37,"props":1429,"children":1430},{},[1431],{"type":34,"value":1432},"Hassas Veri Sızıntısına Karşı Filtreleme:",{"type":34,"value":727},{"type":29,"tag":108,"props":1435,"children":1437},{"className":1436},[],[1438],{"type":34,"value":1439},"print()",{"type":34,"value":426},{"type":29,"tag":108,"props":1442,"children":1444},{"className":1443},[],[1445],{"type":34,"value":1446},"console.log()",{"type":34,"value":1448}," ile yanlışlıkla loglanan API anahtarlarını, kredi kartı numaralarını veya kişisel verileri tespit etmek için CloudWatch Logs'ta veri koruma politikaları (data protection policies) tanımlayabilirsiniz. AWS, yerleşik olarak PII ve finansal veri desenlerini tarar ve ihlalleri maskeleyebilir.",{"type":29,"tag":30,"props":1450,"children":1451},{},[1452,1457,1459,1465,1466,1472],{"type":29,"tag":37,"props":1453,"children":1454},{},[1455],{"type":34,"value":1456},"CloudTrail Entegrasyonu:",{"type":34,"value":1458}," Lambda API çağrıları (fonksiyon oluşturma, güncelleme, silme, çağırma) AWS CloudTrail tarafından otomatik olarak kaydedilir. ",{"type":29,"tag":108,"props":1460,"children":1462},{"className":1461},[],[1463],{"type":34,"value":1464},"lambda:UpdateFunctionCode",{"type":34,"value":426},{"type":29,"tag":108,"props":1467,"children":1469},{"className":1468},[],[1470],{"type":34,"value":1471},"lambda:AddPermission",{"type":34,"value":1473}," gibi kritik API çağrılarını CloudTrail üzerinde alarm olarak tanımlamak, yetkisiz değişiklikleri dakikalar içinde tespit etmenizi sağlar.",{"type":29,"tag":347,"props":1475,"children":1477},{"icon":1476},"ph:database-duotone",[1478],{"type":29,"tag":30,"props":1479,"children":1480},{},[1481,1485,1487,1493],{"type":29,"tag":37,"props":1482,"children":1483},{},[1484],{"type":34,"value":358},{"type":34,"value":1486}," Bulut güvenlik ihlallerinin %31'i yanlış yapılandırmalardan kaynaklanırken, bunların büyük kısmı loglama ve izleme eksikliği nedeniyle haftalarca fark edilmez (",{"type":29,"tag":45,"props":1488,"children":1490},{"link":1489},"https:\u002F\u002Fcloudsecurityalliance.org\u002Fresearch\u002Ftop-threats",[1491],{"type":34,"value":1492},"Cloud Security Alliance Top Threats",{"type":34,"value":1494},", 2024). Lambda ortamında CloudWatch Logs ve CloudTrail entegrasyonu, tespit süresini dakikalara indirebilir.",{"type":29,"tag":142,"props":1496,"children":1498},{"id":1497},"sonuç-görünmez-olanı-savunmak",[1499],{"type":34,"value":1500},"Sonuç: Görünmez Olanı Savunmak",{"type":29,"tag":30,"props":1502,"children":1503},{},[1504],{"type":34,"value":1505},"AWS Lambda, doğru yapılandırıldığında geleneksel sunuculardan çok daha güvenli olabilir çünkü saldırı yüzeyi küçülmüştür. Ancak yanlış yapılandırıldığında patlama yarıçapı bir o kadar büyük olur. Bulut ortamlarında verilen izinlerin %98'inin hiç kullanılmadığı düşünülürse, çoğu Lambda fonksiyonunun hala gereksiz risk taşıdığını söylemek yanlış olmaz.",{"type":29,"tag":30,"props":1507,"children":1508},{},[1509],{"type":34,"value":1510},"Sunucusuz güvenlikte başarılı olmak için şu beş prensibi benimseyin:",{"type":29,"tag":87,"props":1512,"children":1513},{},[1514,1524,1534,1544,1554],{"type":29,"tag":91,"props":1515,"children":1516},{},[1517,1522],{"type":29,"tag":37,"props":1518,"children":1519},{},[1520],{"type":34,"value":1521},"Asla Güvenme, Her Zaman Doğrula:",{"type":34,"value":1523}," Gelen olay verilerini kaynağından bağımsız olarak doğrula ve filtrele.",{"type":29,"tag":91,"props":1525,"children":1526},{},[1527,1532],{"type":29,"tag":37,"props":1528,"children":1529},{},[1530],{"type":34,"value":1531},"En Az Yetkiyi Ver:",{"type":34,"value":1533}," IAM rollerini yazarken cimri olun. Kodun neye ihtiyacı varsa yalnızca onu verin.",{"type":29,"tag":91,"props":1535,"children":1536},{},[1537,1542],{"type":29,"tag":37,"props":1538,"children":1539},{},[1540],{"type":34,"value":1541},"Kodunuzda Çıplak Sır Taşımayın:",{"type":34,"value":1543}," Ortam değişkenine bile güvenmeyin; Secrets Manager veya SSM Parameter Store kullanın.",{"type":29,"tag":91,"props":1545,"children":1546},{},[1547,1552],{"type":29,"tag":37,"props":1548,"children":1549},{},[1550],{"type":34,"value":1551},"Görünürlüğü Kaybetmeyin:",{"type":34,"value":1553}," CloudWatch Logs ve CloudTrail entegrasyonunu mutlaka yapılandırın.",{"type":29,"tag":91,"props":1555,"children":1556},{},[1557,1562],{"type":29,"tag":37,"props":1558,"children":1559},{},[1560],{"type":34,"value":1561},"Operasyonel Dayanıklılığı Unutmayın:",{"type":34,"value":1563}," Güvenlik fonksiyonlarınıza ayrılmış eşzamanlılık tanımlayın.",{"type":29,"tag":142,"props":1565,"children":1567},{"id":1566},"sıkça-sorulan-sorular",[1568],{"type":34,"value":1569},"Sıkça Sorulan Sorular",{"type":29,"tag":1571,"props":1572,"children":1574},"folding",{"title":1573},"Lambda ortam değişkenleri KMS ile şifreleniyor, yine de riskli mi?",[1575],{"type":29,"tag":30,"props":1576,"children":1577},{},[1578,1580,1585,1587,1591],{"type":34,"value":1579},"Evet, çünkü şifreleme yalnızca bekleme anında geçerlidir. Fonksiyon çalıştığında ortam değişkenleri düz metin olarak belleğe yüklenir ve ",{"type":29,"tag":108,"props":1581,"children":1583},{"className":1582},[],[1584],{"type":34,"value":800},{"type":34,"value":1586}," API'si veya yanlışlıkla loglama yoluyla ifşa olabilir (",{"type":29,"tag":45,"props":1588,"children":1589},{"link":825},[1590],{"type":34,"value":828},{"type":34,"value":1592},", 2024). Hassas veriler için Secrets Manager kullanmak daha güvenlidir.",{"type":29,"tag":1571,"props":1594,"children":1596},{"title":1595},"Lambda'ya VPC bağlamazsam güvenlik riski artar mı?",[1597],{"type":29,"tag":30,"props":1598,"children":1599},{},[1600],{"type":34,"value":1601},"VPC dışında çalışan Lambda, AWS yönetimli genel bir ağ kullanır ve RDS gibi özel kaynaklara doğrudan erişemez. Bu varsayılan izolasyon bazı senaryolarda güvenlidir. Ancak özel kaynaklara erişim gerekiyorsa VPC bağlantısı zorunludur ve bu durumda güvenlik gruplarını en dar şekilde yapılandırmak kritiktir.",{"type":29,"tag":1571,"props":1603,"children":1605},{"title":1604},"Eşzamanlılık limiti aşıldığında ne olur, veri kaybeder miyim?",[1606],{"type":29,"tag":30,"props":1607,"children":1608},{},[1609,1611,1617,1619,1623],{"type":34,"value":1610},"Limit aşıldığında istekler kısıtlanır ancak asenkron çağrılar için AWS otomatik olarak kuyruğa alır ve tekrar dener. Senkron çağrılarda çağrıyı yapan taraf ",{"type":29,"tag":108,"props":1612,"children":1614},{"className":1613},[],[1615],{"type":34,"value":1616},"429 Too Many Requests",{"type":34,"value":1618}," hatası alır; veri kaybı yaşanmaz ancak hizmet kesintisi olur (",{"type":29,"tag":45,"props":1620,"children":1621},{"link":1104},[1622],{"type":34,"value":1107},{"type":34,"value":103},{"type":29,"tag":1571,"props":1625,"children":1627},{"title":1626},"Lambda fonksiyon kodumu kimler indirebilir?",[1628],{"type":29,"tag":30,"props":1629,"children":1630},{},[1631,1636,1638,1644,1646,1651],{"type":29,"tag":108,"props":1632,"children":1634},{"className":1633},[],[1635],{"type":34,"value":733},{"type":34,"value":1637}," iznine sahip herhangi bir IAM kimliği fonksiyonun kod paketini indirebilir. Bu nedenle bu izni yalnızca kesinlikle gerekli rollere vermeli ve hiçbir zaman ",{"type":29,"tag":108,"props":1639,"children":1641},{"className":1640},[],[1642],{"type":34,"value":1643},"lambda:*",{"type":34,"value":1645}," gibi geniş politikalar tanımlamamalısınız (",{"type":29,"tag":45,"props":1647,"children":1649},{"link":1648},"https:\u002F\u002Fdocs.aws.amazon.com\u002Flambda\u002Flatest\u002Fdg\u002FAPI_GetFunction.html",[1650],{"type":34,"value":828},{"type":34,"value":103},{"type":29,"tag":1571,"props":1653,"children":1655},{"title":1654},"Katman kullanmadan Lambda geliştirmek mümkün mü?",[1656],{"type":29,"tag":30,"props":1657,"children":1658},{},[1659],{"type":34,"value":1660},"Evet, katmanlar tamamen opsiyoneldir. Özellikle güvenlik odaklı fonksiyonlarda bağımlılıkları doğrudan dağıtım paketine dahil etmek, katman kaynaklı tedarik zinciri riskini ortadan kaldırır. Katmanlar yalnızca kod tekrarını azaltmak ve dağıtım boyutunu küçültmek için kullanılmalıdır.",{"type":29,"tag":142,"props":1662,"children":1664},{"id":1663},"kaynakça",[1665],{"type":34,"value":1666},"Kaynakça",{"type":29,"tag":87,"props":1668,"children":1669},{},[1670,1689,1706,1723,1740,1759,1778,1796,1815,1834],{"type":29,"tag":91,"props":1671,"children":1672},{},[1673,1675,1680,1682],{"type":34,"value":1674},"AWS. (2024). ",{"type":29,"tag":1676,"props":1677,"children":1678},"em",{},[1679],{"type":34,"value":373},{"type":34,"value":1681},". ",{"type":29,"tag":190,"props":1683,"children":1684},{},[1685],{"type":29,"tag":45,"props":1686,"children":1687},{"link":370},[1688],{"type":34,"value":14},{"type":29,"tag":91,"props":1690,"children":1691},{},[1692,1693,1697,1698],{"type":34,"value":1674},{"type":29,"tag":1676,"props":1694,"children":1695},{},[1696],{"type":34,"value":1333},{"type":34,"value":1681},{"type":29,"tag":190,"props":1699,"children":1700},{},[1701],{"type":29,"tag":45,"props":1702,"children":1704},{"link":1703},"https:\u002F\u002Fdocs.aws.amazon.com\u002Flambda\u002Flatest\u002Fdg\u002Fwelcome.html",[1705],{"type":34,"value":14},{"type":29,"tag":91,"props":1707,"children":1708},{},[1709,1710,1715,1716],{"type":34,"value":1674},{"type":29,"tag":1676,"props":1711,"children":1712},{},[1713],{"type":34,"value":1714},"Lambda Fonksiyon Yapılandırması - Eşzamanlılık",{"type":34,"value":1681},{"type":29,"tag":190,"props":1717,"children":1718},{},[1719],{"type":29,"tag":45,"props":1720,"children":1721},{"link":1330},[1722],{"type":34,"value":14},{"type":29,"tag":91,"props":1724,"children":1725},{},[1726,1727,1732,1733],{"type":34,"value":1674},{"type":29,"tag":1676,"props":1728,"children":1729},{},[1730],{"type":34,"value":1731},"Lambda API Referansı",{"type":34,"value":1681},{"type":29,"tag":190,"props":1734,"children":1735},{},[1736],{"type":29,"tag":45,"props":1737,"children":1738},{"link":1648},[1739],{"type":34,"value":14},{"type":29,"tag":91,"props":1741,"children":1742},{},[1743,1745,1750,1751],{"type":34,"value":1744},"OWASP. (2024). ",{"type":29,"tag":1676,"props":1746,"children":1747},{},[1748],{"type":34,"value":1749},"Sunucusuz En İyi 10",{"type":34,"value":1681},{"type":29,"tag":190,"props":1752,"children":1753},{},[1754],{"type":29,"tag":45,"props":1755,"children":1756},{"link":693},[1757],{"type":34,"value":1758},"OWASP",{"type":29,"tag":91,"props":1760,"children":1761},{},[1762,1764,1769,1770],{"type":34,"value":1763},"Cloud Security Alliance. (2024). ",{"type":29,"tag":1676,"props":1765,"children":1766},{},[1767],{"type":34,"value":1768},"En Büyük Bulut Tehditleri",{"type":34,"value":1681},{"type":29,"tag":190,"props":1771,"children":1772},{},[1773],{"type":29,"tag":45,"props":1774,"children":1775},{"link":1489},[1776],{"type":34,"value":1777},"CSA",{"type":29,"tag":91,"props":1779,"children":1780},{},[1781,1783,1788,1789],{"type":34,"value":1782},"Sysdig. (2024). ",{"type":29,"tag":1676,"props":1784,"children":1785},{},[1786],{"type":34,"value":1787},"2024 Bulut Yerel Güvenlik Raporu",{"type":34,"value":1681},{"type":29,"tag":190,"props":1790,"children":1791},{},[1792],{"type":29,"tag":45,"props":1793,"children":1794},{"link":98},[1795],{"type":34,"value":523},{"type":29,"tag":91,"props":1797,"children":1798},{},[1799,1801,1806,1807],{"type":34,"value":1800},"Wiz. (2025). ",{"type":29,"tag":1676,"props":1802,"children":1803},{},[1804],{"type":34,"value":1805},"2025 Cloud Data Security Report",{"type":34,"value":1681},{"type":29,"tag":190,"props":1808,"children":1809},{},[1810],{"type":29,"tag":45,"props":1811,"children":1812},{"link":47},[1813],{"type":34,"value":1814},"Wiz",{"type":29,"tag":91,"props":1816,"children":1817},{},[1818,1820,1825,1826],{"type":34,"value":1819},"GitGuardian. (2024). ",{"type":29,"tag":1676,"props":1821,"children":1822},{},[1823],{"type":34,"value":1824},"2024 Gizli Bilgi Sızıntısı Raporu",{"type":34,"value":1681},{"type":29,"tag":190,"props":1827,"children":1828},{},[1829],{"type":29,"tag":45,"props":1830,"children":1831},{"link":712},[1832],{"type":34,"value":1833},"GitGuardian",{"type":29,"tag":91,"props":1835,"children":1836},{},[1837,1839,1844,1845],{"type":34,"value":1838},"SentinelOne. (2026). ",{"type":29,"tag":1676,"props":1840,"children":1841},{},[1842],{"type":34,"value":1843},"Bulut Güvenliği İstatistikleri",{"type":34,"value":1681},{"type":29,"tag":190,"props":1846,"children":1847},{},[1848],{"type":29,"tag":45,"props":1849,"children":1850},{"link":62},[1851],{"type":34,"value":1852},"SentinelOne",{"type":29,"tag":1854,"props":1855,"children":1856},"style",{},[1857],{"type":34,"value":1858},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":7,"searchDepth":221,"depth":221,"links":1860},[1861,1862,1863,1864,1865,1866,1867,1868,1869,1870,1871],{"id":144,"depth":203,"text":147},{"id":378,"depth":203,"text":381},{"id":528,"depth":203,"text":531},{"id":701,"depth":203,"text":704},{"id":833,"depth":203,"text":836},{"id":1093,"depth":203,"text":1096},{"id":1337,"depth":203,"text":1340},{"id":1383,"depth":203,"text":1386},{"id":1497,"depth":203,"text":1500},{"id":1566,"depth":203,"text":1569},{"id":1663,"depth":203,"text":1666},"markdown","content:posts:2026:aws-lambda-guvenlik-rehberi.md","content","posts\u002F2026\u002Faws-lambda-guvenlik-rehberi.md","posts\u002F2026\u002Faws-lambda-guvenlik-rehberi","md","\u002Fposts",[1880,1884],{"_path":1881,"title":1882,"date":1883},"\u002F2026\u002Faws-vpc-guvenligi-derinlemesine-rehber","AWS VPC Güvenliği: Sanal Ağınızı Korumak İçin Derinlemesine Bir Rehber","2026-04-29T09:00:00.000Z",{"_path":1885,"title":1886,"date":1887},"\u002F2026\u002Faws-api-gateway-guvenligi-ve-ters-proxy-zafiyetleri","AWS API Gateway ve Ters Proxy Zafiyetleri: Bulut Güvenliğinde Görünmez Tehdit","2026-05-12T21:00:00.000Z",1780419439834]