Aracılığıyla paylaş


Güvenliğe Genel Bakış (Integration Services)

Şunlar için geçerlidir:SQL Server Azure Data Factory'de SSIS Entegrasyon Çalışma Zamanı

SQL Server Integration Services'da güvenlik, zengin ve esnek bir güvenlik ortamı sağlayan çeşitli katmanlardan oluşur. Bu güvenlik katmanları dijital imzaların, paket özelliklerinin, SQL Server veritabanı rollerinin ve işletim sistemi izinlerinin kullanımını içerir. Bu güvenlik özelliklerinin çoğu kimlik ve erişim denetimi kategorilerine ayrılır.

Tehdit ve Güvenlik Açığı Azaltma

Integration Services çeşitli güvenlik mekanizmaları içerse de paketler ve paketlerin oluşturduğu veya kullandığı dosyalar kötü amaçlı olarak kullanılabilir.

Aşağıdaki tabloda bu riskler ve riskleri azaltmak için atabileceğiniz proaktif adımlar açıklanmaktadır.

Tehdit veya güvenlik açığı Tanım Azaltma
Paket kaynağı Paketin kaynağı, paketi oluşturan kişi veya kuruluştur. Bilinmeyen veya güvenilmeyen bir kaynaktan paket çalıştırmak riskli olabilir. Dijital imza kullanarak paketin kaynağını belirleyin ve yalnızca bilinen, güvenilen kaynaklardan gelen paketleri çalıştırın. Daha fazla bilgi için bkz. Dijital İmzalarla Paketlerin Kaynağını Belirleme.
Paket içeriği Paket içeriği, paketteki öğeleri ve bunların özelliklerini içerir. Özellikler parola veya bağlantı dizesi gibi hassas veriler içerebilir. SQL deyimi gibi paket öğeleri veritabanınızın yapısını ortaya çıkarabilir. Aşağıdaki adımları uygulayarak pakete ve içeriklere erişimi denetleyin:

1) Paketin kendisine erişimi denetlemek için SQL Server'ın bir örneğindeki msdb veritabanına kaydedilen paketlere SQL Server güvenlik özelliklerini uygulayın. Dosya sistemine kaydedilen paketlere, erişim denetimleri listeleri (ACL'ler) gibi dosya sistemi güvenlik özelliklerini uygulayın.

2) Paketin içeriğine erişimi denetlemek için paketin koruma düzeyini ayarlayın.

Daha fazla bilgi için bkz. Paketlerdeki Hassas Veriler içinGüvenliğe Genel Bakış (Integration Services) ve Erişim Denetimi.
Paket çıkışı Bir paketi yapılandırmaları, denetim noktalarını ve günlüğe kaydetmeyi kullanacak şekilde yapılandırdığınızda, paket bu bilgileri paketin dışında depolar. Paketin dışında depolanan bilgiler hassas veriler içerebilir. Paketin SQL Server veritabanı tablolarına kaydettiği yapılandırmaları ve günlükleri korumak için SQL Server güvenlik özelliklerini kullanın.

