Aracılığıyla paylaş


Azure Arc tarafından etkinleştirilen SQL Server'ın en az ayrıcalıkla çalıştırılması

Şunlar için geçerlidir: SQL Server

En az ayrıcalıklı bilgi güvenliği ilkesi, hesapların ve uygulamaların yalnızca ihtiyaç duydukları verilere ve işlemlere erişimi olduğunu onaylar. Azure Arc tarafından etkinleştirilen SQL Server ile aracı uzantısı hizmetini en az ayrıcalıkla çalıştırabilirsiniz. Bu makalede ajan uzantı hizmetinin en az ayrıcalıkla nasıl çalıştırılacağı açıklanmaktadır.

İsteğe bağlı olarak hizmeti en az ayrıcalıkla çalışacak şekilde yapılandırmak için bu makaledeki adımları izleyin. Şu anda hizmet otomatik olarak en az ayrıcalıkla çalışmaz.

SQL Server için Azure Uzantısı için Windows hizmet hesaplarını ve izinlerini yapılandırma aracı uzantısı hizmeti için en düşük ayrıcalık izinlerini açıklar.

Note

Şu anda en az ayrıcalıklı yapılandırma varsayılan olarak uygulanmamıştır.

Uzantı sürümü 1.1.2859.223 veya üzeri olan mevcut sunucular, sonunda en az ayrıcalıklı yapılandırmaya sahip olur. Bu uzantı Kasım 2024'te yayımlandı. 1.1.2859.223 ardından otomatik en az ayrıcalıklı uygulamayı önlemek için uzantı yükseltmelerini engelleyin.

Aracı uzantı hizmetini en az ayrıcalıkla çalışacak şekilde yapılandırdıktan sonra, hizmet NT Service\SQLServerExtension hizmet hesabını kullanır.

NT Service\SQLServerExtension hesabı yerel bir Windows hizmet hesabıdır:

  • En az ayrıcalık seçeneği etkinleştirildiğinde SQL Server için Azure Uzantısı tarafından oluşturulur ve yönetilir.
  • Windows işletim sisteminde SQL Server hizmeti için Azure uzantısını çalıştırmak için gereken en düşük izinler ve ayrıcalıklar verildi. Yalnızca yapılandırmayı okumak ve depolamak veya günlükleri yazmak için kullanılan klasörlere ve dizinlere erişebilir.
  • Sql Server'a bağlanma ve sorgulama izni verildi ve bu hizmet hesabı için özel olarak gerekli en düşük izinlere sahip yeni bir oturum açma izni verildi. Minimum izinler etkin özelliklere bağlıdır.
  • İzinler artık gerekli olmadığında güncelleştirilir. Örneğin, bir özelliği devre dışı bırakırsanız, en az ayrıcalık yapılandırmasını devre dışı bırakırsanız veya SQL Server için Azure uzantısını kaldırdığınızda izinler iptal edilir. İptal, artık gerekli olmayan izinlerin kalmamasını sağlar.

Önkoşullar

Bu bölüm, bu makaledeki örneği tamamlamak için ihtiyacınız olan sistem gereksinimlerini ve araçlarını tanımlar.

Sistem gereksinimleri

En az ayrıcalığı olan yapılandırma şunları gerektirir:

  • Windows Server 2012 veya üzeri
  • SQL Server 2012 veya üzeri
  • SQL Server hizmet hesabı, sysadmin sabit sunucu rolünün bir üyesi olmalıdır
  • Tüm veritabanları çevrimiçi ve güncelleştirilebilir olmalıdır

En az ayrıcalığı olan yapılandırma şu anda Linux'ta desteklenmiyor.

Önkoşullar - Azure Arc tarafından etkinleştirilen SQL Server'da listelenen diğer gereksinimler hala geçerlidir.

SQL Server hizmet hesabı

Varsayılan olarak, SQL Server hizmet hesabı sysadmin sabit sunucu rolünün bir üyesidir.

Önkoşullarda listelendiği gibi, SQL Server hizmet hesabının her SQL Server örneğindeki sysadmin sabit sunucu rolünün bir üyesi olması gerekir. SQL Server için Azure uzantısı, aşağıdaki durumlarda geçici olarak Deployer.exe olarak çalışan NT AUTHORITY\SYSTEM adlı bir işleme sahiptir:

  • Özellikler etkinleştirildi veya devre dışı bırakıldı
  • SQL Server örnekleri eklenir veya kaldırılır

