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.

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.

Varsayılan olarak en az ayrıcalık etkinleştirilmiş

En az ayrıcalık, Azure Extension for SQL Server'ın aşağıdaki sürümlerinde varsayılan olarak etkinleştirilmiştir:

  • Version 1.1.3453.436
  • Sürüm 1.1.3518.465 ve sonraki sürümler

En az ayrıcalık, 1.1.3453.436 sürümlerinden önceki versiyonlarda veya 1.1.3464.439, 1.1.3494.451 ve 1.1.3500.453 sürümlerinde varsayılan olarak etkinleştirilmiyor. Bu sürümler için, en az ayrıcalığı manuel olarak etkinleştirmek için bu makaledeki adımları izleyin.

Note

Mevcut veya 1.1.2859.223 daha sonraki sürümleri kullanan sunucular için, otomatik yükseltme etkinleştirildiğinde, en az ayrıcalıklı yapılandırma otomatik yükseltmelerin bir parçası olarak uygulanır. En az ayrıcalıklı yapılandırmanın otomatik uygulanmasını önlemek için, sonrasında 1.1.2859.223genişletme yükseltmelerini bloklayın.

En az ayrıcalık etkinleştirildiğinde, Azure Extension for SQL Server otomatik olarak yerel Windows servis hesabı ve SQL Server girişi olarak oluşturulur ve yönetilirNT SERVICE\SqlServerExtension:

  • Bu uzantı hesaba yalnızca yapılandırma okuma ve depolama ile kayıt yazma için gereken Windows izinlerini verir.
  • Bu uzantı, girişe etkinleştirilmiş özelliklerin gerektirdiği minimum SQL Server izinlerini verir.
  • Uzantı, artık gerekli olmadıklarında, örneğin bir özelliği devre dışı bıraktığınızda izinleri geri alır.
  • Azure Extension for SQL Server'ı kaldırdığınızda veya en az ayrıcalığı devre dışı bıraktığınızda bu uzantı, hesabı kaldırıyor.

Önkoşullar

Bu bölüm, en az ayrıcalığı etkinleştirmek veya devre dışı bırakmak için gereken sistem gereksinimlerini ve araçları tanımlar.

Sistem gereksinimleri

En az ayrıcalık yapılandırması için gerekenler şunlardır:

  • Windows Server 2016 veya daha sonraki sürümler.
  • SQL Server 2014 (12.x) veya daha sonraki sürümler.
  • SQL Server hizmet hesabının sysadmin sabit sunucu rolünün üyesi olması gerekir.
  • Tüm veritabanları çevrimiçi ve güncellenebilir olmalıdır.

En az ayrıcalık şu anda Linux'ta desteklenmiyor.

Araçları

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

  • Azure CLI
  • arcdata Azure CLI uzantısı sürüm 1.5.9 veya daha yenisi
  • Asgari ayrıcalığı manuel olarak etkinleştirmek için SQL Server için Azure Uzantısı'nın 1.1.2859.223 veya sonraki sürümlerini kullanın.

En az ayrıcalığı etkinleştir veya devre dışı bırak

  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. Devre dışı bırakmak için özellik bayrağını ayarlayın false. Bu görevi tamamlamak için, <resource-group> ve <machine-name> için kendi değerlerinizi kullanarak 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. Hizmetler bölümünde Microsoft SQL Server Extension Service'i bulun. Hizmetin NT SERVICE\SqlServerExtension servis hesabı altında çalıştığını doğrulayın.

  2. Sunucuda Görev Zamanlayıcı'yı açın. SqlServerExtensionPermissionProvider adlı olay güdümlü bir görevin Microsoft\SqlServerExtension altında bulunduğunu doğrulayın.

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

    • CONNECT SQL
    • VIEW DATABASE STATE
    • VIEW SERVER STATE
  4. İzinleri aşağıdaki sorgularla doğrulayın:

    Sunucu düzeyinde izinleri 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');
    
    REVERT;
    

    Veritabanı düzeyinde izinleri doğrulamak için değerini veritabanlarınızdan birinin adıyla değiştirin <database-name> 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');
    
    REVERT;
    

İsteğe bağlı: SQL Server veritabanı motoru servis hesabını yönetin

