Azure DevOps İş Yükü Kimlik Federasyonu için Azure DevOps Yayımcısının Kullanımdan Kaldırılması

Microsoft, Azure DevOps iş yükü kimlik federasyonu hizmet bağlantılarında kullanılan Azure DevOps yayıncısının 1 Temmuz 2027 tarihinde kullanımdan kaldırılacağını duyurdu. Bu değişiklik, Azure hizmetlerinde güvenlik ve tutarlılığı artırmak amacıyla Microsoft Entra yayıncısına geçişi içermektedir.

4
4sysops
5 görüntülenme
Azure DevOps İş Yükü Kimlik Federasyonu için Azure DevOps Yayımcısının Kullanımdan Kaldırılması

Giriş

Microsoft, Azure DevOps ortamında iş yükü kimlik federasyonu (Workload Identity Federation) hizmet bağlantılarında kullanılan Azure DevOps yayıncısının kullanımdan kaldırılacağını resmi olarak duyurdu. Bu yayıncının son kullanım tarihi 1 Temmuz 2027 olarak belirlenmiştir. Bu değişiklik, Azure hizmetlerinde güvenlik, standartlaşma ve tutarlılık sağlamak amacıyla Microsoft Entra yayıncısına geçişin bir parçasıdır.

İş yükü kimlik federasyonu, Azure hizmetlerine sır olmadan (secretless) erişim sağlamak için kullanılan modern bir kimlik doğrulama yöntemidir. Mevcut yapılandırmanızda Azure DevOps yayıncısını kullanan hizmet bağlantılarınız varsa, bu değişiklikten doğrudan etkilenebilirsiniz. Bu makalede, geçiş sürecini adım adım nasıl gerçekleştireceğinizi ve karşılaşabileceğiniz olası sorunları nasıl çözebileceğinizi detaylı olarak ele alacağız.

Sorun Tanımı

Etkilenen Senaryolar

Bu değişiklik aşağıdaki senaryolarda kullanılan hizmet bağlantılarını doğrudan etkilemektedir:

  • Tek kiracılı uygulamalar (Single-tenant applications): Azure DevOps yayıncısını kullanan ve yalnızca bir Azure AD kiracısında tanımlı olan uygulamalar.
  • Yönetilen kimlikler (Managed Identities): Azure hizmetlerinde kullanılan ve Azure DevOps yayıncısına dayalı olan yönetilen kimlikler.
  • Hizmet bağlantılarında gizli anahtar kullanımı: Azure DevOps içinde oluşturulan hizmet bağlantılarında, azure-devops yayıncısına bağlı olan yapılandırmalar.

Potansiyel Riskler

Bu yayıncının kullanımdan kaldırılması aşağıdaki riskleri beraberinde getirebilir:

  1. Hizmet kesintileri: 1 Temmuz 2027 tarihinden sonra Azure DevOps yayıncısına bağlı hizmet bağlantılarının çalışmaması.
  2. Güvenlik açıkları: Eski yayıncının kullanılması durumunda, kimlik doğrulama güvenliğinin zayıflaması.
  3. Uyum sorunları: Kurumsal güvenlik politikalarına uygunlukta aksaklıklar yaşanması.

Çözüm Adımları

1. Mevcut Yapılandırmayı Kontrol Edin