Deployer.exe SQL Server'a bağlanmak ve SQL Server için Azure uzantısının gereken en düşük ayrıcalıkları kullandığından emin olmak için hangi özelliklerin etkinleştirildiğine veya devre dışı bırakıldığına bağlı olarak sunucu ve veritabanı rollerinde izinleri eklemek veya kaldırmak için SQL Server hizmet hesabının kimliğine bürüner. Bu izinleri değiştirmek için SQL Server hizmet hesabının sysadmin sunucu rolünün üyesi olması gerekir.

Sql Server hizmet hesabının sürekli sysadmin sunucu rolünün üyesi olmaması için bu işlemi daha fazla denetimle yönetmek istiyorsanız şu adımları izleyin:

  1. SQL Server hizmet hesabını geçici olarak sysadmin sunucu rolüne ekleyin.
  2. İzinlerin ayarlanması için Deployer.exe en az bir kez çalışmasına izin verin.
  3. SQL Server hizmet hesabını sysadmin rolünden kaldırın.

Özellikler etkinleştirildiğinde veya devre dışı bırakıldığında veya Deployer.exe gereken en düşük ayrıcalıkları vermesine izin vermek için SQL Server örnekleri eklendiğinde bu yordamı yineleyin.

Araçları

Bu makaledeki adımları tamamlamak için aşağıdaki araçlara ihtiyacınız vardır:

En az ayrıcalığı etkinleştir

  1. Azure CLI ile oturum açın.

    az login
    
  2. arcdata uzantısı sürümünü doğrulayın.

    az extension list -o table
    

    Sonuçlarda desteklenen bir arcdatasürümü varsa, sonraki adıma geçin.

    Gerekirse arcdata Azure CLI uzantısını yükleyin veya güncelleştirin.

    Uzantıyı yüklemek için:

    az extension add --name arcdata
    

    Uzantıyı güncelleştirmek için:

    az extension update --name arcdata
    
  3. Azure CLI ile en az ayrıcalığı etkinleştirin.

    En az ayrıcalığı etkinleştirmek için LeastPrivilege özellik bayrağını trueolarak ayarlayın. Bu görevi tamamlamak için, <resource-group> ve <machine-name>için güncelleştirilmiş değerlerle aşağıdaki komutu çalıştırın.

    az sql server-arc extension feature-flag set --name LeastPrivilege --enable true --resource-group <resource-group> --machine-name <machine-name>
    

    Örneğin, aşağıdaki komut myserveradlı kaynak grubundaki myrg adlı bir sunucu için en az ayrıcalığı etkinleştirir:

    az sql server-arc extension feature-flag set --name LeastPrivilege --enable true --resource-group myrg --machine-name myserver 
    

En az ayrıcalık yapılandırmasını doğrulama

Azure Arc tarafından etkinleştirilen SQL Server'ınızın en az ayrıcalıkla çalışacak şekilde yapılandırıldığını doğrulamak için:

  1. Windows hizmetlerinde Microsoft SQL Server Uzantı Hizmeti hizmetini bulun. hizmetin NT Service\SqlServerExtensionhizmet hesabı olarak çalıştığını doğrulayın. 

  2. Sunucuda görev zamanlayıcısını açın ve SqlServerExtensionPermissionProvider adlı olay temelli görevin Microsoft\SqlServerExtensionaltında oluşturulup oluşturulmadığını denetleyin.

    Note

    Temmuz 2024 sürümünden önce SqlServerExtensionPermissionProvider zamanlanmış bir görevdir. Her saat çalışır.

    Sunucuda görev zamanlayıcısını açın ve SqlServerExtensionPermissionProvideraltında Microsoft\SqlServerExtension adlı zamanlanmış bir görevin oluşturulup oluşturulmadığını denetleyin.

  3. SQL Server Management Studio'yu açın ve NT Service\SqlServerExtensionadlı oturum açmayı denetleyin. Hesaba şu izinlerin atandığını doğrulayın:

    • SQL'i bağlama
    • Veritabanı Durumunu Görüntüle
    • Sunucu Durumunu Görüntüle
  4. İzinleri aşağıdaki sorgularla doğrulayın:

    Sunucu düzeyi izinlerini doğrulamak için aşağıdaki sorguyu çalıştırın:

    EXECUTE AS LOGIN = 'NT Service\SqlServerExtension'  
    SELECT * FROM fn_my_permissions (NULL, 'SERVER');
    

    Veritabanı düzeyi izinlerini doğrulamak için <database name> veritabanlarınızdan birinin adıyla değiştirin ve aşağıdaki sorguyu çalıştırın:

    EXECUTE AS LOGIN = 'NT Service\SqlServerExtension'  
    USE <database name>; 
    SELECT * FROM fn_my_permissions (NULL, 'database');