Çoğu ortam için varsayılan hizmet hesabı yapılandırmasını kullanın. Yalnızca SQL Server veritabanı motoru hizmet hesabını sistem yöneticisi sabit sunucu rolünden uzantı işlemleri arasında kaldırmanız gerekiyorsa aşağıdaki prosedürü kullanın.

En az ayrıcalık modunu kullanmak için, SQL Server veritabanı motoru hizmet hesabı her SQL Server örneğinde sistem yöneticisi sabit sunucu rolünün bir üyesi olmalıdır. Bu üyelik, sistemin otomatik olarak izinleri vermesini veya iptal etmesini sağlar. Varsayılan olarak, SQL Server veritabanı motoru hizmet hesabı sistem yöneticisi sabit sunucu rolünün bir üyesidir.

SQL Server için Azure Uzantısı, şu durumlarda Deployer.exe adlı geçici bir işlemi NT AUTHORITY\SYSTEM olarak çalıştırır:

  • Özellikleri etkinleştiriyor veya devre dışı bırakıyorsunuz
  • SQL Server örnekleri ekler veya çıkarırsınız
  • Uzantını kurar veya yükseltirsiniz

Deployer.exe, SQL Server bağlandığında SQL Server hizmet hesabının kimliğine bürüner. Bağlandıktan sonra, hangi özelliklerin etkinleştirildiğine veya devre dışı bırakıldığına bağlı olarak sunucu ve veritabanı rollerindeki izinleri ekler veya kaldırır. Bu işlem, SQL Server için Azure Uzantısının gereken en düşük ayrıcalıkları kullanmasını sağlar.

SQL Server hizmet hesabının sysadmin sabit sunucu rolünün üyesi olmadığı şekilde bu işlemi daha fazla denetimle yönetmek istiyorsanız şu adımları izleyin:

  1. Uzantı yüklemeden veya yükseltmeden önce, bir özelliği etkinleştirip devre dışı bırakmadan veya SQL Server örneği eklemeden veya kaldırmadan önce, geçici olarak sistem yöneticisi sabit sunucu rolüne SQL Server veritabanı motoru hizmet hesabını ekleyin.
  2. İzinlerin ayarlanması için Deployer.exe en az bir kez çalışmasına izin verin.
  3. SQL Server hizmet hesabını sysadmin sabit sunucu rolünden kaldırın.

Uzantı kurduğunuzda veya yükselttiğinizde, bir özelliği etkinleştirdiğinizde veya devre dışı bıraktığınızda, SQL Server örneğini eklediğinizde veya kaldırdığınızda bu prosedürü tekrarlayın. Bu prosedür, gereken en az ayrıcalıkların verilmesini sağlar Deployer.exe .

Her uzatma yükseltmesi için bu işlemi tekrarlamanız gerektiği için, otomatik yükseltmeleri devre dışı bırakmayı düşünün. Sonra bu adımları gerçekleştiren ve uzantıyı yükselten bir betik kullanabilirsiniz.

Important

SQL Server Deployer.exe için Azure Uzantısı, hem NT AUTHORITY\SYSTEM hem de CONNECT SQL modlarında standard izniyle SQL Server bağlanabilmesi için least privilege gerektirir. Bu gereksinim, uzantının sağlama işleminden sonra hangi hizmet hesabını kullandığından bağımsız olarak, her zaman Deployer.exe hesabı altında çalışması nedeniyle vardır.

NT AUTHORITY\SYSTEM SQL Server bağlanamıyorsa, Deployer.exeNT SERVICE\SqlServerExtension oturum açamaz veya gerekli izinleri veremez. En az ayrıcalık modunu etkinleştirmeden önce, NT AUTHORITY\SYSTEMCONNECT SQL iznine sahip etkin bir SQL Server oturum açma iznine sahip olduğunu doğrulayın. Doğrulamak için Ön Koşullar'a bakınız.

SQL Server veritabanı motoru servis hesabı sistem yöneticisi sabit sunucu rolüne sahip değilse, tam zamanında izinler verilemez.

Bu izinlerin ne zaman kullanıldığına dair detaylar için Configure Windows service accounts and permissions for Azure Extension for SQL Server bkz.

  • Cloud için Microsoft Defender ile SQL Server'ın Korunması
  • Azure Arc tarafından etkinleştirilen SQL Server için en iyi yöntemler değerlendirmesini yapılandırma
  • Bilinen sorunlar: Azure Arc tarafından etkinleştirilen SQL Server