Azure Synapse sunucusuz SQL havuzlarında kullanıcı izinlerini yönetme
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:
LOGIN oluşturma
use master CREATE LOGIN [alias@domain.com] FROM EXTERNAL PROVIDER;
KULLANICI Oluştur
use yourdb -- Use your DB name CREATE USER alias FROM LOGIN [alias@domain.com];
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
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];