Azure SQL Veritabanı ve Azure SQL Yönetilen Örneği ile ortak güvenlik gereksinimlerini karşılamaya yönelik Playbook
Şunlar için geçerlidir: Azure SQL Veritabanı Azure SQL Yönetilen Örneği
Bu makalede, yaygın güvenlik gereksinimlerini çözmeye yönelik en iyi yöntemler sağlanmaktadır. Tüm gereksinimler tüm ortamlar için geçerli değildir ve hangi özelliklerin uygulandığı konusunda veritabanınıza ve güvenlik ekibinize danışmanız gerekir.
Not
Microsoft Entra Id daha önce Azure Active Directory (Azure AD) olarak biliniyordu.
Yaygın güvenlik gereksinimlerini çözme
Bu belge, Azure SQL Veritabanı ve Azure SQL Yönetilen Örneği kullanarak yeni veya mevcut uygulamalar için genel güvenlik gereksinimlerini çözme konusunda rehberlik sağlar. Üst düzey güvenlik alanlarına göre düzenlenmiştir. Belirli tehditleri ele almak için Ortak güvenlik tehditleri ve olası risk azaltmalar bölümüne bakın. Sunulan önerilerden bazıları, uygulamaları şirket içinden Azure'a geçirirken geçerli olsa da, geçiş senaryoları bu belgenin odağı değildir.
Bu kılavuzda ele alınan Azure SQL Veritabanı dağıtım teklifleri
- Azure SQL Veritabanı: sunuculardaki tek veritabanları ve elastik havuzlar
- Azure SQL Yönetilen Örnek
Bu kılavuzda ele alınmayan dağıtım teklifleri
- Azure Synapse Analytics
- Azure SQL VM'leri (IaaS)
- SQL Server
Hedef Kitle
Bu kılavuzun hedef kitleleri, müşteriler Azure SQL Veritabanı güvenliğini sağlama konusunda sorularla karşılaşıyor. Bu en iyi uygulama makalesine ilgi duyan roller şunlardır ancak bunlarla sınırlı değildir:
- Güvenlik Mimarları
- Güvenlik Yöneticileri
- Uyumluluk Memurları
- Gizlilik Görevlileri
- Güvenlik Mühendisleri
Bu kılavuzu kullanma
Bu belge, mevcut Azure SQL Veritabanı güvenlik belgelerimizin bir eşlikçisi olarak tasarlanmıştır.
Aksi belirtilmediği sürece, ilgili hedefe veya gereksinime ulaşmak için her bölümde listelenen tüm en iyi yöntemleri izlemenizi öneririz. Belirli güvenlik uyumluluk standartlarını veya en iyi uygulamaları karşılamak için, önemli mevzuat uyumluluğu denetimleri uygun olan her yerde Gereksinimler veya Hedefler bölümünde listelenir. Bu makalede bahsedilen güvenlik standartları ve düzenlemeleri şunlardır:
- FedRAMP: AC-04, AC-06
- SOC: CM-3, SDL-3
- ISO/IEC 27001: Erişim Denetimi, Şifreleme
- Microsoft Operasyonel Güvenlik Güvencesi (OSA) uygulamaları: Uygulama #1-6 ve #9
- NIST Özel Yayını 800-53 Güvenlik Denetimleri: AC-5, AC-6
- PCI DSS: 6.3.2, 6.4.2
Burada listelenen önerileri ve en iyi yöntemleri güncelleştirmeyi planlıyoruz. Bu makalenin altındaki Geri Bildirim bağlantısını kullanarak bu belge için giriş veya düzeltmeler sağlayın.
Kimlik Doğrulaması
Kimlik doğrulaması , kullanıcının iddia ettiği kişi olduğunu kanıtlama işlemidir. Azure SQL Veritabanı ve SQL Yönetilen Örneği iki kimlik doğrulama türünü destekler:
- SQL kimlik doğrulaması
- Microsoft Entra doğrulaması
Not
Microsoft Entra kimlik doğrulaması tüm araçlar ve üçüncü taraf uygulamalar için desteklenmeyebilir.
Kimlikler için merkezi yönetim
Merkezi kimlik yönetimi aşağıdaki avantajları sunar:
- Sunucularda, veritabanlarında ve yönetilen örneklerde oturum açma işlemlerini yinelemeden grup hesaplarını yönetin ve kullanıcı izinlerini denetleyin.
- Basitleştirilmiş ve esnek izin yönetimi.
- Büyük ölçekte uygulamaların yönetimi.
Uygulama
- Merkezi kimlik yönetimi için Microsoft Entra kimlik doğrulamasını kullanın.
En iyi uygulamalar
Bir Microsoft Entra kiracısı oluşturun ve insan kullanıcıları temsil eden kullanıcılar oluşturun ve uygulamaları, hizmetleri ve otomasyon araçlarını temsil eden hizmet sorumluları oluşturun. Hizmet sorumluları, Windows ve Linux'taki hizmet hesaplarıyla eşdeğerdir.
Grup ataması aracılığıyla Microsoft Entra sorumlularına kaynaklara erişim hakları atama: Microsoft Entra grupları oluşturun, gruplara erişim verin ve gruplara tek tek üyeler ekleyin. Veritabanınızda, Microsoft Entra gruplarınıza eşlenen bağımsız veritabanı kullanıcıları oluşturun. Veritabanı içinde izin atamak için, gruplarınızı temsil eden kapsanan veritabanı kullanıcılarını veritabanı rollerine ekleyin veya bunlara doğrudan izin verin.
- SQL ile Microsoft Entra kimlik doğrulamasını yapılandırma ve yönetme ve SQL ile Microsoft Entra kimlik doğrulamasını kullanma makalelerine bakın.
Not
SQL Yönetilen Örneği'da, veritabanındaki Microsoft Entra sorumlularıyla
master
eşleyen oturum açma bilgileri de oluşturabilirsiniz. Bkz . CREATE LOGIN (Transact-SQL).Microsoft Entra gruplarının kullanılması izin yönetimini ve hem grup sahibini basitleştirir hem de kaynak sahibi gruba üye ekleyebilir/gruptan üye kaldırabilir.
Her sunucu veya yönetilen örnek için Microsoft Entra yöneticileri için ayrı bir grup oluşturun.
- Sunucunuz için Microsoft Entra yöneticisi sağlama makalesine bakın.
Microsoft Entra Id denetim etkinlik raporlarını kullanarak Microsoft Entra grup üyeliği değişikliklerini izleyin.
Yönetilen örnek için, Microsoft Entra yöneticisi oluşturmak için ayrı bir adım gerekir.
- Yönetilen örneğiniz için Microsoft Entra yöneticisi sağlama makalesine bakın.
Not
- Microsoft Entra kimlik doğrulaması Azure SQL denetim günlüklerine kaydedilir, ancak Microsoft Entra oturum açma günlüklerine kaydedilmez.
- Azure'da verilen Azure RBAC izinleri Azure SQL Veritabanı veya SQL Yönetilen Örneği izinleri için geçerli değildir. Bu tür izinler mevcut SQL izinleri kullanılarak el ile oluşturulmalıdır/eşlenmelidir.
- İstemci tarafında, Microsoft Entra kimlik doğrulamasının İnternet'e veya Kullanıcı Tanımlı Yol (UDR) üzerinden bir sanal ağa erişmesi gerekir.
- Microsoft Entra erişim belirteci istemci tarafında önbelleğe alınır ve yaşam süresi belirteç yapılandırmasına bağlıdır. Microsoft Entra Id'de yapılandırılabilir belirteç ömrü makalesine bakın
- Microsoft Entra kimlik doğrulaması sorunlarını giderme yönergeleri için şu bloga bakın: Microsoft Entra Kimliği Sorunlarını Giderme.
Microsoft Entra çok faktörlü kimlik doğrulaması
Bahsedilenler: OSA Uygulaması #2, ISO Erişim Denetimi (AC)
Microsoft Entra çok faktörlü kimlik doğrulaması, birden fazla kimlik doğrulama biçimi gerektirerek ek güvenlik sağlamaya yardımcı olur.
Uygulama
Koşullu Erişim kullanarak Microsoft Entra Id'de çok faktörlü kimlik doğrulamasını etkinleştirin ve etkileşimli kimlik doğrulaması kullanın.
Alternatif olarak, tüm Microsoft Entra kiracısı veya Active Directory etki alanı için çok faktörlü kimlik doğrulamasını etkinleştirebilirsiniz.
En iyi uygulamalar
Microsoft Entra Id'de Koşullu Erişimi etkinleştirin (Premium abonelik gerektirir).
- Microsoft Entra Id'de Koşullu Erişim makalesine bakın.
Microsoft Entra grupları oluşturun ve Microsoft Entra Koşullu Erişim'i kullanarak seçili gruplar için çok faktörlü kimlik doğrulama ilkesini etkinleştirin.
- Koşullu Erişim Dağıtımını Planlama makalesine bakın.
Çok faktörlü kimlik doğrulaması, Microsoft Entra kiracısının tamamı veya Microsoft Entra Kimliği ile birleştirilmiş Active Directory için etkinleştirilebilir.
Azure SQL Veritabanı ve Azure SQL Yönetilen Örneği için Microsoft Entra etkileşimli kimlik doğrulama modunu kullanın. Burada parola etkileşimli olarak istenir ve ardından çok faktörlü kimlik doğrulaması yapılır:
- SSMS'de evrensel kimlik doğrulamasını kullanın. Azure SQL Veritabanı, SQL Yönetilen Örneği, Azure Synapse ile Microsoft Entra çok faktörlü kimlik doğrulamasını kullanma (çok faktörlü kimlik doğrulaması için SSMS desteği) makalesine bakın.
- SQL Server Veri Araçları (SSDT) ile desteklenen etkileşimli kimlik doğrulamayı kullanın. SQL Server Veri Araçları'de (SSDT) Microsoft Entra ID desteği makalesine bakın.
- Çok faktörlü kimlik doğrulamasını destekleyen diğer SQL araçlarını kullanın.
- Veritabanını dışarı aktarma/ayıklama/dağıtma için SSMS Sihirbazı desteği
- SqlPackage: '/ua' seçeneği
- sqlcmd Yardımcı Programı: option -G (etkileşimli)
- bcp Yardımcı Programı: option -G (etkileşimli)
Çok faktörlü kimlik doğrulama desteğiyle etkileşimli kimlik doğrulaması kullanarak Azure SQL Veritabanı veya Azure SQL Yönetilen Örneği bağlanmak için uygulamalarınızı uygulayın.
- Microsoft Entra çok faktörlü kimlik doğrulaması ile Azure SQL Veritabanı bağlanma makalesine bakın.
Not
Bu kimlik doğrulama modu kullanıcı tabanlı kimlikler gerektirir. Tek tek Microsoft Entra kullanıcı kimlik doğrulamasını (örneğin, Azure kaynakları için yönetilen kimlik kullanarak) atlayan güvenilir bir kimlik modelinin kullanıldığı durumlarda, çok faktörlü kimlik doğrulaması uygulanmaz.
Kullanıcılar için parola tabanlı kimlik doğrulaması kullanımını en aza indirme
Bahsedilenler: OSA Uygulaması #4, ISO Erişim Denetimi (AC)
Parola tabanlı kimlik doğrulama yöntemleri daha zayıf bir kimlik doğrulaması biçimidir. Kimlik bilgileri tehlikeye girebilir veya yanlışlıkla verilebilir.
Uygulama
- Parola kullanımını ortadan kaldıran Microsoft Entra tümleşik kimlik doğrulamasını kullanın.
En iyi uygulamalar
- Windows kimlik bilgilerini kullanarak çoklu oturum açma kimlik doğrulamasını kullanın. şirket içi Active Directory etki alanını Microsoft Entra Id ile birleştirin ve tümleşik Windows kimlik doğrulamasını kullanın (Microsoft Entra Id ile etki alanına katılmış makineler için).
- Microsoft Entra tümleşik kimlik doğrulaması için SSMS desteği başlıklı makaleye bakın.
Uygulamalar için parola tabanlı kimlik doğrulaması kullanımını en aza indirme
Bahsedilenler: OSA Uygulaması #4, ISO Erişim Denetimi (AC)
Uygulama
- Azure Yönetilen Kimlik'i etkinleştirin. Tümleşik veya sertifika tabanlı kimlik doğrulamayı da kullanabilirsiniz.
En iyi uygulamalar
Azure kaynakları için yönetilen kimlikleri kullanın.
Bir uygulama için sertifika tabanlı kimlik doğrulamasını kullanın.
- Bu kod örneğine bakın.
Tümleşik federasyon etki alanı ve etki alanına katılmış makine için Microsoft Entra kimlik doğrulamasını kullanın (yukarıdaki bölüme bakın).
- Tümleşik kimlik doğrulaması için örnek uygulamaya bakın.
Parolaları ve gizli dizileri koruma
Parolaların engellenemez olduğu durumlarda, parolaların güvenli olduğundan emin olun.
Uygulama
- Parolaları ve gizli dizileri depolamak için Azure Key Vault'ı kullanın. Uygun olduğunda, Microsoft Entra kullanıcıları ile Azure SQL Veritabanı için çok faktörlü kimlik doğrulamasını kullanın.
En iyi uygulamalar
Parolalardan veya gizli dizilerden kaçınmak mümkün değilse kullanıcı parolalarını ve uygulama gizli dizilerini Azure Key Vault'ta depolayın ve Key Vault erişim ilkeleri aracılığıyla erişimi yönetin.
Çeşitli uygulama geliştirme çerçeveleri, uygulamadaki gizli dizileri korumaya yönelik çerçeveye özgü mekanizmalar da sunabilir. Örneğin: ASP.NET çekirdek uygulama.
Eski uygulamalar için SQL kimlik doğrulamasını kullanma
SQL kimlik doğrulaması, kullanıcı adı ve parola kullanarak Azure SQL Veritabanı veya SQL Yönetilen Örneği bağlanırken kullanıcının kimlik doğrulamasını ifade eder. Her sunucuda veya yönetilen örnekte bir oturum açma ve her veritabanında oluşturulan bir kullanıcı oluşturulması gerekir.
Uygulama
- SQL kimlik doğrulamayı kullanın.
En iyi uygulamalar
Sunucu veya örnek yöneticisi olarak oturum açma bilgileri ve kullanıcılar oluşturun. Bağımsız veritabanı kullanıcılarını parolalarla kullanmadığınız sürece, tüm parolalar veritabanında
master
depolanır.- SQL Veritabanı, SQL Yönetilen Örneği ve Azure Synapse Analytics'e veritabanı erişimini denetleme ve verme makalesine bakın.
Erişim yönetimi
Erişim yönetimi (Yetkilendirme olarak da adlandırılır), yetkili kullanıcıların Azure SQL Veritabanı veya SQL Yönetilen Örneği erişim ve ayrıcalıklarını denetleme ve yönetme işlemidir.
En az ayrıcalık ilkesini uygulama
Belirtilenler: FedRamp, AC-06, NIST: AC-6, OSA Uygulaması #3'te denetimler
En düşük ayrıcalık ilkesi, kullanıcıların görevlerini tamamlamak için gerekenden daha fazla ayrıcalığı olmaması gerektiğini belirtir. Daha fazla bilgi için Yeterli yönetim makalesine bakın.
Uygulama
Gerekli görevleri tamamlamak için yalnızca gerekli izinleri atayın:
SQL Veritabanı içinde:
- Ayrıntılı izinleri ve kullanıcı tanımlı veritabanı rollerini (veya SQL Yönetilen Örneği sunucu rollerini) kullanın:
- Gerekli rolleri oluşturma
- Gerekli kullanıcıları oluşturma
- Kullanıcıları rollere üye olarak ekleme
- Ardından rollere izinler atayın.
- Kullanıcıları gereksiz rollere atamadığınızdan emin olun.
- Ayrıntılı izinleri ve kullanıcı tanımlı veritabanı rollerini (veya SQL Yönetilen Örneği sunucu rollerini) kullanın:
Azure Resource Manager'da:
- Varsa yerleşik rolleri veya Azure özel rollerini kullanın ve gerekli izinleri atayın.
En iyi uygulamalar
Aşağıdaki en iyi yöntemler isteğe bağlıdır ancak güvenlik stratejinizin daha iyi yönetilebilirliği ve desteklenebilirliğiyle sonuçlanır:
Mümkünse, mümkün olan en az izin kümesiyle başlayın ve karşıt yaklaşımın aksine gerçek bir gereklilik (ve gerekçe) varsa izinleri birer birer eklemeye başlayın: izinleri adım adım ortadan kaldırır.
Tek tek kullanıcılara izin atamaktan kaçının. Bunun yerine rolleri (veritabanı veya sunucu rolleri) tutarlı bir şekilde kullanın. Roller, raporlama ve sorun giderme izinlerine büyük ölçüde yardımcı olur. (Azure RBAC yalnızca roller aracılığıyla izin atamayı destekler.)
Tam olarak gereken izinlerle özel roller oluşturun ve kullanın. Uygulamada kullanılan tipik roller:
- Güvenlik dağıtımı
- Yönetici
- Geliştirici
- Destek personeli
- Denetleyici
- Otomatik işlemler
- Son kullanıcı
Yerleşik rolleri yalnızca rollerin izinleri kullanıcı için gereken izinlerle tam olarak eşleştiğinde kullanın. Kullanıcıları birden çok rollere atayabilirsiniz.
Veritabanı altyapısındaki izinlerin aşağıdaki kapsamlar içinde uygulanabileceğini unutmayın (kapsam ne kadar küçükse, verilen izinlerin etkisi de o kadar küçüktür):
- Azure'da sunucu (veritabanındaki
master
özel roller) - Veritabanı
- Şema
- Bir veritabanı içinde izin vermek için şemaları kullanmak en iyi yöntemdir.
- Nesne (tablo, görünüm, yordam vb.)
Not
Bu düzey genel uygulamaya gereksiz karmaşıklık kattığı için nesne düzeyinde izinlerin uygulanması önerilmez. Nesne düzeyi izinleri kullanmaya karar verirseniz, bunlar açıkça belgelenmelidir. Aynı durum sütun düzeyi izinler için de geçerlidir ve aynı nedenlerle daha da az önerilir. Ayrıca, varsayılan olarak tablo düzeyi DENY'in sütun düzeyi GRANT'i geçersiz kılmadığını unutmayın. Bunun için ortak ölçüt uyumluluğu Sunucu Yapılandırması'nın etkinleştirilmesi gerekir.
- Azure'da sunucu (veritabanındaki
Çok fazla izin için test etmek için Güvenlik Açığı Değerlendirmesi'ne (VA) göre düzenli denetimler gerçekleştirin.
Görev Ayrımını Uygulama
Bahsedilenler: FedRamp: AC-04, NIST: AC-5, ISO: A.6.1.2, PCI 6.4.2, SOC: CM-3, SDL-3
Görevlerin Ayrılması olarak da adlandırılan Görev Ayrımı, hassas görevleri farklı kullanıcılara atanan birden çok göreve bölme gereksinimini açıklar. Görev Ayrımı, veri ihlallerinin önlenmesine yardımcı olur.
Uygulama
Gerekli Görev Ayrımı düzeyini belirleyin. Örnekler:
- Geliştirme/Test ve Üretim ortamları arasında
- Güvenlik açısından hassas görevler ile Veritabanı Yöneticisi (DBA) yönetim düzeyi görevleri ve geliştirici görevleri karşılaştırması.
- Örnekler: Denetçi, Rol Düzeyi Güvenlik (RLS) için güvenlik ilkesi oluşturma, DDL izinleriyle SQL Veritabanı nesneleri uygulama.
Sisteme erişen kapsamlı bir kullanıcı hiyerarşisini (ve otomatik işlemleri) belirleyin.
Gerekli kullanıcı gruplarına göre roller oluşturun ve rollere izinler atayın.
- Azure portalında veya PowerShell otomasyonu aracılığıyla yönetim düzeyinde görevler için Azure rollerini kullanın. Gereksinimle eşleşen yerleşik bir rol bulun veya kullanılabilir izinleri kullanarak bir Azure özel rolü oluşturun
- Yönetilen örnekte sunucu genelindeki görevler (yeni oturum açma bilgileri, veritabanları oluşturma) için Sunucu rolleri oluşturun.
- Veritabanı düzeyinde görevler için Veritabanı Rolleri oluşturma.
Belirli hassas görevler için, görevleri kullanıcılar adına yürütmek üzere sertifika tarafından imzalanan özel saklı yordamlar oluşturmayı göz önünde bulundurun. Dijital olarak imzalanan saklı yordamların önemli avantajlarından biri, yordam değiştirilirse, yordamın önceki sürümüne verilen izinlerin hemen kaldırılmasıdır.
Veri sahibi ile güvenlik sahibi arasında Görev Ayrımı'nı etkinleştirmek için Azure Key Vault'ta müşteri tarafından yönetilen anahtarlarla Saydam Veri Şifrelemesi (TDE) uygulayın.
- Azure portalından Azure Depolama şifrelemesi için müşteri tarafından yönetilen anahtarları yapılandırma makalesine bakın.
DBA'nın son derece hassas olarak kabul edilen ve DBA görevlerini yine de gerçekleştirebilen verileri göremesini sağlamak için Always Encrypted'ı rol ayrımı ile kullanabilirsiniz.
- Always Encrypted için Anahtar Yönetimine Genel Bakış, Rol Ayrımı ile Anahtar Sağlama ve Rol Ayrımı ile Sütun Ana Anahtar Döndürme makalelerine bakın.
Always Encrypted kullanımının mümkün olmadığı durumlarda veya en azından sistemi kullanılamaz duruma getirebilecek büyük maliyetler ve çabalar olmadan, aşağıdaki gibi telafi denetimleri aracılığıyla riskler yapılabilir ve azaltılabilir:
- süreçlere insan müdahalesi.
- Denetim izleri – Denetim hakkında daha fazla bilgi için bkz . Kritik güvenlik olaylarını denetleme.
En iyi uygulamalar
Geliştirme/Test ve Üretim ortamları için farklı hesapların kullanıldığından emin olun. Farklı hesaplar, Test ve Üretim sistemlerinin ayrılmasına uyum sağlamaya yardımcı olur.
Tek tek kullanıcılara izin atamaktan kaçının. Bunun yerine rolleri (veritabanı veya sunucu rolleri) tutarlı bir şekilde kullanın. Rollerin olması, raporlama ve sorun giderme izinlerine büyük ölçüde yardımcı olur.
İzinler tam olarak gerekli izinlerle eşleştiğinde yerleşik rolleri kullanın. Birden çok yerleşik roldeki tüm izinlerin birleşimi %100 eşleşmeye yol açıyorsa, aynı anda birden çok rol de atayabilirsiniz.
Yerleşik roller çok fazla izin veya yetersiz izin verdiğinde kullanıcı tanımlı roller oluşturun ve kullanın.
Rol atamaları, T-SQL'deki SQL Aracısı İşi adımlarında veya Azure rolleri için Azure PIM kullanılarak geçici olarak da yapılabilir.
DTA'ların şifreleme anahtarlarına veya anahtar depolarına erişimi olmadığından ve anahtarlara erişimi olan Güvenlik Yöneticilerinin veritabanına sırayla erişimi olmadığından emin olun. Genişletilebilir Anahtar Yönetimi'nin (EKM) kullanılması bu ayrımı daha kolay hale getirebilir. EkM'yi uygulamak için Azure Key Vault kullanılabilir.
Güvenlikle ilgili eylemler için her zaman bir Denetim izi olduğundan emin olun.
Kullanılan izinleri görmek için Azure yerleşik rollerinin tanımını alabilir ve PowerShell aracılığıyla bunların alıntılarını ve birikmesini temel alan özel bir rol oluşturabilirsiniz.
db_owner veritabanı rolünün herhangi bir üyesi Saydam Veri Şifrelemesi (TDE) gibi güvenlik ayarlarını değiştirebileceğinden veya SLO'yu değiştirebildiğinden, bu üyelik dikkatli bir şekilde verilmelidir. Ancak, db_owner ayrıcalıkları gerektiren birçok görev vardır. Veritabanı seçeneklerini değiştirme gibi herhangi bir veritabanı ayarını değiştirme gibi görevler. Denetim, herhangi bir çözümde önemli bir rol oynar.
Bir db_owner izinlerini kısıtlamak ve bu nedenle bir yönetici hesabının kullanıcı verilerini görüntülemesini engellemek mümkün değildir. Veritabanında son derece hassas veriler varsa Always Encrypted, db_owners veya diğer DBA'ların bunları görüntülemesini güvenli bir şekilde önlemek için kullanılabilir.
Not
Görev Ayrımı (SoD) elde etmek, güvenlikle ilgili veya sorun giderme görevleri için zordur. Geliştirme ve son kullanıcı rolleri gibi diğer alanların toplanması daha kolaydır. Uyumlulukla ilgili denetimlerin çoğu, diğer çözümler pratik olmadığında Denetim gibi alternatif denetim işlevlerinin kullanılmasına olanak sağlar.
SoD'ye daha ayrıntılı bir şekilde göz atmak isteyen okuyucular için aşağıdaki kaynakları öneririz:
Azure SQL Veritabanı ve SQL Yönetilen Örneği için:
Azure Kaynak Yönetimi için:
Normal kod incelemeleri gerçekleştirme
Bahsedilenler: PCI: 6.3.2, SOC: SDL-3
Görev Ayrımı, veritabanındaki verilerle sınırlı değildir, uygulama kodu içerir. Kötü amaçlı kod, güvenlik denetimlerini aşabilir. Özel kodu üretime dağıtmadan önce dağıtılanları gözden geçirmek önemlidir.
Uygulama
Kaynak denetimini destekleyen Azure Data Studio gibi bir veritabanı aracı kullanın.
Ayrılmış bir kod dağıtım işlemi uygulayın.
Ana dala bağlanmadan önce, bir kişinin (kodun yazarının kendisi dışında) kodu potansiyel ayrıcalıkların yükseltilmesi risklerinin yanı sıra sahtekarlık ve sahte erişime karşı korumak için kötü amaçlı veri değişiklikleri açısından incelemesi gerekir. Bu, kaynak denetim mekanizmaları kullanılarak yapılabilir.
En iyi uygulamalar
Standartlaştırma: Kod güncelleştirmeleri için izlenecek standart bir yordamın uygulanmasına yardımcı olur.
Güvenlik Açığı Değerlendirmesi aşırı izinleri, eski şifreleme algoritmalarının kullanımını ve veritabanı şemasındaki diğer güvenlik sorunlarını denetleen kurallar içerir.
SQL eklemeye açık kodu tarar gelişmiş tehdit koruması kullanılarak bir soru-cevap veya test ortamında daha fazla denetim yapılabilir.
Nelere dikkat etmek istediğinize ilişkin örnekler:
- Kullanıcı oluşturma veya otomatik SQL kodu güncelleştirme dağıtımının içinden güvenlik ayarlarını değiştirme.
- Sağlanan parametrelere bağlı olarak hücredeki parasal değeri uyumsuz bir şekilde güncelleştiren saklı yordam.
Gözden geçirmeyi yöneten kişinin, kaynak kod yazarı dışında bir kişi olduğundan ve kod incelemeleri ve güvenli kodlama konusunda bilgili olduğundan emin olun.
Kod değişikliklerinin tüm kaynaklarını bildiğinizden emin olun. Kod, T-SQL Betikleri'nde olabilir. Yürütülecek veya Görünümler, İşlevler, Tetikleyiciler ve Saklı Yordamlar biçiminde dağıtılacak geçici komutlar olabilir. SQL Aracısı İş tanımlarının (Adımlar) bir parçası olabilir. Ayrıca SSIS paketleri, Azure Data Factory ve diğer hizmetlerin içinden de yürütülebilir.
Veri koruması
Veri koruma, önemli bilgileri şifreleme veya gizleme yoluyla tehlikeye karşı korumaya yönelik bir özellik kümesidir.
Not
Microsoft, Azure SQL Veritabanı ve SQL Yönetilen Örneği FIPS 140-2 Düzey 1 uyumlu olduğunu onaylar. Bu, gerekli anahtar uzunlukları, anahtar yönetimi, anahtar oluşturma ve anahtar depolama ile tutarlılık dahil olmak üzere bu algoritmaların FIPS 140-2 Düzey 1 kabul edilebilir algoritmalarının ve FIPS 140-2 Düzey 1 doğrulanmış örneklerinin katı kullanımı doğrulandıktan sonra yapılır. Bu kanıtlama, müşterilerimizin verilerin işlenmesinde veya sistemlerin veya uygulamaların tesliminde FIPS 140-2 Düzey 1 doğrulanmış örneklerinin kullanımına yönelik ihtiyaç veya gereksinime yanıt vermelerini sağlamak için tasarlanmıştır. Yukarıdaki bildirimde kullanılan "FIPS 140-2 Düzey 1 uyumlu" ve "FIPS 140-2 Düzey 1 uyumluluğu" terimlerini tanımlayarak ABD ve Kanada hükümeti tarafından farklı "FIPS 140-2 Düzey 1 doğrulandı" teriminin kullanılabileceğini gösteriyoruz.
Aktarımdaki verileri şifreleme
Bahsedilenler: OSA Uygulaması #6, ISO Denetim Ailesi: Şifreleme
Veriler istemciniz ve sunucunuz arasında taşınırken verilerinizi korur. Ağ Güvenliği'ne bakın.
Bekleyen verileri şifreleme
Bahsedilenler: OSA Uygulaması #6, ISO Denetim Ailesi: Şifreleme
Bekleyen şifreleme, veritabanında, günlükte ve yedekleme dosyalarında kalıcı hale geldiğinde verilerin şifreleme korumasıdır.
Uygulama
- Hizmet tarafından yönetilen anahtarlarla saydam veri şifrelemesi (TDE), Azure SQL Veritabanı ve SQL Yönetilen Örneği'de 2017'nin ardından oluşturulan tüm veritabanları için varsayılan olarak etkinleştirilir.
- Yönetilen örnekte, veritabanı şirket içi sunucu kullanılarak bir geri yükleme işleminden oluşturulduysa, özgün veritabanının TDE ayarı kabul edilir. Özgün veritabanında TDE etkin değilse, yönetilen örnek için TDE'nin el ile açılmasını öneririz.
En iyi uygulamalar
Bekleyen şifreleme gerektiren verileri veritabanında depolamayın
master
. Veritabanımaster
TDE ile şifrelenemez.TDE koruması üzerinde daha fazla saydamlığa ve ayrıntılı denetime ihtiyacınız varsa Azure Key Vault'ta müşteri tarafından yönetilen anahtarları kullanın. Azure Key Vault, veritabanını erişilemez hale getirmek için izinleri istediğiniz zaman iptal etme olanağı sağlar. TDE koruyucularını diğer anahtarlarla birlikte merkezi olarak yönetebilir veya Azure Key Vault'u kullanarak TDE koruyucuyu kendi zamanlamanızda döndürebilirsiniz.
Azure Key Vault'ta müşteri tarafından yönetilen anahtarlar kullanıyorsanız Azure Key Vault ile TDE yapılandırma yönergeleri ve Azure Key Vault ile Geo-DR'yi yapılandırma makalelerini izleyin.
Not
Tablo adları, nesne adları ve dizin adları gibi müşteri içeriği olarak kabul edilen bazı öğeler Microsoft tarafından destek ve sorun giderme amacıyla günlük dosyalarına aktarılabilir.
Kullanımdaki hassas verileri yüksek ayrıcalıklı, yetkisiz kullanıcılardan koruma
Kullanımdaki veriler, SQL sorgularının yürütülmesi sırasında veritabanı sisteminin belleğinde depolanan verilerdir. Veritabanınız hassas verileri depolarsa, kuruluşunuzun yüksek ayrıcalıklı kullanıcıların veritabanınızdaki hassas verileri görüntülemesini engellemesi gerekebilir. Kuruluşunuzdaki Microsoft operatörleri veya DTA'lar gibi yüksek ayrıcalıklı kullanıcıların veritabanını yönetebilmesi gerekir, ancak hassas verileri SQL işleminin belleğinden veya veritabanını sorgulayarak görüntülemesi ve çıkarma olasılığı engellenmelidir.
Hangi verilerin hassas olduğunu ve hassas verilerin bellekte şifrelenip şifrelenmemesi ve yöneticiler tarafından düz metin olarak erişilmemesi gerektiğini belirleyen ilkeler, bağlı kalmanız gereken kuruluşunuza ve uyumluluk düzenlemelerine özgüdür. Lütfen ilgili gereksinime bakın: Hassas verileri tanımlama ve etiketleme.
Uygulama
- Hassas verilerin bellekte/kullanımda bile Azure SQL Veritabanı veya SQL Yönetilen Örneği düz metinde gösterilmediğinden emin olmak için Always Encrypted kullanın. Always Encrypted, verileri Veritabanı Yöneticileri (DTA'lar) ve bulut yöneticilerine (veya yüksek ayrıcalıklı ama yetkisiz kullanıcıların kimliğine bürünebilen kötü aktörlere) karşı korur ve verilerinize kimlerin erişebileceği üzerinde daha fazla denetim sağlar.
En iyi uygulamalar
Always Encrypted, bekleyen (TDE) veya aktarımdaki (SSL/TLS) verileri şifrelemenin yerini tutmaz. Always Encrypted, performansı ve işlevsellik etkisini en aza indirmek için hassas olmayan veriler için kullanılmamalıdır. Bekleyen, aktarımdaki ve kullanımdaki verilerin kapsamlı koruması için Always Encrypted'ın TDE ve Aktarım Katmanı Güvenliği (TLS) ile birlikte kullanılması önerilir.
Always Encrypted'ı bir üretim veritabanına dağıtmadan önce tanımlanan hassas veri sütunlarını şifrelemenin etkisini değerlendirin. Genel olarak Always Encrypted, şifrelenmiş sütunlardaki sorguların işlevselliğini azaltır ve Always Encrypted - Özellik Ayrıntıları bölümünde listelenen diğer sınırlamalara sahiptir. Bu nedenle, işlevi yeniden başlatmak için uygulamanızı yeniden oluşturmanız gerekebilir; istemci tarafında sorgu desteklenmez veya/ve saklı yordamların, işlevlerin, görünümlerin ve tetikleyicilerin tanımları dahil olmak üzere veritabanı şemanızı yeniden düzenlemeniz gerekebilir. Always Encrypted kısıtlamalarına ve sınırlamalarına uymayan mevcut uygulamalar şifrelenmiş sütunlarla çalışmayabilir. Always Encrypted'ı destekleyen Microsoft araçlarının, ürünlerinin ve hizmetlerinin ekosistemi artmaya devam ederken, bunların bir kısmı şifrelenmiş sütunlarla çalışmaz. Bir sütunu şifrelemek, iş yükünüzün özelliklerine bağlı olarak sorgu performansını da etkileyebilir.
Verileri kötü amaçlı DTA'lardan korumak için Always Encrypted kullanıyorsanız Always Encrypted anahtarlarını rol ayrımı ile yönetin. Rol ayrımı ile, güvenlik yöneticisi fiziksel anahtarları oluşturur. DBA, veritabanındaki fiziksel anahtarları açıklayan sütun ana anahtarı ve sütun şifreleme anahtarı meta veri nesnelerini oluşturur. Bu işlem sırasında güvenlik yöneticisinin veritabanına erişmesi ve DBA'nın düz metin olarak fiziksel anahtarlara erişmesi gerekmez.
- Ayrıntılar için Anahtarları Rol Ayrımı ile Yönetme makalesine bakın.
Yönetim kolaylığı için sütun ana anahtarlarınızı Azure Key Vault'ta depolayın. Anahtar yönetimini zorlaştıran Windows Sertifika Deposu(ve genel olarak dağıtılmış anahtar deposu çözümleri, merkezi anahtar yönetimi çözümleri yerine) kullanmaktan kaçının.
Birden çok anahtar (sütun ana anahtarı veya sütun şifreleme anahtarları) kullanmanın dezavantajlarını dikkatle düşünün. Anahtar yönetimi maliyetini azaltmak için anahtar sayısını küçük tutun. Veritabanı başına bir sütun ana anahtarı ve bir sütun şifreleme anahtarı genellikle sabit durumdaki ortamlarda (anahtar döndürmenin ortasında değil) yeterlidir. Her birinde farklı anahtarlar kullanan ve farklı verilere erişen farklı kullanıcı gruplarınız varsa ek anahtarlara ihtiyacınız olabilir.
Uyumluluk gereksinimlerinize göre sütun ana anahtarlarını döndürün. Sütun şifreleme anahtarlarını da döndürmeniz gerekiyorsa, uygulama kapalı kalma süresini en aza indirmek için çevrimiçi şifrelemeyi kullanmayı göz önünde bulundurun.
- Performans ve Kullanılabilirlik Konuları makalesine bakın.
Verilerdeki hesaplamaların (eşitlik) desteklenmesi gerekiyorsa belirlenimci şifrelemeyi kullanın. Aksi takdirde rastgele şifreleme kullanın. Düşük entropi veri kümeleri veya genel olarak bilinen dağıtıma sahip veri kümeleri için belirlenimci şifreleme kullanmaktan kaçının.
Üçüncü tarafların izniniz olmadan verilerinize yasal olarak erişmesi konusunda endişeleriniz varsa, anahtarlara ve verilere düz metin olarak erişimi olan tüm uygulama ve araçların Microsoft Azure Bulut dışında çalıştığından emin olun. Anahtarlara erişim olmadan, üçüncü taraf şifrelemeyi atlamadığı sürece verilerin şifresini çözmenin hiçbir yolu olmayacaktır.
Always Encrypted, anahtarlara (ve korunan verilere) geçici erişim verilmesini kolayca desteklemez. Örneğin, DBA'nın hassas ve şifrelenmiş veriler üzerinde bazı temizleme işlemleri gerçekleştirmesine izin vermek için anahtarları bir DBA ile paylaşmanız gerekiyorsa. DBA'dan verilere erişimi güvenilir bir şekilde iptal etmenin tek yolu hem sütun şifreleme anahtarlarını hem de verileri koruyan sütun ana anahtarlarını döndürmektir. Bu pahalı bir işlemdir.
Şifrelenmiş sütunlardaki düz metin değerlerine erişmek için, kullanıcının CMK'yi tutan anahtar deposunda yapılandırılan sütunları koruyan Sütun Ana Anahtarına (CMK) erişimi olmalıdır. Kullanıcının ayrıca HERHANGİ Bİr SÜTUN ANA ANAHTAR TANIMI GÖRÜNTÜLE ve SÜTUN ŞIFRELEME ANAHTARI TANIMI VERITABANı izinlerini GÖRÜNTÜLEMEsi gerekir.
Şifreleme aracılığıyla uygulama kullanıcılarının hassas verilere erişimini denetleme
Şifreleme, yalnızca şifreleme anahtarlarına erişimi olan belirli uygulama kullanıcılarının verileri görüntüleyebilmesini veya güncelleştirebilmesini sağlamanın bir yolu olarak kullanılabilir.
Uygulama
- Hücre düzeyinde Şifreleme (CLE) kullanın. Ayrıntılar için Veri Sütununu Şifreleme makalesine bakın.
- Always Encrypted'ı kullanın, ancak sınırlamalarına dikkat edin. Sınırlamalar aşağıda listelenmiştir.
En iyi yöntemler:
CLE kullanırken:
SQL izinleri ve rolleri aracılığıyla anahtarlara erişimi denetleme.
Veri şifrelemesi için AES (AES 256 önerilir) kullanın. RC4, DES ve TripleDES gibi algoritmalar kullanım dışıdır ve bilinen güvenlik açıkları nedeniyle kullanılmamalıdır.
3DES kullanmaktan kaçınmak için simetrik anahtarları asimetrik anahtarlarla/sertifikalarla (parolalarla değil) koruyun.
Dışarı/içeri aktarma (bacpac dosyaları) aracılığıyla Hücre Düzeyinde Şifreleme kullanarak veritabanını geçirirken dikkatli olun.
- Verileri geçirirken anahtarların kaybolmasını önlemeye yönelik Azure SQL Veritabanı hücre düzeyi şifrelemesi kullanma önerileri ve diğer en iyi yöntem yönergeleri makalesine bakın.
Always Encrypted'ın öncelikli olarak kullanımdaki hassas verileri Azure SQL Veritabanı yüksek ayrıcalıklı kullanıcılarından (bulut operatörleri, DTA'lar) korumak için tasarlandığını unutmayın. Bkz. Kullanımdaki hassas verileri yüksek ayrıcalıklı, yetkisiz kullanıcılardan koruma. Verileri uygulama kullanıcılarından korumak için Always Encrypted kullanırken aşağıdaki zorluklara dikkat edin:
- Varsayılan olarak, Always Encrypted'ı destekleyen tüm Microsoft istemci sürücüleri sütun şifreleme anahtarlarının genel (uygulama başına bir tane) önbelleğini tutar. İstemci sürücüsü, bir sütun ana anahtarının bulunduğu bir anahtar deposuna başvurarak düz metin sütun şifreleme anahtarı aldıktan sonra düz metin sütun şifreleme anahtarı önbelleğe alınır. Bu, çok kullanıcılı bir uygulamanın kullanıcılarından veri yalıtma işlemini zorlaştırır. Uygulamanız bir anahtar deposuyla (Azure Key Vault gibi) etkileşim kurarken son kullanıcıların kimliğine büründüyse, kullanıcının sorgusu önbelleği bir sütun şifreleme anahtarıyla doldurduktan sonra, aynı anahtarı gerektiren ancak başka bir kullanıcı tarafından tetiklenen sonraki bir sorgu önbelleğe alınmış anahtarı kullanır. Sürücü anahtar depoyu çağırmaz ve ikinci kullanıcının sütun şifreleme anahtarına erişim izni olup olmadığını denetlemez. Sonuç olarak, kullanıcı anahtarlara erişimi olmasa bile şifrelenmiş verileri görebilir. Çok kullanıcılı bir uygulama içindeki kullanıcıların yalıtımını elde etmek için sütun şifreleme anahtarı önbelleğini devre dışı bırakabilirsiniz. Sürücünün her veri şifreleme veya şifre çözme işlemi için anahtar deposuna başvurması gerekeceği için önbelleğe almayı devre dışı bırakmak ek performans ek yüklerine neden olur.
Veri biçimini korurken, verileri uygulama kullanıcıları tarafından yetkisiz görüntülemeye karşı koruma
Yetkisiz kullanıcıların verileri görüntülemesini önlemeye yönelik bir diğer teknik de, kullanıcı uygulamalarının verileri işlemeye ve görüntülemeye devam etmesini sağlamak için veri türlerini ve biçimlerini korurken verileri karartmak veya maskelemektir.
Uygulama
- Tablo sütunlarını karartmak için Dinamik Veri Maskeleme'yi kullanın.
Not
Always Encrypted, Dinamik Veri Maskeleme ile çalışmaz. Aynı sütunu şifrelemek ve maskelemek mümkün değildir; bu da kullanımdaki verilerin korunmasına ve Dinamik Veri Maskeleme yoluyla uygulama kullanıcılarınız için verilerin maskelenmesine öncelik vermeniz gerektiğini gösterir.
En iyi uygulamalar
Not
Dinamik Veri Maskeleme, verileri yüksek ayrıcalıklı kullanıcılardan korumak için kullanılamaz. Maskeleme ilkeleri, db_owner gibi yönetici erişimi olan kullanıcılar için geçerli değildir.
Uygulama kullanıcılarının geçici sorgular çalıştırmasına izin verme (Dinamik Veri Maskeleme'yi geçici olarak kullanabilecekleri için).
- Ayrıntılar için çıkarım veya deneme yanılma teknikleri kullanarak maskelemeyi atlama makalesine bakın.
Maskelenmiş sütunlarda güncelleştirme yapmak için kullanıcı izinlerini sınırlamak için uygun bir erişim denetimi ilkesi (SQL izinleri, roller, RLS aracılığıyla) kullanın. Bir sütunda maske oluşturmak, bu sütunda yapılan güncelleştirmeleri engellemez. Maskelenmiş sütunu sorgularken maskelenmiş veri alan kullanıcılar, yazma izinleri varsa verileri güncelleştirebilir.
Dinamik Veri Maskeleme, maskelenmiş değerlerin istatistiksel özelliklerini korumaz. Bu, sorgu sonuçlarını etkileyebilir (örneğin, maskelenmiş verilerde filtreleme koşullarını veya birleştirmeleri içeren sorgular).
Ağ güvenliği
Ağ güvenliği, Azure SQL Veritabanı aktarımdaki verilerinizin güvenliğini sağlamak için erişim denetimlerini ve en iyi yöntemleri ifade eder.
İstemcimi SQL Veritabanı/SQL Yönetilen Örneği güvenli bir şekilde bağlanacak şekilde yapılandırma
İyi bilinen güvenlik açıklarına sahip istemci makinelerinin ve uygulamaların (örneğin, eski TLS protokollerini ve şifre paketlerini kullanarak) Azure SQL Veritabanı ve SQL Yönetilen Örneği bağlanmasını önlemeye yönelik en iyi yöntemler.
Uygulama
- Azure SQL Veritabanı ve SQL Yönetilen Örneği bağlanan istemci makinelerinin en son Aktarım Katmanı Güvenliği (TLS) sürümünü kullandığından emin olun.
En iyi uygulamalar
En düşük TLS sürümü ayarını kullanarak Azure'daki mantıksal sunucuda veya SQL Yönetilen Örneği düzeyinde en düşük TLS sürümünü zorunlu kılın. Uygulamalarınızın desteklediğini onaylamak için test ettikten sonra en düşük TLS sürümünü 1.2 olarak ayarlamanızı öneririz. TLS 1.2, önceki sürümlerde bulunan güvenlik açıklarına yönelik düzeltmeler içerir.
Şifreleme etkinken tüm uygulamalarınızı ve araçlarınızı SQL Veritabanı bağlanacak şekilde yapılandırma
- Encrypt = On, TrustServerCertificate = Off (veya Microsoft dışı sürücülerle eşdeğer).
Uygulamanız TLS'yi desteklemeyen veya TLS'nin eski bir sürümünü destekleyen bir sürücü kullanıyorsa, mümkünse sürücüyü değiştirin. Mümkün değilse güvenlik risklerini dikkatle değerlendirin.
- Aktarım Katmanı Güvenliği (TLS) kayıt defteri ayarlarına göre Azure SQL Veritabanı bağlanan istemci makinelerinde bunları devre dışı bırakarak SSL 2.0, SSL 3.0, TLS 1.0 ve TLS 1.1'deki güvenlik açıkları aracılığıyla saldırı vektörlerini azaltın.
- İstemcide kullanılabilen şifreleme paketlerini denetleyin: TLS/SSL (Schannel SSP) içindeki Şifreleme Paketleri. Özellikle, TLS Şifreleme Paketi Sırasını Yapılandırırken 3DES'i devre dışı bırakın.
Saldırı yüzeyini en aza indirme
Kötü amaçlı bir kullanıcı tarafından saldırıya uğrayabilecek özellik sayısını en aza indirin. Azure SQL Veritabanı için ağ erişim denetimleri uygulayın.
Bahsedilenler: OSA Uygulaması #5
Uygulama
SQL Veritabanı:
- Azure hizmetlerine erişime izin ver'i sunucu düzeyinde KAPALI olarak ayarlayın
- Sanal Ağ Hizmeti uç noktalarını ve Sanal Ağ Güvenlik Duvarı Kurallarını kullanın.
- Özel Bağlantı kullanın.
SQL Yönetilen Örneği:
En iyi uygulamalar
Özel bir uç noktaya bağlanarak (örneğin, özel veri yolu kullanarak) Azure SQL Veritabanı ve SQL Yönetilen Örneği erişimini kısıtlama:
- Yönetilen örnek, dış erişimi önlemek için bir sanal ağ içinde yalıtılabilir. Aynı bölgedeki aynı veya eşlenmiş sanal ağda yer alan uygulamalar ve araçlar bu ağa doğrudan erişebilir. Farklı bölgedeki uygulamalar ve araçlar, bağlantı kurmak için sanal ağdan sanal ağa bağlantı veya ExpressRoute bağlantı hattı eşlemesini kullanabilir. Müşteri, 1433 numaralı bağlantı noktası üzerinden erişimi yalnızca yönetilen örneğe erişim gerektiren kaynaklarla kısıtlamak için Ağ Güvenlik Gruplarını (NSG) kullanmalıdır.
- SQL Veritabanı için sanal ağınızdaki sunucu için ayrılmış özel IP sağlayan Özel Bağlantı özelliğini kullanın. Sunucularınıza erişimi kısıtlamak için sanal ağ güvenlik duvarı kurallarıyla sanal ağ hizmet uç noktalarını da kullanabilirsiniz.
- Mobil kullanıcılar, veri yolu üzerinden bağlanmak için noktadan siteye VPN bağlantılarını kullanmalıdır.
- Şirket içi ağlarına bağlı kullanıcılar, veri yolu üzerinden bağlanmak için siteden siteye VPN bağlantısı veya ExpressRoute kullanmalıdır.
Azure SQL Veritabanı ve SQL Yönetilen Örneği bir genel uç noktaya (örneğin, genel veri yolu kullanarak) bağlanarak erişebilirsiniz. Aşağıdaki en iyi yöntemler dikkate alınmalıdır:
- SQL Veritabanı bir sunucu için, erişimi yalnızca yetkili IP adresleriyle kısıtlamak için IP güvenlik duvarı kurallarını kullanın.
- SQL Yönetilen Örneği için ağ güvenlik gruplarını (NSG) kullanarak 3342 numaralı bağlantı noktası üzerinden erişimi yalnızca gerekli kaynaklarla kısıtlayın. Daha fazla bilgi için bkz . Yönetilen örneği genel uç noktalarla güvenli bir şekilde kullanma.
Not
SQL Yönetilen Örneği genel uç noktası varsayılan olarak etkin değildir ve açıkça etkinleştirilmesi gerekir. Şirket ilkesi genel uç noktaların kullanılmasına izin vermediyse, ilk etapta genel uç noktaların etkinleştirilmesini önlemek için Azure İlkesi kullanın.
Azure Ağ bileşenlerini ayarlama:
- Ağ güvenliği için En iyi Azure uygulamalarını izleyin.
- Azure Sanal Ağ sık sorulan sorular (SSS) ve planda özetlenen en iyi yöntemlere göre Sanal Ağ yapılandırmayı planlayın.
- Bir sanal ağı birden çok alt ağa bölün ve aynı alt ağa benzer bir rol için kaynaklar atayın (örneğin, ön uç ve arka uç kaynakları).
- Azure sanal ağ sınırı içindeki alt ağlar arasındaki trafiği denetlemek için Ağ Güvenlik Grupları'nı (NSG) kullanın.
- Gelen ve giden ağ trafiğini izlemek için aboneliğiniz için Azure Ağ İzleyicisi'yi etkinleştirin.
SQL Veritabanı/SQL Yönetilen Örneği güvenli bağlantılar için Power BI'ı yapılandırma
En iyi uygulamalar
Power BI Desktop için mümkün olduğunca özel veri yolunu kullanın.
İstemci makinesindeki kayıt defteri anahtarını Aktarım Katmanı Güvenliği (TLS) kayıt defteri ayarlarına göre ayarlayarak Power BI Desktop'ın TLS1.2 kullanarak bağlandığından emin olun.
Power BI ile satır düzeyi güvenlik (RLS) aracılığıyla belirli kullanıcılar için veri erişimini kısıtlayın.
Power BI Hizmeti için şirket içi veri ağ geçidini kullanın ve Sınırlamalar ve Dikkat Edilmesi Gerekenler'i göz önünde bulundurun.
App Service'i SQL Veritabanı/SQL Yönetilen Örneği güvenli bağlantılar için yapılandırma
En iyi uygulamalar
Basit bir Web Uygulaması için genel uç nokta üzerinden bağlanmak için Azure Hizmetlerine İzin Ver ayarının ON olarak ayarlanması gerekir.
Yönetilen örneğe özel veri yolu bağlantısı için uygulamanızı azure Sanal Ağ ile tümleştirin. İsteğe bağlı olarak, App Service Ortamı s (ASE) ile bir Web Uygulaması da dağıtabilirsiniz.
SQL Veritabanı'da bir veritabanına bağlanan ASE veya sanal ağ Tümleşik Web Uygulaması ile Web Uygulaması için, belirli bir sanal ağ ve alt ağdan erişimi sınırlamak için sanal ağ hizmet uç noktalarını ve sanal ağ güvenlik duvarı kurallarını kullanabilirsiniz. Ardından Azure Hizmetlerine İzin Ver'i KAPALI olarak ayarlayın. AsE'yi özel veri yolu üzerinden SQL Yönetilen Örneği yönetilen örneğe de bağlayabilirsiniz.
Web Uygulamanızın hizmet olarak platform (PaaS) web ve mobil uygulamalarını Azure Uygulaması Hizmeti kullanarak güvenli hale getirmek için en iyi yöntemler başlıklı makaleye göre yapılandırıldığından emin olun.
Web uygulamanızı yaygın açıklardan ve güvenlik açıklarından korumak için Web Uygulaması Güvenlik Duvarı (WAF) yükleyin.
SQL Veritabanı/SQL Yönetilen Örneği güvenli bağlantılar için Azure Sanal Makine barındırmayı yapılandırma
En iyi uygulamalar
Vm'den hangi bölgelere erişilebileceğini denetlemek için Azure sanal makinelerinin NSG'lerinde İzin Ver ve Reddet kurallarının bir bileşimini kullanın.
Vm'nizin Azure'daki IaaS iş yükleri için en iyi güvenlik yöntemleri makalesine göre yapılandırıldığından emin olun.
Tüm VM'lerin belirli bir sanal ağ ve alt ağ ile ilişkilendirildiğinden emin olun.
Zorlamalı tünel hakkındaki yönergelere göre varsayılan 0.0.0.0/internet yoluna ihtiyacınız olup olmadığını değerlendirin.
- Evet ise (örneğin, ön uç alt ağı) varsayılan yolu koruyun.
- Yok ise (örneğin, orta katman veya arka uç alt ağı), İnternet üzerinden giden trafiğin şirket içi (şirket içi ağ) üzerinden ulaşmaması için zorlamalı tünel oluşturmayı etkinleştirin.
Eşleme kullanıyorsanız veya şirket içine bağlanıyorsanız isteğe bağlı varsayılan yolları uygulayın.
Sanal ağdaki tüm trafiği paket incelemesi için bir Ağ Sanal Gereci'ne göndermeniz gerekiyorsa Kullanıcı Tanımlı Yolları uygulayın.
Azure omurga ağı üzerinden Azure Depolama gibi PaaS hizmetlerine güvenli erişim için sanal ağ hizmet uç noktalarını kullanın.
Dağıtılmış Hizmet Reddi (DDoS) saldırılarına karşı koruma
Dağıtılmış Hizmet Reddi (DDoS) saldırıları, kötü amaçlı bir kullanıcının Azure altyapısını bunaltmak ve geçerli oturum açma bilgilerini ve iş yükünü reddetmesini sağlamak amacıyla Azure SQL Veritabanı ağ trafiği akışı gönderme girişimidir.
Bahsedilenler: OSA Uygulaması #9
Uygulama
DDoS koruması, Azure Platformu'nun bir parçası olarak otomatik olarak etkinleştirilir. Her zaman açık trafik izleme ve genel uç noktalara yönelik ağ düzeyinde saldırıların gerçek zamanlı olarak azaltılmasını içerir.
Veritabanlarına yönelik Hizmet Reddi (DoS) saldırılarını algılamak için Azure SQL Veritabanı gelişmiş tehdit koruması kullanın.
En iyi uygulamalar
Saldırıyı En Aza İndir Surface, DDoS saldırı tehditlerini en aza indirmeye yardımcı olur başlığı altında açıklanan uygulamaları izleyin.
Gelişmiş Tehdit Koruması Deneme yanılma SQL kimlik bilgileri uyarısı deneme yanılma saldırılarını algılamaya yardımcı olur. Bazı durumlarda, uyarı sızma testi iş yüklerini ayırt edebilir.
SQL Veritabanı bağlanan Azure VM barındırma uygulamaları için:
- Bulut için Microsoft Defender'da İnternet'e yönelik uç noktalar üzerinden erişimi kısıtlama önerisini izleyin.
- Azure VM'lerinde uygulamanızın birden çok örneğini çalıştırmak için sanal makine ölçek kümelerini kullanın.
- Deneme yanılma saldırılarını önlemek için İnternet'ten RDP ve SSH'yi devre dışı bırakın.
İzleme, günlük kaydı ve denetim
Bu bölüm, veritabanlarına erişmeye veya veritabanlarına erişmeye veya bunlardan yararlanmaya yönelik olağan dışı ve zararlı olabilecek girişimleri gösteren anormal etkinlikleri algılamanıza yardımcı olan özellikleri ifade eder. Ayrıca veritabanı olaylarını izlemek ve yakalamak için veritabanı denetimini yapılandırmak için en iyi yöntemleri açıklar.
Veritabanlarını saldırılara karşı koruma
Gelişmiş tehdit koruması, anormal etkinliklerle ilgili güvenlik uyarıları sağlayarak olası tehditleri algılayıp bunlara yanıt vermenizi sağlar.
Uygulama
- Aşağıdakiler dahil olmak üzere veritabanlarına erişmeye veya veritabanlarını kötüye kullanmaya yönelik olağan dışı ve zararlı olabilecek girişimleri algılamak için SQL için Gelişmiş Tehdit Koruması'ni kullanın:
- SQL ekleme saldırısı.
- Kimlik bilgileri hırsızlığı/sızıntısı.
- Ayrıcalık kötüye kullanımı.
- Veri sızdırma.
En iyi uygulamalar
Sql için Microsoft Defender'ı belirli bir sunucu veya yönetilen örnek için yapılandırın. Ayrıca, Bulut için Microsoft Defender etkinleştirerek abonelikteki tüm sunucular ve yönetilen örnekler için SQL için Microsoft Defender'ı yapılandırabilirsiniz.
Tam kapsamlı bir araştırma deneyimi için SQL Veritabanı Denetimi'nin etkinleştirilmesi önerilir. Denetim sayesinde veritabanı olaylarını izleyebilir ve bunları bir Azure Depolama hesabında veya Azure Log Analytics çalışma alanında bir denetim günlüğüne yazabilirsiniz.
Kritik güvenlik olaylarını denetleme
Veritabanı olaylarının izlenmesi, veritabanı etkinliğini anlamanıza yardımcı olur. İşle ilgili endişeleri veya şüpheli güvenlik ihlallerini gösterebilecek tutarsızlıklar ve anomaliler hakkında içgörü elde edebilirsiniz. Ayrıca uyumluluk standartlarına bağlı kalmayı sağlar ve kolaylaştırır.
Uygulama
Veritabanı olaylarını izlemek ve bunları Azure Depolama hesabınızda, Log Analytics çalışma alanınızda (önizleme) veya Event Hubs'da (önizleme) bir denetim günlüğüne yazmak için SQL Veritabanı Denetimi veya Yönetilen Örnek Denetimini etkinleştirin.
Denetim günlükleri bir Azure Depolama hesabına, Azure İzleyici günlükleri tarafından kullanılmak üzere Log Analytics çalışma alanına veya olay hub'ı kullanılarak kullanılmak üzere olay hub'ına yazılabilir. Bu seçeneklerin herhangi bir bileşimini yapılandırabilirsiniz ve denetim günlükleri her birine yazılır.
En iyi uygulamalar
- Olayları denetlemek için sunucunuzda veya Yönetilen Örnek Denetiminde SQL Veritabanı Denetimi yapılandırıldığında, bu sunucuda var olan ve yeni oluşturulan tüm veritabanları denetlenecektir.
- Varsayılan olarak denetim ilkesi veritabanlarına yönelik tüm eylemleri (sorgular, saklı yordamlar ve başarılı ve başarısız oturum açma işlemleri) içerir ve bu da yüksek hacimli denetim günlüklerine neden olabilir. Müşterilerin PowerShell kullanarak farklı eylem ve eylem grupları için denetimi yapılandırması önerilir. Bunu yapılandırmak, denetlenen eylemlerin sayısını denetlemeye ve olay kaybı riskini en aza indirmeye yardımcı olur. Özel denetim yapılandırmaları müşterilerin yalnızca gerekli denetim verilerini yakalamasına olanak tanır.
- Denetim günlükleri doğrudan Azure portalında veya yapılandırılan depolama konumundan kullanılabilir.
Not
Log Analytics'te denetimin etkinleştirilmesi, alım oranlarına göre maliyet doğuracaktır. Lütfen bu seçeneğin kullanılmasıyla ilişkili maliyetin farkında olun veya denetim günlüklerini bir Azure depolama hesabında depolamayı göz önünde bulundurun.
Diğer kaynaklar
Denetim günlüklerinin güvenliğini sağlama
Görev Ayrımını desteklemek ve DBA'yı Denetçilerden ayırmak için depolama hesabına erişimi kısıtlayın.
Uygulama
- Denetim günlüklerini Azure Depolama'ya kaydederken, Depolama Hesabına erişimin en düşük güvenlik ilkeleriyle sınırlı olduğundan emin olun. Depolama hesabına erişimi olan kişileri denetleme.
- Daha fazla bilgi için bkz . Azure Depolama'ya erişimi yetkilendirme.
En iyi uygulamalar
Denetim Hedefine Erişimi Denetleme, DBA'nın Denetçilerden ayrılmasında önemli bir kavramdır.
Hassas verilere erişimi denetlerken, Denetçiye bilgi sızıntısını önlemek için verilerin güvenliğini veri şifrelemesi ile sağlamayı göz önünde bulundurun. Daha fazla bilgi için, Yüksek ayrıcalıklı, yetkisiz kullanıcılardan kullanılmakta olan hassas verileri koruma bölümüne bakın.
Güvenlik Yönetimi
Bu bölümde veritabanlarınızın güvenlik duruşunu yönetmek için farklı yönleri ve en iyi yöntemler açıklanmaktadır. Veritabanlarınızın güvenlik standartlarını karşılayacak şekilde yapılandırıldığından emin olmak, veritabanlarınızdaki hassas olabilecek verileri bulmak ve sınıflandırmak ve bunlara erişimi izlemek için en iyi yöntemleri içerir.
Veritabanlarının en iyi güvenlik yöntemlerini karşılayacak şekilde yapılandırıldığından emin olun
Olası veritabanı güvenlik açıklarını keşfederek ve düzelterek veritabanı güvenliğinizi proaktif olarak geliştirin.
Uygulama
- Sql Güvenlik Açığı Değerlendirmesi'nin (VA) veritabanınızı güvenlik sorunlarına karşı taramasını ve veritabanlarınızda düzenli aralıklarla otomatik olarak çalışmasını sağlayın.
En iyi uygulamalar
Başlangıçta veritabanlarınızda VA'yı çalıştırın ve en iyi güvenlik yöntemlerine karşı olan başarısız denetimleri düzelterek yineleyin. Tarama temiz çıkana veya tüm denetimler geçene kadar kabul edilebilir yapılandırmalar için temelleri ayarlayın.
Düzenli yinelenen taramaları haftada bir çalışacak şekilde yapılandırın ve ilgili kişiyi özet e-posta alacak şekilde yapılandırın.
Her haftalık taramadan sonra VA özetini gözden geçirin. Bulunan tüm güvenlik açıkları için, önceki tarama sonucundaki kaymayı değerlendirin ve denetimin çözümlenip çözümlenmediğini belirleyin. Yapılandırmadaki değişikliğin geçerli bir nedeni olup olmadığını gözden geçirin.
İlgili olduğunda denetimleri çözün ve temelleri güncelleştirin. Eylemleri çözümlemek için bilet öğeleri oluşturun ve çözümlenene kadar bunları izleyin.
Diğer kaynaklar
- SQL Güvenlik Açığı Değerlendirmesi
- SQL Güvenlik Açığı Değerlendirme hizmeti, veritabanı güvenlik açıklarını belirlemenize yardımcı olur
Hassas verileri tanımlama ve etiketleme
Hassas veriler içerebilecek sütunları keşfedin. Hassas veriler olarak kabul edilenler büyük ölçüde müşteriye, uyumluluk düzenlemesine vb. bağlıdır ve söz konusu verilerden sorumlu kullanıcılar tarafından değerlendirilmesi gerekir. Gelişmiş duyarlılık tabanlı denetim ve koruma senaryolarını kullanmak için sütunları sınıflandırın.
Uygulama
- Veritabanlarınızdaki hassas verileri bulmak, sınıflandırmak, etiketlemek ve korumak için SQL Veri Bulma ve Sınıflandırma'yı kullanın.
- SQL Veri Bulma ve Sınıflandırma panosunda otomatik bulma tarafından oluşturulan sınıflandırma önerilerini görüntüleyin. Hassas verilerinizin sürekli olarak sınıflandırma etiketleriyle etiketlenmiş olması için ilgili sınıflandırmaları kabul edin.
- Otomatik mekanizma tarafından keşfedilmemiş ek hassas veri alanları için sınıflandırmaları el ile ekleyin.
- Daha fazla bilgi için bkz . SQL Veri Bulma ve Sınıflandırma.
En iyi uygulamalar
Veritabanının sınıflandırma durumunun doğru bir değerlendirmesi için sınıflandırma panosunu düzenli olarak izleyin. Veritabanı sınıflandırma durumuyla ilgili bir rapor, uyumluluk ve denetim amacıyla paylaşmak üzere dışarı aktarılabilir veya yazdırılabilir.
SQL Güvenlik Açığı Değerlendirmesi'nde önerilen hassas verilerin durumunu sürekli izleyin. Hassas veri bulma kuralını izleyin ve sınıflandırma için önerilen sütunlarda herhangi bir kayması belirleyin.
Sınıflandırmayı kuruluşunuzun belirli ihtiyaçlarına göre uyarlanmış bir şekilde kullanın. Bulut için Microsoft Defender'daki SQL Information Protection ilkesinde Information Protection ilkenizi (duyarlılık etiketleri, bilgi türleri, bulma mantığı) özelleştirin.
Hassas verilere erişimi izleme
Hassas verilere kimlerin eriştiğine bakın ve denetim günlüklerindeki hassas veriler üzerinde sorgular yakalayın.
Uygulama
- SQL Denetimi ile Veri Sınırlandırması'nı birlikte kullanın.
- SQL Veritabanı Denetim günlüğünüzde hassas verilere erişimi izleyebilirsiniz. Ayrıca, hem erişilen veriler hem de duyarlılık etiketi gibi bilgileri görüntüleyebilirsiniz. Daha fazla bilgi için bkz . Veri Bulma ve Sınıflandırma ve Hassas verilere erişimi denetleme.
En iyi uygulamalar
- Denetim ve Veri Sınıflandırması bölümleri için en iyi yöntemlere bakın:
Güvenlik ve uyumluluk durumunu görselleştirme
Veri merkezlerinizin (SQL Veritabanı veritabanları dahil) güvenlik duruşunu güçlendiren birleşik bir altyapı güvenlik yönetim sistemi kullanın. Veritabanlarınızın güvenliği ve uyumluluk durumuyla ilgili önerilerin listesini görüntüleyin.
Uygulama
- Bulut için Microsoft Defender SQL ile ilgili güvenlik önerilerini ve etkin tehditleri izleyin.
Yaygın güvenlik tehditleri ve olası risk azaltmaları
Bu bölüm, belirli saldırı vektörlerine karşı korumaya yönelik güvenlik önlemleri bulmanıza yardımcı olur. Yukarıdaki güvenlik yönergelerinden biri veya daha fazlası izlenerek çoğu risk azaltma işleminin gerçekleştirilebileceği beklenmektedir.
Güvenlik tehdidi: Veri sızdırma
Veri sızdırma, bir bilgisayardan veya sunucudan yetkisiz veri kopyalama, aktarma veya alma işlemidir. Wikipedia'da veri sızdırma tanımına bakın.
Genel uç nokta üzerinden sunucuya bağlanmak, müşterilerin güvenlik duvarlarını genel IP'lere açmasını gerektirdiği için bir veri sızdırma riski sunar.
Senaryo 1: Azure VM'deki bir uygulama Azure SQL Veritabanı'daki bir veritabanına bağlanır. Düzenbaz bir aktör VM'ye erişim elde eder ve vm'nin güvenliğini ihlal eder. Bu senaryoda, veri sızdırma, hatalı VM kullanan bir dış varlığın veritabanına bağlanıp kişisel verileri kopyalayıp blob depolama alanında veya farklı bir abonelikte farklı bir SQL Veritabanı depolaması anlamına gelir.
Senaryo 2: Sahte bir DBA. Bu senaryo genellikle denetime tabi sektörlerden gelen güvenlik duyarlı müşteriler tarafından oluşturulur. Bu senaryoda, yüksek ayrıcalıklı bir kullanıcı verileri Azure SQL Veritabanı veri sahibi tarafından denetlenmeyen başka bir aboneliğe kopyalayabilir.
Olası risk azaltmaları
Bugün Azure SQL Veritabanı ve SQL Yönetilen Örneği, veri sızdırma tehditlerini azaltmak için aşağıdaki teknikleri sunar:
- VM'den hangi bölgelere erişilebileceğini denetlemek için Azure VM'lerinin NSG'lerinde İzin Ver ve Reddet kurallarının bir bileşimini kullanın.
- SQL Veritabanı bir sunucu kullanıyorsanız aşağıdaki seçenekleri ayarlayın:
- SQL Yönetilen Örneği için, özel IP erişiminin varsayılan olarak kullanılması, sahte bir VM'nin ilk veri sızdırma endişesini giderir. SQL Yönetilen Örneği bir alt ağda en kısıtlayıcı ilkeyi otomatik olarak ayarlamak için bir alt ağda alt ağ temsilcisi özelliğini açın.
- Rogue DBA endişesi, daha büyük bir yüzey alanına sahip olduğundan ve ağ gereksinimleri müşteriler tarafından görülediğinden SQL Yönetilen Örneği ile daha fazla açığa çıkar. Bunun için en iyi azaltma, rogue DBA senaryolarını ilk etapta (yalnızca veri sızdırma için değil) önlemek için bu güvenlik kılavuzundaki tüm uygulamaları uygulamaktır. Always Encrypted, hassas verileri şifreleyerek ve anahtarı DBA için erişilemez durumda tutarak korumak için bir yöntemdir.
İş sürekliliği ve kullanılabilirliğinin güvenlik yönleri
Çoğu güvenlik standardı, tek hata noktalarını önlemek için yedeklilik ve yük devretme özellikleri uygulanarak elde edilen işletimsel süreklilik açısından veri kullanılabilirliğini ele alır. Olağanüstü durum senaryolarında, Veri ve Günlük dosyalarının yedeklerini tutmak yaygın bir uygulamadır. Aşağıdaki bölümde, Azure'da yerleşik olarak bulunan özelliklere yönelik üst düzey bir genel bakış sağlanmaktadır. Ayrıca belirli gereksinimleri karşılayacak şekilde yapılandırılabilir ek seçenekler de sağlar:
Azure yerleşik yüksek kullanılabilirlik sunar: SQL Veritabanı ve SQL Yönetilen Örneği ile yüksek kullanılabilirlik
İş Açısından Kritik katmanı yük devretme gruplarını, tam ve değişiklik günlüğü yedeklemelerini ve varsayılan olarak etkinleştirilen belirli bir noktaya geri yükleme yedeklemelerini içerir:
Farklı Azure coğrafyalarında alanlar arası yedekli yapılandırma ve yük devretme grupları gibi ek iş sürekliliği özellikleri yapılandırılabilir: