Общие сведения о базе данных SQL Azure и возможностях безопасности SQL Управляемый экземплярAn overview of Azure SQL Database and SQL Managed Instance security capabilities

ОБЛАСТЬ ПРИМЕНЕНИЯ: даБаза данных SQL Azure даУправляемый экземпляр SQL Azure APPLIES TO: yesAzure SQL Database yesAzure SQL Managed Instance

В этой статье описаны основы защиты уровня данных приложения с помощью базы данных SQL Azure и управляемый экземпляр Azure SQL.This article outlines the basics of securing the data tier of an application using Azure SQL Database and Azure SQL Managed Instance. Эта стратегия безопасности использует многоуровневый подход (эшелонированная защита), который представлен на следующем рисунке (уровни рассматриваются, начиная с наружного):The security strategy described follows the layered defense-in-depth approach as shown in the picture below, and moves from the outside in:

sql-security-layer.png

Безопасность сетиNetwork security

База данных SQL Microsoft Azure и SQL Управляемый экземпляр предоставляют службу реляционных баз данных для облачных и корпоративных приложений.Microsoft Azure SQL Database and SQL Managed Instance provide a relational database service for cloud and enterprise applications. Для защиты данных клиентов брандмауэры предотвращают сетевой доступ к серверу, пока доступ не будет явно предоставлен на основе IP-адреса или источника трафика виртуальной сети Azure.To help protect customer data, firewalls prevent network access to the server until access is explicitly granted based on IP address or Azure Virtual network traffic origin.

Правила брандмауэра для IP-адресовIP firewall rules

Правила брандмауэра для IP-адресов предоставляют доступ к базам данным на основе исходного IP-адреса каждого запроса.IP firewall rules grant access to databases based on the originating IP address of each request. Дополнительные сведения см. в статье Общие сведения о правилах брандмауэра базы данных SQL Azure и Azure синапсе Analytics.For more information, see Overview of Azure SQL Database and Azure Synapse Analytics firewall rules.

Правила брандмауэра для виртуальной сетиVirtual network firewall rules

Конечные точки службы виртуальной сети расширяют возможности подключения к виртуальной сети по магистрали Azure и позволяют базе данных SQL Azure обнаруживать подсеть виртуальной сети, из которой исходит трафик.Virtual network service endpoints extend your virtual network connectivity over the Azure backbone and enable Azure SQL Database to identify the virtual network subnet that traffic originates from. Чтобы трафик поступал в базу данных SQL Azure, используйте теги служб SQL, которые разрешают исходящий трафик через механизм групп безопасности сети.To allow traffic to reach Azure SQL Database, use the SQL service tags to allow outbound traffic through Network Security Groups.

Правила виртуальной сети позволяют базе данных SQL Azure принимать только подключения, отправленные из выбранных подсетей в виртуальной сети.Virtual network rules enable Azure SQL Database to only accept communications that are sent from selected subnets inside a virtual network.

Примечание

Управление доступом с помощью правил брандмауэра не применяется к SQL управляемый экземпляр.Controlling access with firewall rules does not apply to SQL Managed Instance. Дополнительные сведения о необходимой конфигурации сети см. в разделе Подключение к управляемому экземпляру .For more information about the networking configuration needed, see Connecting to a managed instance

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

Важно!

Управление базами данных и серверами в Azure осуществляется путем назначения ролей учетной записи пользователя портала.Managing databases and servers within Azure is controlled by your portal user account's role assignments. Дополнительные сведения об этой статье см. в разделе Управление доступом на основе ролей в портал Azure.For more information on this article, see Role-based access control in the Azure portal.

АутентификацияAuthentication