Dosyalara erişimi denetlemek için dosya sisteminde bulunan erişim denetim listelerini (ACL' ler) kullanın.

Daha fazla bilgi için bkz. Paketler Tarafından Kullanılan Dosyalara Erişim

Kimlik Özellikleri

Paketlerinizde kimlik özelliklerini uygulayarak aşağıdaki hedefe ulaşabilirsiniz:

Yalnızca güvenilen kaynaklardan gelen paketleri açtığınızdan ve çalıştırdığınızdan emin olun.

Yalnızca güvenilen kaynaklardan gelen paketleri açtığınızdan ve çalıştırdığınızdan emin olmak için önce paketlerin kaynağını tanımlamanız gerekir. Paketleri sertifikalarla imzalayarak kaynağı tanımlayabilirsiniz. Ardından, paketleri açtığınızda veya çalıştırdığınızda, Integration Services'ın dijital imzaların varlığını ve geçerliliğini denetlemesini sağlayabilirsiniz. Daha fazla bilgi için bkz. Dijital İmzalarla Paketlerin Kaynağını Belirleme.

Erişim Denetimi Özellikleri

Paketlerinizde kimlik özelliklerini uygulayarak aşağıdaki hedefe ulaşabilirsiniz:

Paketleri yalnızca yetkili kullanıcıların açıp çalıştırdığından emin olun.

Paketleri yalnızca yetkili kullanıcıların açıp çalıştırdığından emin olmak için aşağıdaki bilgilere erişimi denetlemeniz gerekir:

  • Paketlerin içeriğine, özellikle de hassas verilere erişimi denetleme.

  • SQL Server'da depolanan paketlere ve paket yapılandırmalarına erişimi denetleyin.

  • Paketlere ve yapılandırmalar, günlükler ve dosya sisteminde depolanan denetim noktası dosyaları gibi ilgili dosyalara erişimi denetleyin.

  • Integration Services hizmetine ve hizmetin SQL Server Management Studio'da görüntülediği paketler hakkındaki bilgilere erişimi denetleyin.

Paketlerin İçeriğine Erişimi Denetleme

Bir paketin içeriğine erişimi kısıtlamaya yardımcı olmak için paketin ProtectionLevel özelliğini ayarlayarak paketleri şifreleyebilirsiniz. Bu özelliği, paketinizin gerektirdiği koruma düzeyine ayarlayabilirsiniz. Örneğin, bir ekip geliştirme ortamında, paketi yalnızca paket üzerinde çalışan ekip üyeleri tarafından bilinen bir parola kullanarak şifreleyebilirsiniz.

Bir paketin ProtectionLevel özelliğini ayarladığınızda, Integration Services hassas özellikleri otomatik olarak algılar ve bu özellikleri belirtilen paket koruma düzeyine göre işler. Örneğin, bir paket için ProtectionLevel özelliğini hassas bilgileri parolayla şifreleyen bir düzeye ayarlarsınız. Bu paket için Integration Services tüm hassas özelliklerin değerlerini otomatik olarak şifreler ve doğru parola sağlanmadan ilgili verileri görüntülemez.

Integration Services genellikle, bu özellikler parola veya bağlantı dizesi gibi bilgiler içeriyorsa veya bu özellikler değişkenlere veya görev tarafından oluşturulan XML düğümlerine karşılık geliyorsa, özellikleri hassas olarak tanımlar. Tümleştirme Hizmetleri'nin bir özelliğe duyarlı olup olmadığı, Integration Services bileşeninin geliştiricisinin (bağlantı yöneticisi veya görev gibi) özelliği hassas olarak belirlemiş olup olmadığına bağlıdır. Kullanıcılar, hassas olarak kabul edilen özellikler listesine özellik ekleyemez veya 'den özellik kaldıramaz. Özel görevler, bağlantı yöneticileri veya veri akışı bileşenleri yazarsanız Integration Services'ın hangi özelliklerin hassas olarak ele alınacağını belirtebilirsiniz.

Daha fazla bilgi için bkz.Paketlerde Hassas Veriler için Erişim Denetimi .

Paketlere Erişimi Denetleme

Integration Services paketlerini SQL Server örneğindeki msdb veritabanına veya dosya sistemine .dtsx dosya adı uzantısına sahip XML dosyaları olarak kaydedebilirsiniz. Daha fazla bilgi için bkz. Paketleri Kaydetme.

Paketleri msdb Veritabanına Kaydetme

Paketlerin msdb veritabanına kaydedilmesi sunucu, veritabanı ve tablo düzeylerinde güvenlik sağlamaya yardımcı olur. msdb veritabanında Integration Services paketleri sysssispackages tablosunda depolanır. Paketler msdb veritabanındaki sysssispackages ve sysdtspackages tablolarına kaydedildiğinden, msdb veritabanını yedeklediğinizde paketler otomatik olarak yedeklenir.

msdb veritabanında depolanan SQL Server paketleri, Integration Services veritabanı düzeyindeki roller uygulanarak da korunabilir. Integration Services, paketlere erişimi denetlemek için db_ssisadmin, db_ssisltduser ve db_ssisoperator üç sabit veritabanı düzeyinde rol içerir. Her paketle bir okuyucu ve yazar rolü ilişkilendirilebilir. Integration Services paketlerinde kullanılacak özel veritabanı düzeyinde roller de tanımlayabilirsiniz. Roller yalnızca SQL Server örneğindeki msdb veritabanına kaydedilen paketlere uygulanabilir. Daha fazla bilgi için Integration Services Roller (SSIS Hizmeti)'ne bakın.

Paketleri Dosya Sistemine Kaydetme

Paketleri msdb veritabanında depolamak yerine dosya sistemine depolarsanız, paket dosyalarının ve paket dosyalarını içeren klasörlerin güvenliğini sağlamayı unutmayın.

Paketler Tarafından Kullanılan Dosyalara Erişimi Denetleme

Yapılandırmaları, denetim noktalarını ve günlüğe kaydetmeyi kullanacak şekilde yapılandırılmış paketler, paketin dışında depolanan bilgileri üretir. Bu bilgiler hassas olabilir ve korunmalıdır. Denetim noktası dosyaları yalnızca dosya sistemine kaydedilebilir, ancak yapılandırmalar ve günlükler dosya sistemine veya SQL Server veritabanındaki tablolara kaydedilebilir. SQL Server'a kaydedilen yapılandırmalar ve günlükler SQL Server güvenliğine tabidir, ancak dosya sistemine yazılan bilgiler ek güvenlik gerektirir.

Daha fazla bilgi için bkz. Paketler Tarafından Kullanılan Dosyalara Erişim.

Paket Yapılandırmalarını Güvenli Bir Şekilde Depolama

Paket yapılandırmaları SQL Server veritabanındaki bir tabloya veya dosya sistemine kaydedilebilir.

Yapılandırmalar yalnızca msdb veritabanına değil, herhangi bir SQL Server veritabanına kaydedilebilir. Bu nedenle, hangi veritabanının paket yapılandırmalarının deposu olarak hizmet verileceğini belirtebilirsiniz. Yapılandırmaları içerecek tablonun adını da belirtebilirsiniz ve Integration Services tabloyu otomatik olarak doğru yapıda oluşturur. Yapılandırmaların bir tabloya kaydedilmesi sunucu, veritabanı ve tablo düzeylerinde güvenlik sağlanmasını mümkün kılar. Ayrıca, veritabanını yedeklediğinizde SQL Server'a kaydedilen yapılandırmalar otomatik olarak yedeklenir.

Yapılandırmaları SQL Server yerine dosya sisteminde depolarsanız, paket yapılandırma dosyalarını içeren klasörlerin güvenliğini sağlamayı unutmayın.

Yapılandırmalar hakkında daha fazla bilgi için bkz. Paket Yapılandırmaları.

Integration Services Hizmetine Erişimi Denetleme

SQL Server Management Studio, depolanan paketleri listelemek için SQL Server hizmetini kullanır. Yetkisiz kullanıcıların yerel ve uzak bilgisayarlarda depolanan paketler hakkındaki bilgileri görüntülemesini ve böylece özel bilgileri öğrenmesini önlemek için, SQL Server hizmetini çalıştıran bilgisayarlara erişimi kısıtlayın.

Daha fazla bilgi için bkz. Integration Services Hizmetine Erişim.

Paketler Tarafından Kullanılan Dosyalara Erişim

Paket koruma düzeyi, paketin dışında depolanan dosyaları korumaz. Bu dosyalar aşağıdakileri içerir:

  • Yapılandırma dosyaları

  • Denetim noktası dosyaları

  • Kayıt dosyaları

Bu dosyalar özellikle hassas bilgiler içeriyorsa ayrı olarak korunmalıdır.

Yapılandırma Dosyaları

Bir yapılandırmada oturum açma ve parola bilgileri gibi hassas bilgileriniz varsa, yapılandırmayı SQL Server'a kaydetmeyi veya dosyaları depoladığınız konuma veya klasöre erişimi kısıtlamak ve yalnızca belirli hesaplara erişime izin vermek için bir erişim denetimi listesi (ACL) kullanmayı düşünmelisiniz. Genellikle, paketleri çalıştırmaya izin verilen hesaplara ve yapılandırma, denetim noktası ve günlük dosyalarının içeriğini gözden geçirmeyi içerebilen paketleri yöneten ve sorun gideren hesaplara erişim izni verirsiniz. SQL Server, sunucu ve veritabanı düzeylerinde koruma sağladığından daha güvenli depolama alanı sağlar. Yapılandırmaları SQL Server'a kaydetmek için SQL Server yapılandırma türünü kullanırsınız. Dosya sistemine kaydetmek için XML yapılandırma türünü kullanırsınız.

Daha fazla bilgi için bkz. Sql Server Yüklemesi içinPaket Yapılandırmaları, Paket Yapılandırmaları Oluşturma ve Güvenlik Konuları.

Denetim Noktası Dosyaları

Benzer şekilde, paketin kullandığı denetim noktası dosyası hassas bilgiler içeriyorsa, dosyayı depoladığınız konumun veya klasörün güvenliğini sağlamak için bir erişim denetim listesi (ACL) kullanmanız gerekir. Denetim noktası dosyaları, hem paketin ilerleme durumuyla ilgili geçerli durum bilgilerini hem de değişkenlerin geçerli değerlerini kaydeder. Örneğin, pakette telefon numarası içeren özel bir değişken bulunabilir. Daha fazla bilgi için bkz. Denetim Noktalarını Kullanarak Paketleri Yeniden Başlatma.

Günlük Dosyaları

Dosya sistemine yazılan günlük girdileri de erişim denetim listesi (ACL) kullanılarak güvenli hale getirilmelidir. Günlük girdileri SQL Server tablolarında da depolanabilir ve SQL Server güvenliği tarafından korunabilir. Günlük girdileri hassas bilgiler içerebilir; örneğin, paket bir telefon numarasına başvuran bir SQL deyimi oluşturan bir SQL Yürütme görevi içeriyorsa, SQL deyiminin günlük girdisi telefon numarasını içerir. SQL deyimi, veritabanlarındaki tablo ve sütun adları hakkında özel bilgiler de gösterebilir. Daha fazla bilgi için bkz. Integration Services (SSIS) – Günlüğe Alma.

Integration Services Hizmetine Erişim

Paket koruma düzeyleri, bir paketi düzenlemesine ve yürütmesine izin verilen kişileri sınırlayabilir. Sunucuda çalışmakta olan paketlerin listesini kimlerin görüntüleyebileceğini ve SQL Server Management Studio'da şu anda paketleri yürütmeyi durdurabilecek kişileri sınırlamak için ek koruma gerekir.

SQL Server Management Studio, çalışan paketleri listelemek için SQL Server hizmetini kullanır. Windows Administrators grubunun üyeleri şu anda çalışan tüm paketleri görüntüleyebilir ve durdurabilir. Yöneticiler grubunun üyesi olmayan kullanıcılar yalnızca başlattıkları paketleri görüntüleyebilir ve durdurabilir.

Özellikle uzak klasörleri numaralandırabilen bir SQL Server hizmeti olmak üzere SQL Server hizmetini çalıştıran bilgisayarlara erişimi kısıtlamak önemlidir. Kimliği doğrulanmış herhangi bir kullanıcı paketlerin numaralandırmasını isteyebilir. Hizmet hizmeti bulmasa bile, hizmet klasörleri numaralandırır. Bu klasör adları kötü amaçlı bir kullanıcı için yararlı olabilir. Bir yönetici hizmeti uzak bir makinedeki klasörleri numaralandıracak şekilde yapılandırdıysa, kullanıcılar normalde göremeyecekleri klasör adlarını da görebilir.

Aşağıdaki liste, güvenlikle ilgili belirli bir görevi nasıl gerçekleştirebileceğinizi gösteren konuların bağlantılarını içerir.