İçeriğe atla
Şimdi yükleniyor
AKAşkın KILIÇ
  • Anasayfa
  • Azure & Bulut
    • Microsoft Azure
    • Bulut Altyapı
    • Microsoft 365
  • Yazılım
    • DevOps
    • Geliştirici Araçları
    • Konteyner & K8s
  • AI & Veri
    • Yapay Zeka
    • Veri & Analitik
  • Güvenlik
    • Güvenlik & Kimlik
    • Kurumsal Teknoloji
  • Hakkımda
    • İletişim
×
  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka
  • Başlangıç
  • Güvenlik & Kimlik
  • CI/CD Pipeline’ından Cosmos DB’ye Secret’sız Erişim
Bulut Altyapı DevOps Güvenlik & Kimlik Azure Cosmos DB, CI/CD, Entra ID, OIDC, Workload Identity Federation Aşkın KILIÇ 29/08/2026 3 Yorumlar

CI/CD Pipeline’ından Cosmos DB’ye Secret’sız Erişim

CI/CD Pipeline'ından Cosmos DB'ye Secret'sız Erişim
📑 İçindekiler
  1. Sorunun özü: pipeline'da duran secret'lar
  2. Zihinsel model: aynı anda sağlanması gereken üç şey
  3. GitHub Actions ile adım adım kurulum
  4. 1. Pipeline için kimlik oluşturma
  5. 2. Federated credential eklemek
  6. 3. Repository'nin subject formatını doğrulama
  7. 4. Control plane erişimi (yalnızca altyapı deploy ediliyorsa)
  8. 5. Data plane erişimi (en sık atlanan adım)
  9. 6. Tanımlayıcıları saklamak (secret değil)
  10. 7. Workflow tanımı
  11. Azure Pipelines: aynı fikir, daha az adım
  12. Sık karşılaşılan beş sorun
  13. AADSTS70021: No matching federated identity record found
  14. az login çalışıyor ama Cosmos DB 403 dönüyor
  15. Credential bir adımda çalışıyor, diğerinde çalışmıyor
  16. Bicep veya ARM template'iniz hala listKeys() çağırıyor
  17. Fork'lardan gelen PR build'leri boş dönüyor
  18. Hızlı teşhis sırası
  19. Toparlarken
  20. Sıra sizde
  21. İlgili İçerikler
  22. Kaynaklar ve İleri Okuma
⏱️ 9 dk okuma📅 29 Ağustos 2026

Uygulamanızı managed identity ile Azure Cosmos DB’ye bağladınız, hesap anahtarlarını kapattınız ve disableLocalAuth: true ayarını yaptınız. Ama build pipeline’ınıza baktığınızda AZURE_CLIENT_SECRET ve COSMOS_CONNECTION_STRING gibi değerlerin hala durduğunu görüyorsunuz. Uygulamada temizlediğiniz uzun ömürlü kimlik bilgilerini CI ayarlarında bırakmak, yapılan güvenlik çalışmasını büyük ölçüde geri alır. Bu yazıda pipeline’ı Cosmos DB’ye hiçbir secret saklamadan bağlamanın yolunu, yani workload identity federation yaklaşımını ele alıyoruz.

Sorunun özü: pipeline’da duran secret’lar

Local auth kapatıldığında repository secret’larındaki connection string zaten çalışmaz hale gelir. Client secret ise tam olarak uygulamadan sildiğiniz türde uzun ömürlü bir kimlik bilgisidir: ayar sayfasında durur, runbook’lara kopyalanır, sohbetlere yapıştırılır ve bir gün gecenin ortasında bir release sırasında süresi dolar.

Çözüm secret’ı “daha güvenli bir yerde saklamak” değil, hiç saklamamaktır. Workload identity federation ile pipeline, GitHub veya Azure DevOps tarafından üretilen kısa ömürlü bir OIDC token ile kimliğini kanıtlar; Entra ID bu token’ı Azure erişim token’ına çevirir. Ortada saklanan bir secret, süresi dolan bir kimlik veya rotate edilmesi gereken bir değer kalmaz.

Zihinsel model: aynı anda sağlanması gereken üç şey