Аутентификацией называют процесс подтверждения личности пользователя.Authentication is the process of proving the user is who they claim to be. База данных SQL Azure и SQL Управляемый экземпляр поддерживают два типа проверки подлинности:Azure SQL Database and SQL Managed Instance support two types of authentication:

  • Проверка подлинности SQL:SQL authentication:

    Проверка подлинности SQL означает проверку подлинности пользователя при подключении к базе данных SQL Azure или Azure SQL Управляемый экземпляр с использованием имени пользователя и пароля.SQL authentication refers to the authentication of a user when connecting to Azure SQL Database or Azure SQL Managed Instance using username and password. При создании сервера необходимо указать имя для входа администратора сервера с именем пользователя и паролем.A server admin login with a username and password must be specified when the server is being created. Используя эти учетные данные, Администратор сервера может пройти проверку подлинности в любой базе данных на этом сервере или экземпляре в качестве владельца базы данных.Using these credentials, a server admin can authenticate to any database on that server or instance as the database owner. После этого администратор сервера сможет создать дополнительные имена входа и пользователей SQL, чтобы позволить пользователям подключаться с выделенными для них именами пользователей и паролями.After that, additional SQL logins and users can be created by the server admin, which enable users to connect using username and password.

  • Azure Active Directory проверка подлинности:Azure Active Directory authentication:

    Azure Active Directoryная проверка подлинности — это механизм подключения к базе данных SQL Azure, Azure SQL управляемый экземпляр и Azure синапсе Analytics с помощью удостоверений в Azure Active Directory (Azure AD).Azure Active Directory authentication is a mechanism of connecting to Azure SQL Database, Azure SQL Managed Instance and Azure Synapse Analytics by using identities in Azure Active Directory (Azure AD). Аутентификация Azure AD позволяет администраторам централизованно управлять удостоверениями и разрешениями пользователей базы данных вместе с другими службами Azure в одном централизованном расположении.Azure AD authentication allows administrators to centrally manage the identities and permissions of database users along with other Azure services in one central location. Это снижает количество хранимых паролей, а также позволяет применять централизованные политики их смены.This includes the minimization of password storage and enables centralized password rotation policies.

    Чтобы применить для Базы данных SQL аутентификацию Azure AD, необходимо создать администратора сервера, который в этом контексте называется администратором Active Directory.A server admin called the Active Directory administrator must be created to use Azure AD authentication with SQL Database. См. дополнительные сведения об использовании аутентификации Azure Active Directory для аутентификации с помощью SQL.For more information, see Connecting to SQL Database By Using Azure Active Directory Authentication. Аутентификация Azure AD поддерживает как управляемые, так и федеративные учетные записи.Azure AD authentication supports both managed and federated accounts. Федеративные учетные записи применимы для пользователей и групп Windows в пользовательских доменах, для которых настроена федерация с Azure AD.The federated accounts support Windows users and groups for a customer domain federated with Azure AD.

    Кроме того, для аутентификации Azure Active Directory доступны универсальная аутентификация Active Directory для SQL Server Management Studio, которая поддерживает многофакторную проверку подлинности, и условный доступ.Additional Azure AD authentication options available are Active Directory Universal Authentication for SQL Server Management Studio connections including Multi-Factor Authentication and Conditional Access.

Важно!

Управление базами данных и серверами в Azure осуществляется путем назначения ролей учетной записи пользователя портала.Managing databases and servers within Azure is controlled by your portal user account's role assignments. Дополнительные сведения об этом см. в разделе Управление доступом на основе ролей на портале Azure.For more information on this article, see Role-based access control in Azure portal. Управление доступом с помощью правил брандмауэра не применяется к SQL управляемый экземпляр.Controlling access with firewall rules does not apply to SQL Managed Instance. Дополнительные сведения о необходимой конфигурации сети см. в следующей статье о подключении к управляемому экземпляру .Please see the following article on connecting to a managed instance for more information about the networking configuration needed.

АвторизацияAuthorization

