diff --git a/src/pentesting-cloud/azure-security/az-services/az-sql.md b/src/pentesting-cloud/azure-security/az-services/az-sql.md index ec5e9d60c..80f4468f5 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-sql.md +++ b/src/pentesting-cloud/azure-security/az-services/az-sql.md @@ -17,7 +17,7 @@ Azure SQL, dört ana teklifi içerir: **Ağ erişimi:** -- Kamu uç noktası (belirli ağlara erişimi sınırlayabilir). +- Kamu uç noktası (erişimi belirli ağlarla sınırlayabilir). - Özel uç noktalar. - Alan adlarına dayalı bağlantıları kısıtlamak da mümkündür. - Azure hizmetlerinin erişimine izin vermek de mümkündür (örneğin, portalda Sorgu düzenleyicisini kullanmak veya bir Azure VM'nin bağlanmasına izin vermek için). @@ -26,20 +26,20 @@ Azure SQL, dört ana teklifi içerir: - Microsoft **Entra-sadece** kimlik doğrulaması: Hizmete erişimi olacak Entra ilkelerini belirtmeniz gerekir. - **Hem SQL hem de Microsoft Entra** kimlik doğrulaması: Kullanıcı adı ve şifre ile birlikte geleneksel SQL kimlik doğrulaması. -- **Sadece SQL** kimlik doğrulaması: Sadece veritabanı kullanıcıları aracılığıyla erişime izin verin. +- **Sadece SQL** kimlik doğrulaması: Erişimi yalnızca veritabanı kullanıcıları aracılığıyla sağlamak. Herhangi bir SQL kimlik doğrulamasına izin verilirse, bir yönetici kullanıcısı (kullanıcı adı + şifre) belirtilmelidir ve Entra ID kimlik doğrulaması seçilirse, en az bir yönetici erişimine sahip ilkenin de belirtilmesi gerekir. **Şifreleme:** - “Şeffaf veri şifrelemesi” olarak adlandırılır ve veritabanlarını, yedeklemeleri ve dinlenme halindeki günlükleri şifreler. -- Her zamanki gibi, varsayılan olarak bir Azure yönetilen anahtar kullanılır, ancak bir müşteri yönetilen şifreleme anahtarı (CMEK) de kullanılabilir. +- Her zamanki gibi, varsayılan olarak bir Azure yönetilen anahtar kullanılır, ancak bir müşteri yönetilen şifreleme anahtarı (CMEK) da kullanılabilir. **Yönetilen Kimlikler:** -- Sistem ve kullanıcı yönetilen MI'ler atamak mümkündür. +- Sistem ve kullanıcı yönetilen MI'lerin atanması mümkündür. - Şifreleme anahtarına (CMEK kullanılıyorsa) ve veritabanlarından diğer hizmetlere erişmek için kullanılır. - Veritabanından erişilebilecek Azure hizmetlerinin bazı örnekleri için [bu belge sayfasına](https://learn.microsoft.com/en-us/sql/t-sql/statements/create-external-data-source-transact-sql) bakın. -- Birden fazla UMI atandığında, kullanılacak varsayılan olanı belirtmek mümkündür. +- Birden fazla UMI atanmışsa, kullanılacak varsayılan olanı belirtmek mümkündür. - Çapraz kiracı erişimi için bir federasyonlu istemci kimliği yapılandırmak mümkündür. Bir SQL veritabanından bir blob depolama içindeki bilgilere erişmek için bazı komutlar: @@ -70,7 +70,7 @@ GO **Microsoft Defender:** - Potansiyel veritabanı güvenlik açıklarını azaltmak ve anormal aktiviteleri tespit etmek için faydalıdır. -- Defender'dan kendi dersimizde bahsedeceğiz (birçok diğer Azure hizmetinde etkinleştirilebilir). +- Defender hakkında kendi dersinde konuşacağız (birçok diğer Azure hizmetinde etkinleştirilebilir). **Yedeklemeler:** - Yedekleme sıklığı, saklama politikalarında yönetilmektedir. @@ -80,7 +80,7 @@ GO ## Azure SQL Database -**Azure SQL Database**, ölçeklenebilir ve güvenli ilişkisel veritabanı çözümleri sunan **tamamen yönetilen bir veritabanı platformu olarak hizmettir (PaaS)**. En son SQL Server teknolojileri üzerine inşa edilmiştir ve altyapı yönetimi gereksinimini ortadan kaldırarak bulut tabanlı uygulamalar için popüler bir seçim haline gelmiştir. +**Azure SQL Database**, ölçeklenebilir ve güvenli ilişkisel veritabanı çözümleri sunan **tamamen yönetilen bir veritabanı platformu olarak hizmet (PaaS)**'dir. En son SQL Server teknolojileri üzerine inşa edilmiştir ve altyapı yönetimi gereksinimini ortadan kaldırarak bulut tabanlı uygulamalar için popüler bir seçim haline gelmiştir. Bir SQL veritabanı oluşturmak için, barındırılacağı SQL sunucusunu belirtmek gerekmektedir. @@ -97,7 +97,7 @@ Bir SQL veritabanı oluşturmak için, barındırılacağı SQL sunucusunu belir - **Veri yedekliliği:** Seçenekler yerel, bölge, Coğrafi veya Coğrafi-Bölge yedekli. - **Defter:** Verilerin bütünlüğünü kriptografik olarak doğrular, herhangi bir müdahalenin tespit edilmesini sağlar. Finansal, tıbbi ve hassas verileri yöneten herhangi bir organizasyon için faydalıdır. -Bir SQL veritabanı, **esnek Havuzun** bir parçası olabilir. Esnek havuzlar, birden fazla veritabanını yönetmek için yapılandırılabilir hesaplama (eDTUs) ve depolama kaynaklarını paylaşarak maliyet etkin bir çözüm sunar; fiyatlandırma yalnızca tahsis edilen kaynaklara dayanır, veritabanı sayısına değil. +Bir SQL veritabanı, **esnek Havuz**'un bir parçası olabilir. Esnek havuzlar, birden fazla veritabanını yönetmek için yapılandırılabilir hesaplama (eDTUs) ve depolama kaynaklarını paylaşarak maliyet etkin bir çözüm sunar; fiyatlandırma yalnızca tahsis edilen kaynaklara dayanır, veritabanı sayısına değil. #### Azure SQL Sütun Seviyesi Güvenliği (Maskeleme) & Satır Seviyesi Güvenliği @@ -105,19 +105,19 @@ Bir SQL veritabanı, **esnek Havuzun** bir parçası olabilir. Esnek havuzlar, b **Dinamik Veri Maskelemesi**, maskelemeyen (bu kullanıcılar belirtilmelidir) ve yöneticiler dışındaki tüm kullanıcıları etkiler. Dinamik veri maskelemesinden muaf olan SQL kullanıcılarını belirten bir yapılandırma seçeneği vardır; **yöneticiler her zaman hariçtir**. -**Azure SQL Satır Seviyesi Güvenliği (RLS)**, bir kullanıcının hangi satırları görüntüleyebileceğini veya değiştirebileceğini **kontrol eden** bir özelliktir; her kullanıcının yalnızca kendileriyle ilgili verileri görmesini sağlar. Filtre veya engelleme yargıları ile güvenlik politikaları oluşturarak, organizasyonlar veritabanı düzeyinde ince ayar erişim uygulayabilirler. +**Azure SQL Satır Seviyesi Güvenliği (RLS)**, **bir kullanıcının hangi satırları görüntüleyebileceğini veya değiştirebileceğini kontrol eden** bir özelliktir; her kullanıcının yalnızca kendileriyle ilgili verileri görmesini sağlar. Filtre veya engelleme yargıları ile güvenlik politikaları oluşturarak, organizasyonlar veritabanı düzeyinde ince ayrıntılı erişimi zorlayabilirler. -### Azure SQL Yönetilen Örnek +### Azure SQL Yönetilen Örneği -**Azure SQL Yönetilen Örnekler**, daha büyük ölçekli, tüm SQL Server örneği kapsamındaki dağıtımlar içindir. En son SQL Server yerel (Enterprise Edition) Veritabanı Motoru ile neredeyse %100 uyumluluk sağlar; bu, yaygın güvenlik endişelerini ele alan yerel sanal ağ (VNet) uygulaması sunar ve yerel SQL Server müşterileri için uygun bir iş modeli sağlar. +**Azure SQL Yönetilen Örnekleri**, daha büyük ölçekli, tüm SQL Server örneği kapsamındaki dağıtımlar içindir. En son SQL Server yerel (Enterprise Edition) Veritabanı Motoru ile neredeyse %100 uyumluluk sağlar; bu, yaygın güvenlik endişelerini ele alan yerel sanal ağ (VNet) uygulaması sunar ve yerel SQL Server müşterileri için uygun bir iş modeli sağlar. ### Azure SQL Sanal Makineleri **Azure SQL Sanal Makineleri**, **işletim sistemini** ve SQL Server örneğini kontrol etme imkanı sunar; çünkü bir VM, SQL sunucusunu çalıştıran VM hizmetinde oluşturulacaktır. Bir SQL Sanal Makinesi oluşturulduğunda, SQL sunucusunu barındıracak VM'nin **tüm ayarlarını seçmek mümkündür** (VM dersinde gösterildiği gibi). -- Bu, VM'nin bazı VNet'lere erişeceği, **Yönetilen Kimliklerin** ona eklenmiş olabileceği, dosya paylaşımlarının bağlanabileceği anlamına gelir... bu da SQL'den VM'ye geçişi oldukça ilginç hale getirir. -- Ayrıca, SQL'in belirli bir anahtar kasasına erişimini **sağlamak için bir uygulama kimliği ve sırrı** yapılandırmak mümkündür; bu, hassas bilgileri içerebilir. +- Bu, VM'nin bazı VNet'lere erişeceği, **Yönetilen Kimliklerin eklenmiş olabileceği**, dosya paylaşımlarının bağlanabileceği anlamına gelir... bu da SQL'den VM'ye geçişi oldukça ilginç hale getirir. +- Ayrıca, SQL'nin belirli bir anahtar kasasına erişmesine **izin vermek için** bir uygulama kimliği ve sırrı yapılandırmak mümkündür; bu, hassas bilgileri içerebilir. Ayrıca, **otomatik SQL güncellemeleri**, **otomatik yedeklemeler**, **Entra ID kimlik doğrulaması** ve diğer SQL hizmetlerinin çoğu özelliği gibi şeyleri yapılandırmak da mümkündür. @@ -209,7 +209,7 @@ az rest --method get \ # Get DataMaskingPolicies of a database az rest --method get \ ---uri "https://management.azure.com/subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.Sql/servers/getstorageserver/databases/masktest/dataMaskingPolicies/Default?api-version=2021-11-01" +--uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Sql/servers//databases//dataMaskingPolicies/Default?api-version=2021-11-01" az rest --method get \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Sql/servers//databases//dataMaskingPolicies/Default/rules?api-version=2021-11-01" @@ -258,7 +258,7 @@ Get-AzSqlVM {{#endtab}} {{#endtabs}} -Ayrıca, veritabanındaki Dinamik Veri Maskesi ve Satır Düzeyi politikalarını listelemek istiyorsanız, sorgulayabilirsiniz: +Ayrıca, veritabanındaki Dinamik Veri Maskeleme ve Satır Düzeyi politikalarını listelemek istiyorsanız, sorgulayabilirsiniz: ```sql --Enumerates the masked columns SELECT @@ -304,7 +304,7 @@ $Connection.Close() invoke-sql 'Select Distinct TABLE_NAME From information_schema.TABLES;' ``` -Veritabanına erişmek için sqlcmd de kullanabilirsiniz. Sunucunun genel bağlantılara izin verip vermediğini bilmek önemlidir `az sql server show --name --resource-group `, ayrıca güvenlik duvarı kuralının IP'mizin erişimine izin verip vermediğini de kontrol etmelisiniz: +Veritabanına erişmek için sqlcmd de kullanabilirsiniz. Sunucunun kamu bağlantılarına izin verip vermediğini bilmek önemlidir `az sql server show --name --resource-group `, ayrıca güvenlik duvarı kuralının IP'mizin erişmesine izin verip vermediğini de kontrol etmelisiniz: ```bash sqlcmd -S .database.windows.net -U -P -d ``` @@ -321,7 +321,7 @@ sqlcmd -S .database.windows.net -U -P