YAML dosyalarına dokunmadan önce şu resmi netleştirmek gerekiyor. Pipeline Cosmos DB ile konuştuğunda üç ayrı koşulun sağlanması gerekir:

  1. Güven (Trust): Entra ID, CI platformunun ürettiği token’a güvenmelidir. Bunu federated credential sağlar.
  2. Control plane yetkilendirmesi: Pipeline altyapı deploy ediyorsa (hesap, veritabanı, container oluşturma) DocumentDB Account Contributor gibi bir Azure RBAC rolüne ihtiyaç duyar.
  3. Data plane yetkilendirmesi: Pipeline item okuyor, yazıyor veya seed veri yüklüyorsa Cosmos DB’nin kendi data plane rol atamasına ihtiyaç duyar.

Çoğu ekip birinci adımı halledip az login‘in çalışmasına sevinir, sonra üçüncüyü atladığı için 403 hatası alır. Control plane ve data plane’in neden ayrı sistemler olduğunu daha ayrıntılı okumak isterseniz serinin önceki yazısı iyi bir başlangıçtır.

GitHub Actions ile adım adım kurulum

1. Pipeline için kimlik oluşturma

Federasyonu ister bir app registration ister user-assigned managed identity üzerinden kurabilirsiniz. App registration en yaygın seçenektir; managed identity ise altyapıyla aynı resource group içinde tutulmak istendiğinde iyi bir alternatiftir.

APP_ID=$(az ad app create --display-name "gh-actions-myrepo" --query appId -o tsv)
az ad sp create --id "$APP_ID"

2. Federated credential eklemek

Bu adımda Entra ID’ye hangi workflow’un bu kimliği kullanabileceğini söylersiniz. En kritik alan subject: GitHub’ın ürettiği OIDC token’ıyla harfi harfine eşleşmek zorundadır.

az ad app federated-credential create \
--id "$APP_ID" \
--parameters '{
"name": "github-prod-env",
"issuer": "https://token.actions.githubusercontent.com",
"subject": "repo:my-org/my-repo:environment:production",
"audiences": ["api://AzureADTokenExchange"]
}'

Subject seçiminde bilinmesi gerekenler:

  • Belirli bir branch: repo:my-org/my-repo:ref:refs/heads/main
  • GitHub environment: repo:my-org/my-repo:environment:production
  • Pull request build’leri: repo:my-org/my-repo:pull_request

Branch tabanlı subject’ler wildcard desteklemediği için her yeni release branch başka bir credential gerektirir. Environment tabanlı subject’ler daha yönetilebilir, approval ve branch protection ile uyumlu, branch’lerin gelip gitmesinden bağımsızdır. Bir kimliğe en fazla 20 federated credential atanabildiğini de unutmayın.

3. Repository’nin subject formatını doğrulama

Bu ayrıntı yeni bir davranış getiriyor ve mevcut kurulumları sessizce bozabiliyor. OIDC spec’i, subject claim’lerinin yerel olarak benzersiz olmasını ve tekrar atanmamasını gerektirir. Eski format yalnızca organizasyon ve repository adlarını içerdiği için, geri dönüştürülmüş bir namespace farklı bir sahip altında aynı subject değerini üretebiliyordu.

Bu boşluğu kapatmak için 15 Temmuz 2026 tarihinden sonra oluşturulan repository’ler, sahip ID’sini ve repository ID’sini içeren immutable (değişmez) subject formatını kullanır.

  • Önceki format: repo:sample-org/octo-repo:ref:refs/heads/main
  • Immutable format: repo:sample-org@123456/octo-repo@456789:ref:refs/heads/main

@ ayırıcısı, GitHub kullanıcı adı veya repository adında bulunamayacağı için tercih edilmiştir. 15 Temmuz 2026’dan önce oluşturulan repository’ler, OIDC ayarları arayüzünden veya REST API’sinden organizasyon ya da repository düzeyinde opt-in yapmadıkları sürece eski formatta kalır.

İki pratik sonuç var: yeni bir repo yeni formatı gerektirir; eski bir repo’daki federated credential’ı yeni bir repo’ya kopyalarsanız subject eşleşmez ve token exchange başarısız olur. Ayrıca 15 Temmuz 2026 sonrası rename veya transfer işlemleri repository’yi immutable formata taşır; bu durumda credential’ı düzenlemek yetmez, yeniden yazmak gerekir.