Авторизация относится к разрешениям, назначенным пользователю в базе данных SQL Azure или Управляемый экземпляр Azure SQL, и определяет, что разрешено выполнять пользователю.Authorization refers to the permissions assigned to a user within a database in Azure SQL Database or Azure SQL Managed Instance, and determines what the user is allowed to do. Управление разрешениями осуществляется путем добавления учетных записей пользователей в роли базы данных и назначения им разрешений уровня базы данных для этих ролей или предоставления пользователю определенных разрешений на уровне объектов.Permissions are controlled by adding user accounts to database roles and assigning database-level permissions to those roles or by granting the user certain object-level permissions. См. дополнительные сведения об операциях входа и пользователях.For more information, see Logins and users

Рекомендуется создавать пользовательские роли при необходимости.As a best practice, create custom roles when needed. Добавьте пользователей к роли с минимальными привилегиями, необходимыми для работы их функций.Add users to the role with the least privileges required to do their job function. Не назначайте разрешения пользователям напрямую.Do not assign permissions directly to users. Учетная запись администратора сервера является членом встроенной роли db_owner, которая обладает широкими разрешениями и должна предоставляться только некоторым пользователям с административными обязанностями.The server admin account is a member of the built-in db_owner role, which has extensive permissions and should only be granted to few users with administrative duties. Для приложений используйте инструкцию EXECUTE AS , чтобы указать контекст выполнения вызванного модуля или использовать роли приложения с ограниченными разрешениями.For applications, use the EXECUTE AS to specify the execution context of the called module or use Application Roles with limited permissions. Такой подход гарантирует, что приложение, которое подключается к базе данных, имеет минимальные привилегии, необходимые для приложения.This practice ensures that the application that connects to the database has the least privileges needed by the application. Следующие рекомендации также способствуют разделению обязанностей.Following these best practices also fosters separation of duties.

Защита на уровне строкRow-level security

Безопасность на уровне строк позволяет клиентам контролировать доступ к строкам в таблице базы данных в зависимости от характеристик пользователя, выполняющего запрос (например, от членства в группах или контекста выполнения).Row-Level Security enables customers to control access to rows in a database table based on the characteristics of the user executing a query (for example, group membership or execution context). Безопасность на уровне строк также может использоваться для реализации пользовательских концепций безопасности на основе меток.Row-Level Security can also be used to implement custom Label-based security concepts. Дополнительные сведения см. в разделе безопасность на уровне строк.For more information, see Row-Level security.

azure-database-rls.png

Защита от угрозThreat protection

База данных SQL и SQL Управляемый экземпляр безопасность данных клиентов, предоставляя возможности аудита и обнаружения угроз.SQL Database and SQL Managed Instance secure customer data by providing auditing and threat detection capabilities.

Аудит SQL в журналах Azure Monitor и концентраторах событийSQL auditing in Azure Monitor logs and Event Hubs

Аудит базы данных SQL и SQL Управляемый экземпляр отслеживает действия базы данных и помогает поддерживать соответствие стандартам безопасности, записывая события базы данных в журнал аудита в учетной записи хранения Azure, принадлежащей клиенту.SQL Database and SQL Managed Instance auditing tracks database activities and helps maintain compliance with security standards by recording database events to an audit log in a customer-owned Azure storage account. Благодаря аудиту пользователи могут в реальном времени отслеживать действия в базе данных, а также анализировать и изучать действия за прошедшие периоды, чтобы выявить потенциальные угрозы, возможные нарушения и риски безопасности.Auditing allows users to monitor ongoing database activities, as well as analyze and investigate historical activity to identify potential threats or suspected abuse and security violations. Дополнительные сведения см. в статье Приступая к работе с аудитом базы данных SQL.For more information, see Get started with SQL Database Auditing.

Расширенная защита от угрозAdvanced Threat Protection

