Поделиться через


Обзор безопасности (Integration Services)

Область применения: среда выполнения интеграции SSIS SQL Server в Фабрика данных Azure

Безопасность в службах SQL Server Integration Services состоит из нескольких уровней, которые обеспечивают богатую и гибкую среду безопасности. Эти уровни безопасности включают использование цифровых подписей, свойств пакета, ролей базы данных SQL Server и разрешений операционной системы. Большинство этих функций безопасности относятся к категории управления доступом и удостоверениями.

Предотвращение угроз и устранение уязвимостей

Хотя службы Integration Services включают различные механизмы безопасности, пакеты и файлы, которые создают или используют пакеты, могут быть использованы для вредоносных целей.

В следующей таблице описаны опасности и упреждающие шаги, которые уменьшают риск.

Угроза или уязвимость Определение Исправление
Источник пакета Источник пакета — это человек или организация, создавшие пакет. Запуск пакета, источник которого неизвестен или не является надежным, может быть опасен. Определить источник пакета по цифровой подписи и запускать только пакеты из известных, доверенных источников. Дополнительные сведения см. в разделе Определение источника пакетов с помощью цифровых подписей.
Содержимое пакета Содержимое пакета включает элементы пакета и их свойства. Свойства могут содержать конфиденциальные данные, например пароли или строки соединения. Элементы пакета, такие как инструкция SQL, могут выявить структуру базы данных. Управлять доступом к пакету и его содержимому с помощью следующих шагов.

1) Чтобы управлять доступом к самому пакету, примените функции безопасности SQL Server к пакетам, которые сохраняются в базе данных msdb в экземпляре SQL Server. Применение средств безопасности файловой системы (например списков управления доступом) для пакетов, хранящихся в файловой системе.

2. Управление доступом к содержимому пакета с помощью установки уровня защиты пакета.

Дополнительные сведения см. в разделах Общие сведения о безопасности (службы Integration Services) и Контроль доступа для конфиденциальных данных в пакетах.
Выходные данные пакета Пакеты, настроенные для использования конфигураций, контрольных точек и журналов, создают данные, которые хранятся вне пакетов. Эти сведения могут содержать конфиденциальные данные. Чтобы защитить конфигурации и журналы, которые пакет сохраняет в таблицах базы данных SQL Server, используйте функции безопасности SQL Server.

Управление доступом к файлам с помощью списков управления доступом, доступных в файловой системе.

Дополнительные сведения см. в разделе Доступ к файлам, используемым пакетами

Функции управления удостоверениями

Применение функций управления удостоверениями в пакетах позволяет достичь следующей цели.

Обеспечение открытия и запуск только пакетов из надежных источников

Чтобы гарантировать открытие и выполнение только пакетов из надежных источников, необходимо сначала определить источник пакетов. Определить источник можно, подписывая пакеты с использованием сертификатов. Затем при открытии или запуске пакетов можно проверить наличие и допустимость цифровых подписей служб Integration Services. Дополнительные сведения см. в разделе Определение источника пакетов с помощью цифровых подписей.

Функции управления доступом

Применение функций управления удостоверениями в пакетах позволяет достичь следующей цели.

Обеспечение открытия и запуск пакетов только зарегистрированными пользователями

Чтобы обеспечить открытие и запуск пакетов только зарегистрированными пользователями, необходимо управлять доступом к следующим данным.

  • Управлять доступом к содержимому пакетов, особенно конфиденциальным данным.

  • Управление доступом к пакетам и конфигурациям пакетов, хранящимся в SQL Server.

  • Управлять доступом к пакетам и связанным файлам, таким как файлы конфигурации, журналов и контрольных точек, хранимым в файловой системе.

  • Управление доступом к службе Служб Integration Services и сведениям о пакетах, отображаемых службой в SQL Server Management Studio.

Управление доступом к содержимому пакетов

Чтобы помочь ограничить доступ к содержимому пакета, можно зашифровать пакеты, устанавливая свойство ProtectionLevel пакета. Это свойство можно установить на уровень защиты, необходимый пакету. Например, в среде групповой разработки пакет может быть зашифрован при помощи пароля, который известен членам группы, принимающим участие в его разработке.