Immutable subject claim’leri GitHub Enterprise Server’da mevcut değildir. Claim’lerinizi include_claim_keys ile özelleştiriyorsanız, immutable formattaki repository’ler için repo segmentinde sahip ve repo ID’leri her zaman yer alır; kaldırmak mümkün değildir.

Güvenilir yaklaşım tahmin yürütmek değil, workflow’un ürettiği gerçek subject’i loglayıp o değeri kaydetmektir.

4. Control plane erişimi (yalnızca altyapı deploy ediliyorsa)

az role assignment create \
--assignee "$APP_ID" \
--role "DocumentDB Account Contributor" \
--scope "/subscriptions/$SUB_ID/resourceGroups/$RESOURCE_GROUP"

Pipeline yalnızca veri işliyorsa bu adımı atlayın. Her pipeline’ın hesabı yönetmesi gerekmez.

5. Data plane erişimi (en sık atlanan adım)

PRINCIPAL_ID=$(az ad sp show --id "$APP_ID" --query id -o tsv)
az cosmosdb sql role assignment create \
--account-name "$ACCOUNT" \
--resource-group "$RESOURCE_GROUP" \
--role-definition-id "00000000-0000-0000-0000-000000000002" \
--scope "/dbs/orders-test" \
--principal-id "$PRINCIPAL_ID"

Buradaki role definition ID, yerleşik Cosmos DB Built-in Data Contributor rolüne karşılık gelir. Pipeline yalnızca read-only smoke test çalıştırıyorsa …0001 (Data Reader) kullanmak daha uygundur. Scope’un / yerine test veritabanına yönlendirildiğine dikkat edin; her push’ta unattended çalışan CI kimliği, hesap genelinde yazma erişimine sahip olmaması gereken kimliktir.

6. Tanımlayıcıları saklamak (secret değil)

Repository veya environment değişkenlerine şunları ekleyin:

  • AZURE_CLIENT_ID — 1. adımdaki app ID
  • AZURE_TENANT_ID
  • AZURE_SUBSCRIPTION_ID

Bunların hiçbiri secret değil, birer tanımlayıcı. Sizin repository ve environment’ınızdan gelen bir token olmadan işe yaramazlar. Alışkanlıkla secrets bölümüne koymak sorun değil, ama bu değerlerin hassas olmadığını kavramak zaten bu işin özü.

7. Workflow tanımı

name: Integration tests
on:
push:
branches: [main]
permissions:
id-token: write   # OIDC token istemek için gerekli
contents: read
jobs:
test:
runs-on: ubuntu-latest
environment: production   # federated credential subject'i ile eşleşmeli
steps:
- uses: actions/checkout@v4
- uses: azure/login@v2
with:
client-id: ${{ vars.AZURE_CLIENT_ID }}
tenant-id: ${{ vars.AZURE_TENANT_ID }}
subscription-id: ${{ vars.AZURE_SUBSCRIPTION_ID }}
- name: Run integration tests against Cosmos DB
env:
COSMOS_ENDPOINT: https://my-account.documents.azure.com:443/
run: dotnet test

Eksik olana dikkat: client-secret yok. Test kodu da uygulamanızdakinden farksız:

var client = new CosmosClient(
accountEndpoint: Environment.GetEnvironmentVariable("COSMOS_ENDPOINT"),
tokenCredential: new DefaultAzureCredential());

azure/login@v2, runner’da Azure CLI oturumunu açar; DefaultAzureCredential bunu Azure CLI credential üzerinden yakalar. CI’da, üretimde ve geliştiricinin makinesinde aynı kod çalışır.

Bu adımın en sık başarısız olma nedeni permissions: id-token: write izninin unutulmasıdır ve verilen hata mesajı bunu net söylemez.

Azure Pipelines: aynı fikir, daha az adım

Azure DevOps bu işlerin büyük kısmını sizin yerinize yapar. Azure Resource Manager tipinde bir service connection oluşturup Workload Identity federation (automatic) seçeneğini işaretlediğinizde Azure DevOps, app registration ile federated credential’ı otomatik oluşturur ve subject’i projenize ve service connection’a bağlar.