С помощью расширенной защиты от угроз выполняется анализ журналов, чтобы обнаружить необычное поведение и потенциально опасные попытки доступа к базам данных или их использования.Advanced Threat Protection is analyzing your logs to detect unusual behavior and potentially harmful attempts to access or exploit databases. Оповещения создаются для подозрительных действий, таких как атака путем внедрения кода SQL, потенциальных несанкционированного доступа данных, атак методом подбора или аномалий в шаблонах доступа для перехвата укрупнений привилегий и использования учетных данных.Alerts are created for suspicious activities such as SQL injection, potential data infiltration, and brute force attacks or for anomalies in access patterns to catch privilege escalations and breached credentials use. Оповещения просматриваются из центра безопасности Azure, где указаны сведения о подозрительных действиях, а также рекомендации по устранению угроз для дальнейшего изучения.Alerts are viewed from the Azure Security Center, where the details of the suspicious activities are provided and recommendations for further investigation given along with actions to mitigate the threat. Расширенную защиту от угроз можно включить для каждого сервера за дополнительную плату.Advanced Threat Protection can be enabled per server for an additional fee. Дополнительные сведения см. в статье Приступая к работе с расширенной защитой угроз базы данных SQL.For more information, see Get started with SQL Database Advanced Threat Protection.

azure-database-td.jpg

Защита и шифрование информацииInformation protection and encryption

Безопасность транспортного уровня (шифрование во время передачи)Transport Layer Security (Encryption-in-transit)

База данных SQL и SQL Управляемый экземпляр безопасность данных клиента путем шифрования данных в движении с помощью протокола TLS.SQL Database and SQL Managed Instance secure customer data by encrypting data in motion with Transport Layer Security (TLS).

База данных SQL и SQL Управляемый экземпляр принудительно применяют шифрование (SSL/TLS) для всех подключений.SQL Database and SQL Managed Instance enforce encryption (SSL/TLS) at all times for all connections. Это гарантирует, что все данные шифруются "при передаче" между клиентом и сервером независимо от значения параметра Encrypt или TrustServerCertificate в строке подключения.This ensures all data is encrypted "in transit" between the client and server irrespective of the setting of Encrypt or TrustServerCertificate in the connection string.

Рекомендуется, чтобы в строке подключения, используемой приложением, было указано зашифрованное соединение и сертификат сервера не является доверенным.As a best practice, recommend that in the connection string used by the application, you specify an encrypted connection and not trust the server certificate. Это заставляет приложение проверять сертификат сервера и, таким образом, предотвращает возможность уязвимости приложения для атак типа "злоумышленник в середине".This forces your application to verify the server certificate and thus prevents your application from being vulnerable to man in the middle type attacks.

Например, при использовании драйвера ADO.NET это выполняется с помощью функции Encrypt = true и TrustServerCertificate = false.For example when using the ADO.NET driver this is accomplished via Encrypt=True and TrustServerCertificate=False. Строка подключения, полученная с портала Azure, будет содержать правильные параметры.If you obtain your connection string from the Azure portal, it will have the correct settings.

Важно!

Обратите внимание, что некоторые драйверы сторонних производителей могут не использовать TLS по умолчанию или полагаться на более старую версию TLS (<1,2) для работы.Note that some non-Microsoft drivers may not use TLS by default or rely on an older version of TLS (<1.2) in order to function. В этом случае сервер по-прежнему позволяет подключаться к базе данных.In this case the server still allows you to connect to your database. Однако рекомендуется оценить риски безопасности, позволяющие таким драйверам и приложениям подключаться к базе данных SQL, особенно если вы храните конфиденциальные данные.However, we recommend that you evaluate the security risks of allowing such drivers and application to connect to SQL Database, especially if you store sensitive data.

Дополнительные сведения о TLS и подключении см. в статье рекомендации по TLS .For further information about TLS and connectivity, see TLS considerations

Прозрачное шифрование данных (шифрование при хранении)Transparent Data Encryption (Encryption-at-rest)

