Udostępnij przez


Omówienie zabezpieczeń (Integration Services)

Dotyczy:SQL Server SSIS Integration Runtime w ramach usługi Azure Data Factory

Zabezpieczenia w usługach SQL Server Integration Services składają się z kilku warstw, które zapewniają zaawansowane i elastyczne środowisko zabezpieczeń. Te warstwy zabezpieczeń obejmują używanie podpisów cyfrowych, właściwości pakietu, ról bazy danych programu SQL Server i uprawnień systemu operacyjnego. Większość tych funkcji zabezpieczeń należy do kategorii tożsamości i kontroli dostępu.

Ograniczanie zagrożeń i luk w zabezpieczeniach

Mimo że usługi Integration Services obejmują różne mechanizmy zabezpieczeń, pakiety i pliki tworzone lub używane przez pakiety mogą być wykorzystywane do złośliwych celów.

W poniższej tabeli opisano te zagrożenia i proaktywne kroki, które można podjąć, aby zmniejszyć ryzyko.

Zagrożenie lub luka w zabezpieczeniach Definicja Czynności zapobiegawcze
Źródło pakietu Źródłem pakietu jest osoba lub organizacja, która utworzyła pakiet. Uruchomienie pakietu z nieznanego lub niezaufanego źródła może być ryzykowne. Zidentyfikuj źródło pakietu przy użyciu podpisu cyfrowego i uruchom pakiety pochodzące tylko ze znanych, zaufanych źródeł. Aby uzyskać więcej informacji, zobacz Identyfikowanie źródła pakietów przy użyciu podpisów cyfrowych.
Zawartość pakietu Zawartość pakietu zawiera elementy w pakiecie i ich właściwości. Właściwości mogą zawierać poufne dane, takie jak hasło lub parametry połączenia. Elementy pakietu, takie jak instrukcja SQL, mogą ujawnić strukturę bazy danych. Aby kontrolować dostęp do pakietu i do zawartości, wykonaj następujące czynności:

1) Aby kontrolować dostęp do samego pakietu, zastosuj funkcje zabezpieczeń programu SQL Server do pakietów zapisanych w bazie danych msdb w wystąpieniu programu SQL Server. W przypadku pakietów zapisanych w systemie plików należy zastosować funkcje zabezpieczeń systemu plików, takie jak listy kontroli dostępu (ACL).

2) Aby kontrolować dostęp do zawartości pakietu, ustaw poziom ochrony pakietu.