Rol atamalarını yine yukarıdaki gibi yapmanız gerekir: service connection’ın principal ID’sini Entra ID’de bulup aynı az cosmosdb sql role assignment create komutunu çalıştırırsınız. Azure DevOps yalnızca güven kısmını halleder; Cosmos DB data plane rolleri konusunda bir bilgisi yoktur.

trigger:
branches:
include: [main]
steps:
- task: AzureCLI@2
displayName: Run integration tests
inputs:
azureSubscription: 'my-workload-identity-connection'
scriptType: bash
scriptLocation: inlineScript
inlineScript: |
dotnet test
env:
COSMOS_ENDPOINT: https://my-account.documents.azure.com:443/

AzureCLI@2 içinde çalıştırılan her şey CLI oturumunu miras alır; DefaultAzureCredential GitHub Actions’daki gibi çalışır. Test süreci bu task dışında çalışıyorsa credential’a erişemez.

Yönetsel bir not: eski service principal + secret ile oluşturulmuş service connection’lar hala Azure DevOps’ta bir secret ve son kullanma tarihi taşır. Bunları yerinde workload identity federation’a dönüştürmek desteklenen bir işlemdir ve yapılmaya değer.

Sık karşılaşılan beş sorun

AADSTS70021: No matching federated identity record found

Subject eşleşmiyor. Bu bir string karşılaştırmasıdır ve hoşgörüsüzdür. Kritik detay şu: yanlış bir subject ile federated identity credential oluşturursanız, işlem hatasız başarıyla tamamlanır. Entra ID onu doğrulayacak bir referansa sahip değildir. Hata ancak gerçek bir token exchange sırasında ortaya çıkar.

Bu yüzden gözle karşılaştırmayın; workflow’un ürettiği gerçek subject’i loglayıp karakter karakter kayıtlı olanla kıyaslayın. Sık rastlanan uyumsuzluklar:

  • environment:production kaydettiniz ama job’da environment: anahtarı yok veya environment: prod yazıyor.
  • ref:refs/heads/main kaydettiniz ama run bir tag ile tetiklendi; bu ref:refs/tags/v1.0 üretir.
  • Job bir environment referansı içeriyor; bu durumda subject branch yerine environment’ı taşır. Environment kazanır.
  • Repo 15 Temmuz 2026 sonrası rename veya transfer edildi ve immutable formata geçti; eski subject artık eşleşmiyor.
  • Repo 15 Temmuz 2026 sonrası oluşturuldu ama subject’i eski formatlı bir repodan kopyaladınız.
  • Environment adı iki nokta içeriyor. Metadata değerindeki : karakteri %3A olarak escape edilir; Production:V1, subject’te Production%3AV1 olarak görünür.

az login çalışıyor ama Cosmos DB 403 dönüyor

Güven tarafı sorunsuz, yetkilendirme değil. Muhtemelen Azure RBAC atamasını yapıp data plane atamasını atladınız. Şununla kontrol edin:

az cosmosdb sql role assignment list \
--account-name "$ACCOUNT" \
--resource-group "$RESOURCE_GROUP"

Pipeline’ın principal ID’si bu çıktıda yoksa sorun tam olarak orada. Data plane atamaları az role assignment list çıktısında veya portalın Access control (IAM) alanında görünmez; ayrı bir sistemdir ve ayrı komutlarla yönetilir.

Credential bir adımda çalışıyor, diğerinde çalışmıyor

OIDC oturumu runner üzerindeki shell oturumuna aittir. Testleriniz o shell’in erişemediği bir yerde çalışıyorsa (kendi başlattığınız bir Docker container’ının içinde, başka bir job’da, farklı bir runner’da) credential onları takip etmez.

Container’lar için ya token’ı açıkça geçirin ya da ilgili environment değişkenlerini map edin. Ayrı job’lar için her job’ın kendi azure/login adımı ve kendi id-token: write izni olması gerekir. Job’lar birbirinin oturumunu miras almaz.

Bicep veya ARM template’iniz hala listKeys() çağırıyor

Bu tuzak Cosmos DB’ye özgüdür. Birçok template şu satırla biter:

output connectionString string = listKeys(cosmosAccount.id, '2024-11-15').primaryMasterKey