При установке свойства ProtectionLevel пакета службы Integration Services автоматически обнаруживают конфиденциальные свойства и обрабатывают эти свойства в соответствии с указанным уровнем защиты пакета. Например, свойство ProtectionLevel пакета установлено на уровень, на котором конфиденциальные сведения шифруются с паролем. Для этого пакета службы Integration Services автоматически шифруют значения всех конфиденциальных свойств и не будут отображать соответствующие данные без правильного пароля.

Как правило, службы Integration Services идентифицируют свойства как конфиденциальные, если эти свойства содержат информацию, например пароль или строка подключения, или если эти свойства соответствуют переменным или созданным задачам XML-узлам. Учитывает ли службы Integration Services свойство, зависят от того, был ли разработчик компонента Служб Integration Services, например диспетчером соединений или задачей, назначить свойство конфиденциальным. Пользователи не могут добавлять в него свойства, а также удалять их из списка свойств, которые считаются конфиденциальными. При написании пользовательских задач, диспетчеров соединений или компонентов потока данных можно указать, какие свойства службы Integration Services должны рассматриваться как конфиденциальные.

Дополнительные сведения см. в разделе Access Control for Sensitive Data in Packages.

Управление доступом к пакетам

Пакеты Служб Integration Services можно сохранить в базе данных msdb в экземпляре SQL Server или файловой системе в виде XML-файлов с расширением DTSX-файла. Дополнительные сведения см. в разделе Сохранение пакетов.

Сохранение пакетов в базе данных msdb

Сохранение пакетов в базе данных msdb способствует повышению безопасности на уровне сервера, базы данных и таблиц. В базе данных msdb пакеты служб Integration Services хранятся в таблице sysssispackages. Поскольку пакеты хранятся в таблицах sysssispackages и sysdtspackages в базе данных msdb, резервное копирование пакетов выполняется автоматически при резервном копировании базы данных msdb.

Пакеты SQL Server, хранящиеся в базе данных msdb, также можно защитить, применяя роли уровня базы данных Служб Integration Services. Службы Integration Services включают три предопределенных роля уровня базы данных db_ssisadmin, db_ssisltduser и db_ssisoperator для управления доступом к пакетам. Роль с правом чтения и правом записи может быть определена для каждого пакета. Можно также определить пользовательские роли уровня базы данных для использования в пакетах служб Integration Services. Роли можно реализовать только в пакетах, сохраненных в базе данных msdb в экземпляре SQL Server. Дополнительные сведения см. в разделе Роли Integration Services (служба Integration Services).

Сохранение пакетов в файловой системе

Если пакеты хранится в файловой системе вместо базы данных msdb, убедитесь в безопасности файлов пакетов и папок, содержащих файлы пакетов.

Управление доступом к файлам, используемым пакетами

Пакеты, настроенные для использования конфигураций, контрольных точек и журналов, создают данные, которые хранятся вне пакетов. Эти данные могут быть конфиденциальными и должны быть защищены. Файлы контрольных точек можно сохранить только в файловой системе, но конфигурации и журналы можно сохранить в файловой системе или в таблицы в базе данных SQL Server. Конфигурации и журналы, сохраненные в SQL Server, подвержены безопасности SQL Server, но информация, записанная в файловую систему, требует дополнительной безопасности.

Дополнительные сведения см. в разделе Доступ к файлам, используемым пакетами.

Безопасное сохранение конфигураций пакетов

Конфигурации пакетов можно сохранить в таблице в базе данных SQL Server или файловой системе.

Конфигурации можно сохранить в любой базе данных SQL Server, а не только в базе данных msdb. Таким образом, можно указать базу данных, которая используется в качестве репозитория для конфигураций пакетов. Можно также указать имя таблицы, содержащей конфигурации, и службы Integration Services автоматически создают таблицу с правильной структурой. Сохранение конфигурации в таблице позволяет обеспечить безопасность на уровне сервера, базы данных и таблиц. Кроме того, конфигурации, сохраненные в SQL Server, автоматически создаются при резервном копировании базы данных.

Если вы храните конфигурации в файловой системе вместо SQL Server, обязательно защитите папки, содержащие файлы конфигурации пакета.