Прозрачное шифрование данных (TDE) для базы данных SQL Azure и sql управляемый экземпляр добавляет уровень безопасности, позволяющий защитить недоступные или автономные данные от несанкционированного доступа к необработанным файлам или резервным копиям.Transparent Data Encryption (TDE) for Azure SQL Database and SQL Managed Instance adds a layer of security to help protect data at rest from unauthorized or offline access to raw files or backups. Распространенные сценарии включают в себя кражу центра обработки данных или небезопасное удаление оборудования или носителей, например дисков и лент резервных копий.Common scenarios include data center theft or unsecured disposal of hardware or media such as disk drives and backup tapes.TDE шифрует всю базу данных с помощью алгоритма шифрования AES, который не требует от разработчиков приложений вносить изменения в существующие приложения. TDE encrypts the entire database using an AES encryption algorithm, which doesn't require application developers to make any changes to existing applications.

В Azure все вновь созданные базы данных шифруются по умолчанию, а ключ шифрования базы данных защищен встроенным сертификатом сервера.In Azure, all newly created databases are encrypted by default and the database encryption key is protected by a built-in server certificate. Обслуживание и смена сертификатов управляются службой и не требует от пользователя никаких входных данных.Certificate maintenance and rotation are managed by the service and require no input from the user. Если клиент предпочитает самостоятельно контролировать ключи шифрования, он может управлять ими через Azure Key Vault.Customers who prefer to take control of the encryption keys can manage the keys in Azure Key Vault.

Управление ключами с помощью Azure Key VaultKey management with Azure Key Vault

Поддержка Создание собственных ключей (BYOK) для прозрачное шифрование данных (TDE) позволяет клиентам становиться владельцами управления ключами и вращения с помощью Azure Key Vault, облачной системы управления внешними ключами Azure.Bring Your Own Key (BYOK) support for Transparent Data Encryption (TDE) allows customers to take ownership of key management and rotation using Azure Key Vault, Azure's cloud-based external key management system. В случае отзыва доступа базы данных к хранилищу ключей расшифровка и считывание такой базы данных станет невозможным.If the database's access to the key vault is revoked, a database cannot be decrypted and read into memory. Azure Key Vault предоставляет централизованную платформу для управления ключами, которая использует тщательно отслеживаемые аппаратные модули безопасности (HSM) и позволяет разделять обязанности по управлению ключами и данными, обеспечивая соответствие требованиям безопасности.Azure Key Vault provides a central key management platform, leverages tightly monitored hardware security modules (HSMs), and enables separation of duties between management of keys and data to help meet security compliance requirements.

Always Encrypted (шифрование при использовании)Always Encrypted (Encryption-in-use)

azure-database-ae.png

Функция Always Encrypted разработана для защиты от доступа к конфиденциальным данным, которые хранятся в определенных столбцах базы данных (например, номера кредитных карт или персональные коды, а также данные, доступ к которым предоставляется строго ограниченному кругу лиц).Always Encrypted is a feature designed to protect sensitive data stored in specific database columns from access (for example, credit card numbers, national identification numbers, or data on a need to know basis). Например, администраторы баз данных или другие привилегированные пользователи имеют доступ к базе данных для выполнения задач управления, но с точки зрения бизнеса им не нужен доступ к конкретным данным в зашифрованных столбцах.This includes database administrators or other privileged users who are authorized to access the database to perform management tasks, but have no business need to access the particular data in the encrypted columns. Данные всегда зашифрованы и расшифровываются только для обработки в клиентских приложениях, которые имеют доступ к ключу шифрования.The data is always encrypted, which means the encrypted data is decrypted only for processing by client applications with access to the encryption key. Ключ шифрования никогда не предоставляется для базы данных SQL или SQL Управляемый экземпляр и может храниться либо в хранилище сертификатов Windows , либо в Azure Key Vault.The encryption key is never exposed to SQL Database or SQL Managed Instance and can be stored either in the Windows Certificate Store or in Azure Key Vault.

Динамическое маскирование данныхDynamic data masking

azure-database-ddm.png