disableLocalAuthtrue yapıldıktan sonra bu çağrı başarısız olur ve altyapı değişiklikleri kısmen uygulandıktan sonra tüm deployment’ı çökertir. Template’lerinizde listKeys, listConnectionStrings ve primaryMasterKey arayarak bu output’ları temizleyin; uygulamanızın artık ihtiyacı yok.

Fork’lardan gelen PR build’leri boş dönüyor

Fork’tan tetiklenen workflow, tasarım gereği sizin repository’niz için OIDC token almaz. PR doğrulamanız Cosmos DB’ye ihtiyaç duyuyorsa bu testleri yalnızca ana repo içindeki branch’lerde çalıştırın veya fork PR’ları için Azure Cosmos DB emulator‘ünü kullanıp gerçek hesabı merge sonrasına bırakın. Bunu bir secret ekleyerek aşmaya çalışmak, federasyonun kapatmak için var olduğu boşluğu geri açar.

Hızlı teşhis sırası

Pipeline hata verdiğinde şu listeyi sırayla geçin:

  1. Job’da permissions: id-token: write tanımlı mı?
  2. Federated credential üzerindeki subject, run’ın ürettiği değerle birebir eşleşiyor mu?
  3. Pipeline’ın principal’ı yalnızca Azure RBAC değil, data plane rol ataması da almış mı?
  4. Data plane scope’u, pipeline’ın gerçekten dokunduğu veritabanı ve container’ı kapsıyor mu?
  5. Başarısız olan adım, Azure login’in yapıldığı shell’in dışında mı çalışıyor?
  6. Template’lerde veya script’lerde hala anahtar isteyen bir çağrı var mı?

Toparlarken

Pipeline erişime ihtiyaç duyduğunda ilk refleks secret üretmektir çünkü pipeline’lar hep bunu kullandı. Oysa CI/CD kimliği federasyon için biçilmiş kaftan: bilinen bir yerde, bilinen olaylarla, bilinen bir repository adına çalışır. OIDC token’ının taşıdığı bilgi tam olarak budur; Entra ID’nin herhangi bir şey saklamadan doğrulayabileceği şey de yine budur.

Bir kez kurulduktan sonra rotate edilecek, sızacak veya gecenin ortasında süresi dolacak bir şey kalmaz. Pipeline uygulamanızın kimlik doğrulama şeklini paylaşır, kod bile aynıdır; “üretim verisine kim erişebiliyor” sorusunun sorgulanabilir bir cevabı olur.

Sıra sizde

  • CI ayarlarınızı şimdi açın ve AZURE_CLIENT_SECRET, COSMOS_CONNECTION_STRING veya içinde AccountKey geçen değerleri arayın. Bulduğunuz her şey ilk göç adayınız.
  • Federasyonu önce üretim dışı bir pipeline üzerinde kurun ve data plane rolünü / yerine bir test veritabanına scope’layın.
  • disableLocalAuth‘u açmadan önce Bicep ve ARM template’lerinizde listKeys aramayı unutmayın.

İlgili İçerikler

  • Azure Cosmos DB Design Patterns: Çalışan Örnekler
  • GitHub Secret Scanning ve Public Monitoring Güncellemeleri
  • Cosmos DB Built-in Connector for Logic Apps Standard GA Oldu

Kaynaklar ve İleri Okuma

  • devblogs.microsoft.com
  • Iria Osara ve Sudhanshu Khera — I Need My CI/CD Pipeline to Access Cosmos DB Without Using a Secret (Azure Cosmos DB Blog)
  • I Enabled RBAC and Everything Broke — What Did I Do Wrong? (serinin önceki yazısı)
  • Azure Cosmos DB Emulator (Microsoft Learn)
  • Azure Cosmos DB Blog
  • Azure Cosmos DB YouTube kanalı
  • Azure Cosmos DB vNext Emulator: Yerelde Gerçek Gibi Test Etmek
  • Azure Developer CLI Sonunda Olmuş: Uzantılar, Foundry ve Pipeline Devrimi
🤖Bu yazı yapay zeka (büyük dil modelleri) ile hazırlanmış, insan editör tarafından incelenmiştir. İçerik üretim sürecimiz.
Aşkın KILIÇ
Aşkın KILIÇYazar

