From c01db45e1fc7e13cb2825290ac1f99690870b967 Mon Sep 17 00:00:00 2001 From: Translator Date: Wed, 26 Feb 2025 01:02:08 +0000 Subject: [PATCH] Translated ['src/pentesting-cloud/azure-security/az-services/az-sql.md'] --- .../azure-security/az-services/az-sql.md | 78 ++++++++++++------- 1 file changed, 52 insertions(+), 26 deletions(-) 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 ba2138fbe..ec5e9d60c 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-sql.md +++ b/src/pentesting-cloud/azure-security/az-services/az-sql.md @@ -4,7 +4,7 @@ ## Azure SQL -Azure SQL, **Azure bulutunda SQL Server veritabanı motorunu** kullanan yönetilen, güvenli ve akıllı ürünler ailesidir. Bu, sunucularınızın fiziksel yönetimiyle ilgili endişelenmenize gerek olmadığı ve verilerinizi yönetmeye odaklanabileceğiniz anlamına gelir. +Azure SQL, **Azure bulutundaki SQL Server veritabanı motorunu** kullanan yönetilen, güvenli ve akıllı ürünler ailesidir. Bu, sunucularınızın fiziksel yönetimiyle ilgili endişelenmenize gerek olmadığı ve verilerinizi yönetmeye odaklanabileceğiniz anlamına gelir. Azure SQL, dört ana teklifi içerir: @@ -20,11 +20,11 @@ Azure SQL, dört ana teklifi içerir: - Kamu uç noktası (belirli ağlara erişimi 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). +- 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). **Kimlik Doğrulama Yöntemleri:** -- Microsoft **Entra-only** kimlik doğrulaması: Hizmete erişimi olacak Entra ilkelerini belirtmeniz gerekir. +- 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. @@ -32,19 +32,45 @@ Herhangi bir SQL kimlik doğrulamasına izin verilirse, bir yönetici kullanıc **Ş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 Azure yönetilen anahtarı kullanılır, ancak bir müşteri yönetilen şifreleme anahtarı (CMEK) de kullanılabilir. +- “Ş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. **Yönetilen Kimlikler:** - Sistem ve kullanıcı yönetilen MI'ler atamak mümkündür. - Şifreleme anahtarına (CMEK kullanılıyorsa) ve veritabanlarından diğer hizmetlere erişmek için kullanılır. -- Birden fazla UMI atanmışsa, kullanılacak varsayılan olanı belirtmek mümkündür. -- Kiracılar arası erişim için bir federasyon istemci kimliği yapılandırmak mümkündü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. +- Ç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: +```sql +-- Create a credential for the managed identity +CREATE DATABASE SCOPED CREDENTIAL [ManagedIdentityCredential] +WITH IDENTITY = 'Managed Identity'; +GO + +-- Create an external data source pointing to the blob storage to access +CREATE EXTERNAL DATA SOURCE ManagedIdentity +WITH ( +TYPE = BLOB_STORAGE, +LOCATION = 'https://testsqlidentity.blob.core.windows.net/sqlcontainer', +CREDENTIAL = ManagedIdentityCredential +); +GO + +-- Read a file from ths storage and return it +SELECT * +FROM OPENROWSET( +BULK 'message.txt', +DATA_SOURCE = 'ManagedIdentity', +SINGLE_CLOB +) AS DataFile; +GO +``` **Microsoft Defender:** -- "Olası veritabanı güvenlik açıklarını azaltmak ve anormal etkinlikleri tespit etmek" için faydalıdır. -- Defender hakkında kendi dersinde konuşacağız (birçok diğer Azure hizmetinde etkinleştirilebilir). +- 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). **Yedeklemeler:** - Yedekleme sıklığı, saklama politikalarında yönetilmektedir. @@ -56,11 +82,11 @@ Herhangi bir SQL kimlik doğrulamasına izin verilirse, bir yönetici kullanıc **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. -Bir SQL veritabanı oluşturmak için, barındırılacağı SQL sunucusunu belirtmek gerekir. +Bir SQL veritabanı oluşturmak için, barındırılacağı SQL sunucusunu belirtmek gerekmektedir. ### SQL Veritabanı Güvenlik Özellikleri -- **Her Zaman Güncel**: En son kararlı SQL Server sürümünde çalışır ve yeni özellikler ve yamalar otomatik olarak alır. +- **Her Zaman Güncel**: En son kararlı SQL Server sürümünde çalışır ve yeni özellikler ile yamaları otomatik olarak alır. - **Devralınan SQL Server güvenlik özellikleri:** - Kimlik doğrulama (SQL ve/veya Entra ID) - Atanmış Yönetilen Kimlikler @@ -69,31 +95,31 @@ Bir SQL veritabanı oluşturmak için, barındırılacağı SQL sunucusunu belir - Yedeklemeler - … - **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 kuruluş için faydalıdır. +- **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 Havuz** parçası olabilir. Esnek havuzlar, birden fazla veritabanını yönetmek için yapılandırılabilir hesaplama (eDTU'lar) 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 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. #### Azure SQL Sütun Seviyesi Güvenliği (Maskeleme) & Satır Seviyesi Güvenliği -**Azure SQL'nin dinamik** veri maskelemesi, **yetkisiz kullanıcılardan hassas bilgileri gizleyerek** korumaya yardımcı olan bir özelliktir. Gerçek verileri değiştirmek yerine, görüntülenen verileri dinamik olarak maskeleyerek, kredi kartı numaraları gibi hassas ayrıntıların gizlenmesini sağlar. +**Azure SQL'in dinamik** veri maskelemesi, **hassas bilgileri yetkisiz kullanıcılardan gizleyerek korumaya yardımcı olan** bir özelliktir. Gerçek verileri değiştirmek yerine, görüntülenen verileri dinamik olarak maskeleyerek, kredi kartı numaraları gibi hassas ayrıntıların gizli kalmasını sağlar. -**Dinamik Veri Maskeleme**, maskelemeyen (bu kullanıcılar belirtilmelidir) ve yöneticiler dışındaki tüm kullanıcıları etkiler. Dinamik veri maskelemeden muaf olan SQL kullanıcılarını belirten yapılandırma seçeneğine sahiptir; **yöneticiler her zaman hariçtir**. +**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, kuruluşlar veritabanı düzeyinde ince ayar erişimi uygulayabilir. +**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 Managed Instance +### Azure SQL Yönetilen Örnek -**Azure SQL Managed Instances**, daha büyük ölçekli, tüm SQL Server örneği kapsamındaki dağıtımlar içindir. En son SQL Server yerinde (Enterprise Edition) Veritabanı Motoru ile neredeyse %100 uyumluluk sağlar; bu, yaygın güvenlik endişelerini ele alan yerel bir sanal ağ (VNet) uygulaması sunar ve yerinde SQL Server müşterileri için uygun bir iş modeli sağlar. +**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 Sanal Makineleri -**Azure SQL Sanal Makineleri**, **işletim sistemini** ve SQL Server örneğini kontrol etmenizi sağlar; çünkü bir VM, SQL sunucusunu çalıştıran VM hizmetinde oluşturulacaktır. +**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 olan 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 eklenmiş olabileceği**, dosya paylaşımlarının bağlanmış olabileceğ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. +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. -Ayrıca, **otomatik SQL güncellemeleri**, **otomatik yedeklemeler**, **Entra ID kimlik doğrulaması** ve diğer SQL hizmetlerinin çoğu gibi şeyleri yapılandırmak da mümkündür. +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. ## Enumeration @@ -278,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şmesine izin verip vermediğini de kontrol etmelisiniz: +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: ```bash sqlcmd -S .database.windows.net -U -P -d ``` @@ -295,7 +321,7 @@ sqlcmd -S .database.windows.net -U -P .database.windows.net -U -P