Azure Synapse sunucusuz SQL havuzlarında kullanıcı izinlerini yönetme

Tamamlandı

Azure Depolama, verilerin güvenliğini sağlamak için hem Azure rol tabanlı erişim denetimini (Azure RBAC) hem de Unix için Taşınabilir İşletim Sistemi Arabirimi (POSIX) gibi erişim denetim listelerini (ACL) destekleyen bir erişim denetimi modeli uygular

Bir güvenlik sorumlusunu dosyalar ve dizinler için erişim düzeyiyle ilişkilendirebilirsiniz. Bu ilişkilendirmeler bir erişim denetimi listesinde (ACL) yakalanır. Depolama hesabınızdaki her dosya ve dizinin bir erişim denetimi listesi vardır. Bir güvenlik sorumlusu bir dosya veya dizin üzerinde işlem yapmaya çalıştığında, ACL denetimi güvenlik sorumlusunun (kullanıcı, grup, hizmet sorumlusu veya yönetilen kimlik) işlemi gerçekleştirmek için doğru izin düzeyine sahip olup olmadığını belirler.

İki tür erişim denetimi listesi vardır:

  • ACL'lere erişme

    Bir nesneye erişimi denetler. Hem dosyalar hem de dizinler erişim ACL'lerine sahiptir.

  • Varsayılan ACL'ler

    Bu dizin altında oluşturulan alt öğeler için erişim ACL'lerini belirleyen bir dizinle ilişkilendirilmiş ACL şablonlarıdır. Dosyaların varsayılan ACL'leri yoktur.

Hem erişim ACL'leri hem de varsayılan ACL'ler aynı yapıya sahiptir.

Kapsayıcı nesnesindeki izinler Okuma, Yazma ve Yürütme'dir ve aşağıdaki tabloda gösterildiği gibi dosya ve dizinlerde kullanılabilir:

İzin düzeyleri

İzin Dosya Dizin
Okuma (R) Bir dosyanın içeriğini okuyabilir Dizinin içeriğini listelemek için Okuma ve Yürütme gerektirir
Yazma (W) Bir dosyaya yazabilir veya ekleyebilir Bir dizinde alt öğeler oluşturmak için Yazma ve Yürütme gerektirir
Yürütme (X) Data Lake Storage 2. Nesil bağlamında bir anlam ifade etmez Bir dizinin alt öğeleri arasında geçiş yapmak için gereklidir

ACL'leri ayarlama yönergeleri

ACL girişinde atanan sorumlu olarak her zaman Microsoft Entra güvenlik gruplarını kullanın. Tek tek kullanıcıları veya hizmet sorumlularını doğrudan atama fırsatına direnin. Bu yapıyı kullanmak, ACL'leri dizin yapısının tamamına yeniden uygulamanıza gerek kalmadan kullanıcı veya hizmet sorumluları eklemenize ve kaldırmanıza olanak sağlar. Bunun yerine, kullanıcıları ve hizmet sorumlularını uygun Microsoft Entra güvenlik grubuna ekleyebilir veya kaldırabilirsiniz.

Grupları ayarlamanın birçok yolu vardır. Örneğin, sunucunuz tarafından oluşturulan günlük verilerini tutan /LogData adlı bir dizininiz olduğunu düşünün. Azure Data Factory (ADF) verileri bu klasöre alır. Hizmet mühendisliği ekibinden belirli kullanıcılar günlükleri karşıya yükler ve bu klasörün diğer kullanıcılarını yönetir ve çeşitli Databricks kümeleri bu klasördeki günlükleri analiz eder.

Bu etkinlikleri etkinleştirmek için logswriter grubu ve LogsReader grubu oluşturabilirsiniz. Ardından, izinleri aşağıdaki gibi atayabilirsiniz:

  • LogsWriter grubunu rwx izinleriyle /LogData dizininin ACL'sine ekleyin.
  • LogsReader grubunu r-x izinleriyle /LogData dizininin ACL'sine ekleyin.
  • LogsWriters grubuna ADF için hizmet sorumlusu nesnesini veya Yönetilen Hizmet Kimliği'ni (MSI) ekleyin.
  • Hizmet mühendisliği ekibindeki kullanıcıları LogsWriter grubuna ekleyin.
  • Databricks için hizmet sorumlusu nesnesini veya MSI'sini LogsReader grubuna ekleyin.

Hizmet mühendisliği ekibindeki bir kullanıcı şirketten ayrılırsa, bu kullanıcıyı LogsWriter grubundan kaldırabilirsiniz. Bu kullanıcıyı bir gruba eklemediyseniz, bunun yerine o kullanıcı için ayrılmış bir ACL girdisi eklediyseniz, bu ACL girdisini /LogData dizininden kaldırmanız gerekir. Girdiyi /LogData dizininin tüm dizin hiyerarşisindeki tüm alt dizinlerden ve dosyalardan da kaldırmanız gerekir.

Sunucusuz SQL havuzu kullanıcıları için gerekli roller

Salt okunur erişime ihtiyacı olan kullanıcılar için Depolama Blob Veri Okuyucusu adlı rolü atamanız gerekir.

Okuma/yazma erişimine ihtiyaç duyan kullanıcılar için Depolama Blob Veri Katkıda Bulunanı adlı bir rol atamanız gerekir. Kullanıcının seçme (CETAS) olarak dış tablo oluşturma erişimi olması gerekiyorsa Okuma/Yazma erişimi gerekir.

Dekont

Kullanıcının sahip veya katkıda bulunan rolü varsa, bu rol yeterli değildir. Azure Data Lake Depolama 2. nesil, atanması gereken süper rollere sahiptir.

Veritabanı düzeyi izni

Kullanıcıya daha ayrıntılı erişim sağlamak için Transact-SQL söz dizimini kullanarak oturum açma bilgileri ve kullanıcılar oluşturmanız gerekir.

Kullanıcıya tek bir sunucusuz SQL havuzu veritabanına erişim izni vermek için şu örnekteki adımları izleyin:

  1. LOGIN oluşturma

    use master
    CREATE LOGIN [alias@domain.com] FROM EXTERNAL PROVIDER;
    
  2. KULLANICI Oluştur

    use yourdb -- Use your DB name
    CREATE USER alias FROM LOGIN [alias@domain.com];
    
  3. Belirtilen rolün üyelerine KULLANICI ekleme

    use yourdb -- Use your DB name
    alter role db_datareader 
    Add member alias -- Type USER name from step 2
    -- You can use any Database Role which exists 
    -- (examples: db_owner, db_datareader, db_datawriter)
    -- Replace alias with alias of the user you would like to give access and domain with the company domain you are using.
    

Sunucu düzeyi izni

  1. Bir kullanıcıya tüm sunucusuz SQL havuzu veritabanlarına tam erişim vermek için şu örnekteki adımı izleyin:

    CREATE LOGIN [alias@domain.com] FROM EXTERNAL PROVIDER;
    ALTER SERVER ROLE sysadmin ADD MEMBER [alias@domain.com];