20+ yıl deneyimli Azure Solutions Architect. Microsoft sertifikalı bulut mimari ve DevOps danışmanı. Azure, yapay zekâ ve bulut teknolojileri üzerine Türkçe teknik içerikler üretiyor.

AZ-305AZ-104AZ-500AZ-400DP-203AI-102

İlgili Yazılar

Agent Harness ile Claw'u Üretime Hazırlamak
Agent Harness ile Claw'u Üretime Hazırlamak28 Ağu 2026
Axios npm Saldırısı: Azure Pipelines'ta Ne Yapmalı?
Axios npm Saldırısı: Azure Pipelines'ta Ne Yapmalı?24 Nis 2026
Azure DevOps Güvenlik Taraması: Tek Tıkla Başlıyor
Azure DevOps Güvenlik Taraması: Tek Tıkla Başlıyor18 Nis 2026
SET NOCOUNT ON Neden Bu Kadar Önemli?
SET NOCOUNT ON Neden Bu Kadar Önemli?16 Tem 2026

Bu içerik işinize yaradı mı?

Benzer içerikleri kaçırmamak için YouTube ve GitHub hesaplarımı takip edin.

YouTube GitHub

Haftalık Bülten

Her pazar özenle seçilmiş teknoloji yazıları doğrudan e-postanıza gelsin.

Etiket Azure Cosmos DB CI/CD Entra ID OIDC Workload Identity Federation
Önceki yazı

Visual Studio’da GitHub Copilot: Ağustos 2026 Güncellemesi

Sonraki yazı

Microsoft Agent Framework’te Agent ve Workflow Kanalları

İlginizi Çekebilir

Microsoft SQL’de Hibrit Arama: Metin ve Vektörün Gücü
Aşkın KILIÇ 0

Microsoft SQL’de Hibrit Arama: Metin ve Vektörün Gücü

03/09/2026
GitHub Copilot AI Kodlamada Maliyeti Nasıl Düşürüyor
Aşkın KILIÇ 0

GitHub Copilot AI Kodlamada Maliyeti Nasıl Düşürüyor

03/09/2026
SPFx Dev Skills: Ajanların Bildiği ve Kaçırdığı Detaylar
Aşkın KILIÇ 2

SPFx Dev Skills: Ajanların Bildiği ve Kaçırdığı Detaylar

02/09/2026

3 comments

comments user
Tuğçe R. 29/08/2026 21:41

Tam da bu sorunla geçen ay boğuştum, pipeline’da connection string’i environment variable olarak tutmak zorunda kaldım çünkü workload identity federation’ı nasıl kuracağımı tam anlayamamıştım. Bu yazıyı o zaman görmüş olsaydım epey zaman kazanırdım. OIDC token tarafını biraz daha detaylandırdınız mı, GitHub Actions özelinde adımları merak ediyorum.

Yanıtla
comments user
Burcu Ç. 30/08/2026 01:31

Biz de tam bu sorunu yaşadık, managed identity’e geçtik diye sevinirken pipeline’da eski connection string’lerin kaldığını fark ettik. Workload identity federation konusunu atlıyorduk hep, OIDC token kısmını anlatmanız çok işe yaradı. Bu arada şu yazınız da güzeldi: GitHub Copilot Haftalık Sürüm Notları — 24 Ağustos — https://www.askinkilic.com.tr/github-copilot-haftalik-surum-notlari-24-agustos/

Yanıtla
comments user
Gökhan İ. 30/08/2026 04:11

Tam da geçen ay pipeline’larımızı temizlerken bu sorunla boğuştuk, COSMOS_CONNECTION_STRING’i .env’den kaldırdık ama CI tarafında unutmuşuz. OIDC token yaklaşımı gerçekten temiz bir çözüm, deneyeceğiz. Bu arada agent mimarisine merak salanlar için şu yazı da güzeldi: https://www.askinkilic.com.tr/microsoft-agent-frameworkte-agent-ve-workflow-kanallari/

Yanıtla

Yorum gönder Yanıtı iptal et

Yazı Ara