Дополнительные сведения о конфигурациях см. в разделе Package Configurations.

Управление доступом к службе Integration Services

СРЕДА SQL Server Management Studio использует службу SQL Server для перечисления сохраненных пакетов. Чтобы запретить несанкционированным пользователям просматривать сведения о пакетах, хранящихся на локальных и удаленных компьютерах, и таким образом обучать частную информацию, ограничить доступ к компьютерам, работающим под управлением службы SQL Server.

Дополнительные сведения см. в разделе Доступ к службам Integration Services.

Доступ к файлам, используемым пакетами

Уровень защиты пакета не способен защитить файлы, хранимые вне пределов пакета. Эти файлы включают в себя:

  • Файлы конфигурации

  • файлы контрольных точек

  • Файлы журналов

Эти файлы должны быть защищены отдельно, особенно если они содержат конфиденциальные сведения.

Файлы конфигурации

Если у вас есть конфиденциальная информация в конфигурации, например сведения об имени входа и пароле, следует рассмотреть возможность сохранения конфигурации в SQL Server или использовать список управления доступом (ACL), чтобы ограничить доступ к расположению или папке, в которой хранятся файлы, и разрешить доступ только к определенным учетным записям. Обычно предоставляется доступ для тех учетных записей, которым разрешено запускать пакеты, управлять пакетами и разрешать проблемы, связанные с пакетами, в том числе проверять содержимое файла настройки, контрольные точки и файлы журнала. SQL Server предоставляет более безопасное хранилище, так как оно обеспечивает защиту на уровне сервера и базы данных. Чтобы сохранить конфигурации в SQL Server, используйте тип конфигурации SQL Server. Чтобы сохранить в файловую систему, следует использовать тип конфигурации XML.

Дополнительные сведения см. в разделах Конфигурации пакетов, Создание конфигураций пакетови Вопросы безопасности при установке SQL Server.

файлы контрольных точек

Таким же образом, если используемый пакетом файл контрольных точек содержит конфиденциальные сведения, то следует использовать список управления доступом (ACL) для защиты расположения или папки, где хранится этот файл. Файлы контрольных точек сохраняют данные как о текущем состоянии пакета, так и о текущих значениях переменных. Например, пакет может включать в себя пользовательскую переменную, содержащую номер телефона. Дополнительные сведения см. в разделе Restart Packages by Using Checkpoints.

Файлы журнала

Записи журнала, сохраненные в файловой системе, также должны быть защищены с использованием списка управления доступом (ACL). Записи журнала также могут храниться в таблицах SQL Server и защищены безопасностью SQL Server. Записи журнала могут включать конфиденциальную информацию, например, если пакет содержит задачу Execute SQL, которая создает инструкцию SQL, которая ссылается на номер телефона, запись журнала для инструкции SQL включает номер телефона. Инструкция SQL также может раскрыть закрытые данные об именах таблиц и столбцов данных. Дополнительные сведения см. в статье Ведение журналов в службах Integration Services (SSIS).

Доступ к службам Integration Services

Уровни защиты пакетов могут ограничивать круг пользователей, которым разрешается изменять и выполнять пакет. Дополнительная защита необходима, чтобы ограничить, кто может просматривать список пакетов, работающих на сервере, и кто может остановить выполнение пакетов в SQL Server Management Studio.

СРЕДА SQL Server Management Studio использует службу SQL Server для перечисления запущенных пакетов. Члены группы «Администраторы» Windows могут просматривать и останавливать все выполняемые в текущее время пакеты. Пользователи, не являющиеся членами группы «Администраторы», могут просматривать и останавливать только пакеты, запущенные ими самими.

Важно ограничить доступ к компьютерам, выполняющим службу SQL Server, особенно службе SQL Server, которая может перечислять удаленные папки. Любой пользователь, прошедший проверку подлинности, может запрашивать перечисление пакетов. Даже если служба не находит службу, она перечисляет папки. Имена папок могут оказаться полезными сведениями для злоумышленника. Если администратор настроил службу для перечисления папок на удаленном компьютере, пользователи также смогут увидеть имена, которые они в действительности не должны были видеть.

В следующем списке приведены ссылки на разделы, в которых описывается выполнение определенных задач в отношении безопасности.