Динамическое маскирование данных ограничивает возможность раскрытия конфиденциальных данных за счет маскирования этих данных для непривилегированных пользователей.Dynamic data masking limits sensitive data exposure by masking it to non-privileged users. Динамическое маскирование данных автоматически обнаруживает потенциально конфиденциальные данные в базе данных SQL Azure и Управляемый экземпляр SQL и предоставляет практические рекомендации для маскирования этих полей с минимальным влиянием на уровень приложения.Dynamic data masking automatically discovers potentially sensitive data in Azure SQL Database and SQL Managed Instance and provides actionable recommendations to mask these fields, with minimal impact to the application layer. Эта функция работает по принципу обсфукации, скрывая конфиденциальные данные в результирующем наборе запроса по заданным полям базы данных, не меняя сами данные в базе данных.It works by obfuscating the sensitive data in the result set of a query over designated database fields, while the data in the database is not changed. Дополнительные сведения см. в статьях Приступая к работе с базой данных SQL и sql управляемый экземпляр динамическое Маскирование данных.For more information, see Get started with SQL Database and SQL Managed Instance dynamic data masking.

Управление безопасностьюSecurity management

Оценка уязвимостейVulnerability assessment

Оценка уязвимостей — это легко настраиваемая служба, которая помогает обнаруживать, отслеживать и устранять потенциальные уязвимости, что позволяет предварительно повышать общую защиту базы данных.Vulnerability assessment is an easy to configure service that can discover, track, and help remediate potential database vulnerabilities with the goal to proactively improve overall database security. Оценка уязвимостей является частью расширенного предложения по обеспечению безопасности данных, который является единым пакетом для расширенных возможностей обеспечения безопасности SQL.Vulnerability assessment (VA) is part of the advanced data security offering, which is a unified package for advanced SQL security capabilities. Доступ к оценке уязвимостей и управление ими можно получить с помощью центрального портала расширенной защиты данных SQL.Vulnerability assessment can be accessed and managed via the central SQL Advanced Data Security portal.

Обнаружение и классификация данныхData discovery and classification

Обнаружение и классификация данных (в настоящее время в предварительной версии) предоставляет расширенные возможности, встроенные в базу данных SQL Azure и Управляемый экземпляр SQL, для обнаружения, классификации, добавления меток и защиты конфиденциальных данных в базах данных.Data discovery and classification (currently in preview) provides advanced capabilities built into Azure SQL Database and SQL Managed Instance for discovering, classifying, labeling, and protecting the sensitive data in your databases. Обнаружение и классификация конфиденциальных данных (деловых или финансовых, медицинских, персональных данных и т. д.) может играть ключевую роль в концепции защиты информации вашей организации.Discovering and classifying your utmost sensitive data (business/financial, healthcare, personal data, etc.) can play a pivotal role in your organizational Information protection stature. На основе этих процессов может формироваться инфраструктура для решения следующих задач:It can serve as infrastructure for:

  • Различные сценарии безопасности, такие как мониторинг (аудит) и оповещение об аномальном доступе к конфиденциальным данным.Various security scenarios, such as monitoring (auditing) and alerting on anomalous access to sensitive data.
  • Управление доступом к базам данных, содержащим конфиденциальные данные, и усиление их защиты.Controlling access to, and hardening the security of, databases containing highly sensitive data.
  • Соблюдение стандартов конфиденциальности данных и нормативных требований.Helping meet data privacy standards and regulatory compliance requirements.

Дополнительные сведения см. в статье Приступая к работе с обнаружением и классификацией данных.For more information, see Get started with data discovery and classification.

Соответствие нормативным требованиямCompliance

В дополнение к приведенным выше функциям и возможностям, которые помогают выполнять требования к безопасности приложений, в отношении Базы данных SQL Azure регулярно проводится аудит, а сама база данных сертифицирована в соответствии с рядом стандартов.In addition to the above features and functionality that can help your application meet various security requirements, Azure SQL Database also participates in regular audits, and has been certified against a number of compliance standards. Дополнительные сведения см. в центре управления безопасностью Microsoft Azure , где можно найти самый актуальный список сертификатов соответствия базы данных SQL.For more information, see the Microsoft Azure Trust Center where you can find the most current list of SQL Database compliance certifications.

Дальнейшие шагиNext steps