Takip Edin

  • Takipçi
  • Takipçi
  • Takipçi
  • Abone
  • Takipçi
  • Gemini 3.8 Flash GitHub Copilot'ta Kullanıma Sunuldu
    03/09/2026 Gemini 3.8 Flash GitHub Copilot’ta Kullanıma Sunuldu
  • Kubernetes v1.37 HPA ile İş Yüklerini Sıfıra İndiriyor
    03/09/2026 Kubernetes v1.37 HPA ile İş Yüklerini Sıfıra İndiriyor
  • Microsoft SQL’de Hibrit Arama: Metin ve Vektörün Gücü
    03/09/2026 Microsoft SQL’de Hibrit Arama: Metin ve Vektörün Gücü
  • GitHub Copilot AI Kodlamada Maliyeti Nasıl Düşürüyor
    03/09/2026 GitHub Copilot AI Kodlamada Maliyeti Nasıl Düşürüyor
  • Ajanik Yapay Zekâ Terimleri: Loop, Harness ve Squad
    03/09/2026 Ajanik Yapay Zekâ Terimleri: Loop, Harness ve Squad
  • Copilot Cloud Agent Metriği: Kullanımı Ölçmek Kolaylaştı
    11/04/2026 Copilot Cloud Agent Metriği: Kullanımı Ölçmek Kolaylaştı
  • MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
    08/04/2026 MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
  • GitHub Code Scanning’de Toplu Düzeltme: PR’lar Hızlandı
    07/04/2026 GitHub Code Scanning’de Toplu Düzeltme: PR’lar Hızlandı
  • GitHub Copilot Cloud Agent İçin Runner Kontrolü: Kurumsal Düzen
    03/04/2026 GitHub Copilot Cloud Agent İçin Runner Kontrolü: Kurumsal Düzen
  • Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
    06/04/2026 Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
  • GitHub Copilot Pro Denemeleri Neden Durdu?
    11/04/2026 GitHub Copilot Pro Denemeleri Neden Durduruldu?
  • vcpkg'de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
    06/04/2026 vcpkg’de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
  • MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
    08/04/2026 MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
  • Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
    06/04/2026 Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
  • Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler
    10/04/2026 Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler

SİZİN İÇİN DERLEDİK

Gemini 3.8 Flash GitHub Copilot'ta Kullanıma Sunuldu
Microsoft Azure Yapay Zeka

Gemini 3.8 Flash GitHub Copilot’ta Kullanıma Sunuldu

03/09/2026 Aşkın KILIÇ
Microsoft SQL’de Hibrit Arama: Metin ve Vektörün Gücü
Bulut Altyapı Geliştirici Araçları Veri & Analitik

Microsoft SQL’de Hibrit Arama: Metin ve Vektörün Gücü

03/09/2026 Aşkın KILIÇ
GitHub Copilot AI Kodlamada Maliyeti Nasıl Düşürüyor
Bulut Altyapı Geliştirici Araçları Yapay Zeka

GitHub Copilot AI Kodlamada Maliyeti Nasıl Düşürüyor

03/09/2026 Aşkın KILIÇ
Ajanik Yapay Zekâ Terimleri: Loop, Harness ve Squad
Kurumsal Teknoloji Yapay Zeka

Ajanik Yapay Zekâ Terimleri: Loop, Harness ve Squad

03/09/2026 Aşkın KILIÇ
Visual Studio'da Çözüm Bazlı Renk Teması Nasıl Ayarlanır
Geliştirici Araçları Microsoft Azure

Visual Studio’da Çözüm Bazlı Renk Teması Nasıl Ayarlanır

02/09/2026 Aşkın KILIÇ
SPFx Dev Skills: Ajanların Bildiği ve Kaçırdığı Detaylar
DevOps Geliştirici Araçları Yapay Zeka

SPFx Dev Skills: Ajanların Bildiği ve Kaçırdığı Detaylar

02/09/2026 Aşkın KILIÇ
Microsoft Entra ID için Bicep Şablonları Genel Kullanıma
DevOps Güvenlik & Kimlik Microsoft Azure

Microsoft Entra ID için Bicep Şablonları Genel Kullanıma

02/09/2026 Aşkın KILIÇ
Kubernetes v1.37: etcd RangeStream ile Bellek Dostu Liste
Bulut Altyapı Konteyner & Kubernetes