Geçiş sürecine başlamadan önce, aşağıdaki adımları izleyerek mevcut hizmet bağlantılarınızı ve yayıncı bağımlılıklarınızı belirleyin:

  1. Azure DevOps Projesine Giriş Yapın: Azure DevOps portalına (https://dev.azure.com) giriş yapın ve ilgili projeye gidin.

  2. Hizmet Bağlantılarını Listeleyin: Proje ayarlarından "Service connections" bölümüne gidin ve tüm hizmet bağlantılarını listeleyin.

    Azure Portal → Azure DevOps → Project Settings → Service connections
  3. Yayıncı Türünü Kontrol Edin: Her hizmet bağlantısının detaylarına girerek "Issuer" alanında azure-devops yayıncısının kullanılıp kullanılmadığını kontrol edin. Eğer kullanılıyorsa, bu bağlantıyı güncellemeniz gerekmektedir.

2. Microsoft Entra Yayıncısına Geçiş Yapın

Microsoft Entra yayıncısına geçiş yapmak için aşağıdaki adımları izleyin. Bu adımlar, hem tek kiracılı uygulamalar hem de yönetilen kimlikler için geçerlidir:

  1. Azure AD Uygulamasını Güncelleyin: Azure Portal'da ilgili Azure AD uygulamasının ayarlarına gidin ve "Certificates & secrets" bölümünden "Federated credentials" sekmesine geçin.

  2. Yeni Federasyon Kimliği Oluşturun: Aşağıdaki adımları izleyerek yeni bir federasyon kimliği oluşturun:

    # Azure CLI kullanarak yeni bir federasyon kimliği oluşturun
    az identity create --name <identity-name> --resource-group <resource-group>
    
    # Federasyon kimliğine erişim izni verin
    az identity federated-credential create \
      --name <federated-credential-name> \
      --identity-name <identity-name> \
      --resource-group <resource-group> \
      --issuer https://vstoken.dev.azure.com/<organization-id> \
      --subject "sc://<project-name>/<service-connection-name>" \
      --audience api://AzureDevOps
    

    Not: <organization-id> ve <project-name> değerlerini Azure DevOps organizasyonunuzdan ve projenizden alın.

  3. Hizmet Bağlantısını Güncelleyin: Azure DevOps'ta ilgili hizmet bağlantısını düzenleyin ve yayıncıyı azure-devops'dan microsoft-entra'ya değiştirin.

    # Hizmet bağlantısını Azure CLI ile güncelleyin (örnek)
    az devops service-endpoint update \
      --id <service-connection-id> \
      --name <new-endpoint-name> \
      --type azure-rm \
      --azure-rm-service-principal-id <spn-client-id> \
      --azure-rm-scope <subscription-id>
    

3. Test ve Doğrulama

Yapılan değişikliklerin ardından, hizmet bağlantılarının düzgün çalıştığından emin olmak için aşağıdaki adımları izleyin:

  1. Bağlantıyı Test Edin: Azure DevOps'ta hizmet bağlantısını seçin ve "Test connection" düğmesini kullanarak bağlantının başarılı olup olmadığını kontrol edin.

  2. CI/CD Pipeline'larını Kontrol Edin: Azure DevOps pipeline'larınızda kullanılan hizmet bağlantılarının güncellenmiş yayıncıyı kullandığından emin olun. Pipeline'larda hata oluşup oluşmadığını test edin.

    # Pipeline'ı çalıştırarak test edin
    az pipelines run --id <pipeline-id> --org <organization> --project <project-name>
    
  3. Günlükleri İnceleyin: Azure Portal'da ilgili hizmet bağlantısının "Diagnostic settings" bölümünden log'ları inceleyin ve herhangi bir hata olup olmadığını kontrol edin.

Sık Karşılaşılan Sorunlar ve Çözümleri

1. Federasyon Kimliğinin Oluşturulmasında Hata

Sorun: Federasyon kimliği oluşturulurken issuer ya da subject alanlarında hata alınıyor.

Çözüm: issuer URL'sini doğru şekilde yapılandırdığınızdan emin olun. Azure DevOps organizasyonunuzun ID'sini ve proje adını doğru girdiğinizden emin olun. Örnek:

https://vstoken.dev.azure.com/01234567-89ab-cdef-0123-456789abcdef

2. Hizmet Bağlantısında Yetkilendirme Hatası

Sorun: Hizmet bağlantısı güncellendikten sonra yetkilendirme hatası alınıyor.

Çözüm: Azure AD uygulamasının ilgili hizmet bağlantısına gerekli izinleri verdiğinden emin olun. Uygulama izinlerini aşağıdaki adımlarla kontrol edin:

# Azure AD uygulamasının izinlerini kontrol edin
az ad app permission list --id <app-client-id>

# Gerekli izinleri ekleyin (örnek)
az ad app permission add --id <app-client-id> --api 797f4846-ba00-4fd7-ba43-dac1f8f630ff --api-permissions 499b84ac-1321-427f-aa17-267ca6975798=Role

3. Pipeline'larda Tanımlama Hatası

Sorun: Pipeline'larda hizmet bağlantısı kullanılırken tanımsız değişken hatası alınıyor.

Çözüm: Pipeline YAML dosyanızda hizmet bağlantısının adını doğru şekilde tanımladığınızdan emin olun. Örnek:

steps:
- task: AzureCLI@2
  inputs:
    azureSubscription: 'Updated-Service-Connection'
    scriptType: 'ps'
    scriptLocation: 'inlineScript'
    inlineScript: 'az account show'

İpuçları ve En İyi Uygulamalar

  • Erken Geçiş Yapın: 1 Temmuz 2027 tarihinden önce geçiş yaparak olası hizmet kesintilerini önleyin.

  • Test Ortamında Deneme Yapın: Değişiklikleri üretim ortamına uygulamadan önce bir test ortamında deneyin.

  • Belgeleri Güncelleyin: Geçiş sürecini ve yapılan değişiklikleri dokümante edin. Ekibinizle paylaşın.

  • Güvenlik Denetimlerini Yapın: Geçiş sonrasında Azure AD ve Azure DevOps güvenlik ayarlarını yeniden gözden geçirin.

Sonuç

Microsoft'un Azure DevOps yayıncısının kullanımdan kaldırılması, Azure hizmetlerinde güvenlik ve standartlaşmayı artırmak amacıyla yapılan önemli bir adımdır. Bu değişiklikten etkilenmemek ve hizmetlerinizin sorunsuz çalışmasını sağlamak için yukarıdaki adımları izleyerek geçiş sürecini başlatmanız önemlidir. Geçiş sürecinde karşılaşabileceğiniz sorunları çözmek için Microsoft'un resmi belgelerini ve topluluk forumlarını takip edin.

Unutmayın, bu geçiş süreci 1 Temmuz 2027 tarihine kadar tamamlanmalıdır. Erken hareket ederek olası riskleri minimize edebilirsiniz.

Kaynak

4sysops