Aby uzyskać więcej informacji, zobacz Security Overview (Integration Services) i Access Control for Sensitive Data in Packages (Omówienie zabezpieczeń (Integration Services) i Kontrola dostępu do poufnych danych w pakietach.
Dane wyjściowe pakietu Podczas konfigurowania pakietu do używania konfiguracji, punktów kontrolnych i rejestrowania pakiet przechowuje te informacje poza pakietem. Informacje przechowywane poza pakietem mogą zawierać poufne dane. Aby chronić konfiguracje i dzienniki, które pakiet zapisuje w tabelach bazy danych programu SQL Server, użyj funkcji zabezpieczeń programu SQL Server.

Aby kontrolować dostęp do plików, użyj list kontroli dostępu (ACL) dostępnych w systemie plików.

Aby uzyskać więcej informacji, zobacz Dostęp do plików używanych przez pakiety

Funkcje tożsamości

Implementując funkcje tożsamości w pakietach, można osiągnąć następujący cel:

Upewnij się, że otwierasz i uruchamiasz tylko pakiety z zaufanych źródeł.

Aby upewnić się, że otwierasz i uruchamiasz tylko pakiety z zaufanych źródeł, musisz najpierw zidentyfikować źródło pakietów. Źródło można zidentyfikować, podpisując pakiety przy użyciu certyfikatów. Następnie po otwarciu lub uruchomieniu pakietów można sprawdzić obecność i ważność podpisów cyfrowych. Aby uzyskać więcej informacji, zobacz Identyfikowanie źródła pakietów przy użyciu podpisów cyfrowych.

Funkcje kontroli dostępu

Implementując funkcje tożsamości w pakietach, można osiągnąć następujący cel:

Upewnij się, że tylko autoryzowani użytkownicy otwierają i uruchamiają pakiety.

Aby upewnić się, że tylko autoryzowani użytkownicy otwierają i uruchamiają pakiety, musisz kontrolować dostęp do następujących informacji:

  • Kontrolowanie dostępu do zawartości pakietów, szczególnie poufnych danych.

  • Kontrolowanie dostępu do pakietów i konfiguracji pakietów przechowywanych w programie SQL Server.

  • Kontrolowanie dostępu do pakietów i powiązanych plików, takich jak konfiguracje, dzienniki i pliki punktów kontrolnych przechowywane w systemie plików.

  • Kontrolowanie dostępu do usługi Integration Services oraz do informacji o pakietach wyświetlanych przez usługę w programie SQL Server Management Studio.

Kontrolowanie dostępu do zawartości pakietów

Aby ograniczyć dostęp do zawartości pakietu, możesz zaszyfrować pakiety, ustawiając właściwość ProtectionLevel pakietu. Tę właściwość można ustawić na poziom ochrony wymagany przez pakiet. Na przykład w środowisku projektowym zespołu można zaszyfrować pakiet przy użyciu hasła znanego tylko członkom zespołu, którzy pracują nad pakietem.

Po ustawieniu właściwości ProtectionLevel pakietu usługi Integration Services automatycznie wykrywa poufne właściwości i obsługuje te właściwości zgodnie z określonym poziomem ochrony pakietu. Można na przykład ustawić właściwość ProtectionLevel dla pakietu na poziom, który szyfruje poufne informacje przy użyciu hasła. W przypadku tego pakietu usługi Integration Services automatycznie szyfrują wartości wszystkich poufnych właściwości i nie będą wyświetlać odpowiednich danych bez podania poprawnego hasła.

Zazwyczaj usługi Integration Services identyfikują właściwości jako poufne, jeśli te właściwości zawierają informacje, takie jak hasło lub parametry połączenia, lub jeśli te właściwości odpowiadają zmiennym lub węzłom XML wygenerowanym przez zadanie. Niezależnie od tego, czy usługi Integration Services uznają właściwość wrażliwą na właściwość, zależy od tego, czy deweloper składnika usług Integration Services, taki jak menedżer połączenia lub zadanie, określił właściwość jako wrażliwą. Użytkownicy nie mogą dodawać właściwości ani usuwać właściwości z listy właściwości, które są uznawane za poufne. W przypadku pisania niestandardowych zadań, menedżerów połączeń lub składników przepływu danych można określić, które właściwości usługi Integration Services powinny traktować jako poufne.

Aby uzyskać więcej informacji, zobacz Kontrola dostępu do poufnych danych w pakietach.

Kontrolowanie dostępu do pakietów

Pakiety usług Integration Services można zapisać w bazie danych msdb w wystąpieniu programu SQL Server lub w systemie plików jako pliki XML, które mają rozszerzenie nazwy pliku dtsx. Aby uzyskać więcej informacji, zobacz Zapisywanie pakietów.

Zapisywanie pakietów w bazie danych msdb

Zapisywanie pakietów w bazie danych msdb pomaga zapewnić bezpieczeństwo na poziomie serwera, bazy danych i tabeli. W bazie danych msdb pakiety usług Integration Services są przechowywane w tabeli sysssispackages. Ponieważ pakiety są zapisywane w tabelach sysssispackages i sysdtspackages w bazie danych msdb, są one automatycznie uwzględniane w kopii zapasowej podczas tworzenia kopii zapasowej bazy danych msdb.

Pakiety programu SQL Server przechowywane w bazie danych msdb mogą być również chronione przez zastosowanie ról na poziomie bazy danych usług Integration Services. Usługi Integration Services obejmują trzy stałe role na poziomie bazy danych db_ssisadmin, db_ssisltduser i db_ssisoperator do kontrolowania dostępu do pakietów. Role czytelnika i pisarza mogą być powiązane z każdym pakietem. Możesz również zdefiniować niestandardowe role na poziomie bazy danych do użycia w pakietach usług Integration Services. Role można zaimplementować tylko w pakietach zapisywanych w bazie danych msdb w wystąpieniu programu SQL Server. Aby uzyskać więcej informacji, zobacz Role usług Integration Services (SSIS Service).

Zapisywanie pakietów w systemie plików

Jeśli przechowujesz pakiety w systemie plików zamiast w bazie danych msdb, upewnij się, że zabezpieczysz pliki pakietu i foldery zawierające pliki pakietów.

Kontrolowanie dostępu do plików używanych przez pakiety

Pakiety skonfigurowane do używania konfiguracji, punktów kontrolnych i rejestrowania generują informacje przechowywane poza pakietem. Te informacje mogą być poufne i powinny być chronione. Pliki punktu kontrolnego można zapisywać tylko w systemie plików, ale konfiguracje i dzienniki można zapisywać w systemie plików lub w tabelach w bazie danych programu SQL Server. Konfiguracje i dzienniki zapisane w programie SQL Server podlegają zabezpieczeń programu SQL Server, ale informacje zapisywane w systemie plików wymagają dodatkowych zabezpieczeń.

Aby uzyskać więcej informacji, zobacz Dostęp do plików używanych przez pakiety.

Bezpieczne przechowywanie konfiguracji pakietów

Konfiguracje pakietów można zapisywać w tabeli w bazie danych programu SQL Server lub w systemie plików.

Konfiguracje można zapisywać w dowolnej bazie danych programu SQL Server, a nie tylko w bazie danych msdb. W związku z tym można określić, która baza danych służy jako repozytorium konfiguracji pakietów. Możesz również określić nazwę tabeli, która będzie zawierać konfiguracje, a usługi Integration Services automatycznie tworzą tabelę z poprawną strukturą. Zapisanie konfiguracji w tabeli umożliwia zapewnienie zabezpieczeń na poziomie serwera, bazy danych i tabeli. Ponadto konfiguracje zapisywane w programie SQL Server są automatycznie tworzone podczas tworzenia kopii zapasowej bazy danych.

Jeśli konfiguracje są przechowywane w systemie plików zamiast w programie SQL Server, należy zabezpieczyć foldery zawierające pliki konfiguracji pakietu.

Aby uzyskać więcej informacji na temat konfiguracji, zobacz Konfiguracja pakietów.

Kontrolowanie dostępu do usługi Integration Services

Program SQL Server Management Studio używa usługi SQL Server do wyświetlania listy przechowywanych pakietów. Aby uniemożliwić nieautoryzowanym użytkownikom wyświetlanie informacji o pakietach przechowywanych na komputerach lokalnych i zdalnych, a tym samym uczenia się informacji prywatnych, należy ograniczyć dostęp do komputerów z uruchomioną usługą PROGRAMU SQL Server.

Aby uzyskać więcej informacji, zobacz Dostęp do usługi Integration Services.

Dostęp do plików używanych przez pakiety

Poziom ochrony pakietu nie chroni plików przechowywanych poza pakietem. Te pliki obejmują następujące elementy:

  • Pliki konfiguracji

  • Pliki punktu kontrolnego

  • Pliki dziennika

Te pliki muszą być chronione oddzielnie, zwłaszcza jeśli zawierają poufne informacje.

Pliki konfiguracji

Jeśli masz poufne informacje w konfiguracji, takie jak informacje logowania i hasła, należy rozważyć zapisanie konfiguracji w programie SQL Server lub użycie listy kontroli dostępu (ACL), aby ograniczyć dostęp do lokalizacji lub folderu, w którym są przechowywane pliki i zezwalać na dostęp tylko do niektórych kont. Zazwyczaj udzielasz dostępu kontom, które pozwalasz na uruchamianie pakietów, oraz kontom, które zarządzają i rozwiązują problemy związane z pakietami, co może obejmować przeglądanie zawartości plików konfiguracyjnych, punktów kontrolnych i dzienników. Program SQL Server zapewnia bardziej bezpieczny magazyn, ponieważ zapewnia ochronę na poziomie serwera i bazy danych. Aby zapisać konfiguracje w programie SQL Server, należy użyć typu konfiguracji programu SQL Server. Aby zapisać w systemie plików, należy użyć typu konfiguracji XML.

Aby uzyskać więcej informacji, zobacz Konfiguracja pakietów, Tworzenie konfiguracji pakietów i Zagadnienia dotyczące zabezpieczeń instalacji programu SQL Server.

Pliki punktów kontrolnych

Podobnie, jeśli plik punktu kontrolnego używany przez pakiet zawiera informacje poufne, należy użyć listy kontroli dostępu (ACL), aby zabezpieczyć lokalizację lub folder, w którym jest przechowywany plik. Pliki punktów kontrolnych zapisują bieżące informacje o stanie postępu pakietu, a także bieżące wartości zmiennych. Na przykład pakiet może zawierać zmienną niestandardową zawierającą numer telefonu. Aby uzyskać więcej informacji, zobacz Ponowne uruchamianie pakietów przy użyciu punktów kontrolnych.

Pliki dziennika

Wpisy dziennika zapisywane w systemie plików powinny być również zabezpieczone przy użyciu listy kontroli dostępu (ACL). Wpisy dziennika mogą być również przechowywane w tabelach programu SQL Server i chronione przez zabezpieczenia programu SQL Server. Wpisy dziennika mogą zawierać poufne informacje, na przykład jeśli pakiet zawiera zadanie Execute SQL, które tworzy instrukcję SQL odwołującą się do numeru telefonu, wpis dziennika instrukcji SQL zawiera numer telefonu. Instrukcja SQL może również ujawnić prywatne informacje o nazwach tabel i kolumn w bazach danych. Więcej informacji znajdziesz w Integration Services (SSIS) Logging.

Dostęp do usługi Integration Services

Poziomy ochrony pakietów mogą ograniczać, kto może edytować i wykonywać pakiet. Wymagana jest dodatkowa ochrona, aby ograniczyć, kto może wyświetlać listę pakietów aktualnie uruchomionych na serwerze i kto może zatrzymać obecnie wykonywanie pakietów w programie SQL Server Management Studio.

Program SQL Server Management Studio używa usługi SQL Server do wyświetlania listy uruchomionych pakietów. Członkowie grupy Administratorzy systemu Windows mogą wyświetlać i zatrzymywać wszystkie aktualnie uruchomione pakiety. Użytkownicy, którzy nie są członkami grupy Administratorzy, mogą wyświetlać i zatrzymywać tylko uruchomione pakiety.

Należy ograniczyć dostęp do komputerów z uruchomioną usługą programu SQL Server, zwłaszcza taką, która może wyliczać foldery zdalne. Każdy uwierzytelniony użytkownik może zażądać wyliczenia pakietów. Nawet jeśli usługa nie znajdzie usługi, usługa wylicza foldery. Te nazwy folderów mogą być przydatne dla złośliwego użytkownika. Jeśli administrator skonfigurował usługę do wyliczania folderów na komputerze zdalnym, użytkownicy mogą również widzieć nazwy folderów, których zwykle nie będą widzieć.

Poniższa lista zawiera linki do tematów, które pokazują, jak wykonać określone zadanie dotyczące zabezpieczeń.