Kubernetes v1.37: etcd RangeStream ile Bellek Dostu Liste

02/09/2026 Aşkın KILIÇ
Visual Studio'da GitHub Pull Request İnceleme Rehberi
DevOps Geliştirici Araçları Yapay Zeka

Visual Studio’da GitHub Pull Request İnceleme Rehberi

01/09/2026 Aşkın KILIÇ
Python in Visual Studio Code – November 2025 Release
Bulut Altyapı Geliştirici Araçları

Python in Visual Studio Code – November 2025 Release

01/09/2026 Aşkın KILIÇ
Azure SRE Agent'ı Connector Namespace ile Güçlendirmek
Bulut Altyapı Microsoft Azure Yapay Zeka

Azure SRE Agent’ı Connector Namespace ile Güçlendirmek

01/09/2026 Aşkın KILIÇ
Enterprise Live Migrations is now in public preview
Bulut Altyapı DevOps

Enterprise Live Migrations is now in public preview

01/09/2026 Aşkın KILIÇ

Hakkımda

Aşkın KILIÇ

Microsoft Azure Çözüm Uzmanı. Bulut bilişim, yapay zekâ, DevOps ve kurumsal güvenlik üzerine yazılar yazıyorum.

Devamını Oku →

Kategoriler

  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka

Popüler Etiketler

AI ajanları ASP.NET Core Azure azure app service Azure Cosmos DB Azure Developer CLI Azure DevOps azure sdk Azure SQL bulut bilişim C++ CI/CD CodeQL code review copilot Copilot CLI DevOps geliştirici verimliliği GitHub GitHub Actions GitHub Copilot güvenlik Kimlik Doğrulama Kubernetes Kurumsal geliştirme kurumsal güvenlik kurumsal yapay zeka maliyet optimizasyonu MCP Microsoft Agent Framework Microsoft Azure Microsoft Foundry otomasyon performans Pull Request RAG SEO uyumlu verimlilik veri yönetimi Visual Studio Visual Studio 2026 VS Code yapay zeka yapay zeka ajanları Yazılım geliştirme
  • Gizlilik Politikası
  • Çerez Politikası
  • Kullanım Koşulları
  • Hakkımda
  • İletişim

© 2026 Aşkın KILIÇ | Tüm hakları saklıdır. | Powered By SpiceThemes

Çerez tercihleri Zorunlu çerezler sitenin çalışması için kullanılır. Analitik çerezler yalnız açık izninizden sonra Google Analytics ve Microsoft Clarity için etkinleştirilir. KVKK ve Çerez Politikası
✉

Haftalık Bülten

Azure, DevOps ve Yapay Zeka dünyasındaki en güncel içerikleri her hafta doğrudan e-postanıza alın.

Spam yok. İstediğiniz zaman iptal edebilirsiniz.
📱
Uygulamayı Yükle Ana ekrana ekle, çevrimdışı oku
Ana Sayfa
Kategoriler
💻 Geliştirici Araçları 432 yazı 🏗️ Bulut Altyapı 345 yazı 🤖 Yapay Zeka 289 yazı 🔧 DevOps 242 yazı ☁️ Microsoft Azure 231 yazı 🔒 Güvenlik & Kimlik 199 yazı 🏢 Kurumsal Teknoloji 83 yazı 📊 Veri & Analitik 62 yazı 🐳 Konteyner & Kubernetes 53 yazı 📧 Microsoft 365 22 yazı 📁 Azure 1 yazı
Ara
Popüler
Yapay Zeka Azure Kubernetes DevOps Copilot Docker
Paylaş
WhatsApp
İçindekiler
    ← Visual Studio’da GitHub ...
    Microsoft Agent Framework̵... →
    📩

    Gitmeden önce!

    Her pazar özenle seçilmiş teknoloji yazıları ve AI haberleri doğrudan e-postanıza gelsin. Ücretsiz, spam yok.

    🔒 Bilgileriniz güvende. İstediğiniz zaman ayrılabilirsiniz.

    📬 Haftalık bülten: Teknoloji + AI haberleri
    Beni Takip Et Yeni Azure / AI / DevOps yazılarını GitHub ve RSS üzerinden takip edin.
    GitHub RSS