Procedimientos recomendados para proteger bases de datos PaaS en AzureBest practices for securing PaaS databases in Azure

En este artículo se presenta una colección de procedimientos recomendados de seguridad de Azure SQL Database y SQL Data Warehouse para proteger las aplicaciones web y móviles de plataforma como servicio (PaaS).In this article, we discuss a collection of Azure SQL Database and SQL Data Warehouse security best practices for securing your platform-as-a-service (PaaS) web and mobile applications. Estos procedimientos recomendados proceden de nuestra experiencia con Azure y las experiencias de clientes como usted.These best practices are derived from our experience with Azure and the experiences of customers like yourself.

Azure SQL Database y SQL Data Warehouse proporcionan un servicio de base de datos relacional para aplicaciones basadas en Internet.Azure SQL Database and SQL Data Warehouse provide a relational database service for your internet-based applications. Se van a considerar los servicios que ayudan a proteger las aplicaciones y los datos al utilizar Azure SQL Database y SQL Data Warehouse en una implementación de PaaS:Let’s look at services that help protect your applications and data when using Azure SQL Database and SQL Data Warehouse in a PaaS deployment:

  • Autenticación de Azure Active Directory (en lugar de la autenticación de SQL Server)Azure Active Directory authentication (instead of SQL Server authentication)
  • Firewall de Azure SQLAzure SQL firewall
  • Cifrado de datos transparente (TDE)Transparent Data Encryption (TDE)

Usar un repositorio centralizado de identidadesUse a centralized identity repository

Azure SQL Database puede configurarse para usar uno de los dos tipos de autenticación:Azure SQL Database can be configured to use one of two types of authentication:

  • Autenticación de SQL usa un nombre de usuario y una contraseña.SQL authentication uses a username and password. Al crear el servidor de la base de datos, especificó un inicio de sesión de "administrador de servidor" con un nombre de usuario y una contraseña.When you created the server for your database, you specified a "server admin" login with a username and password. Con estas credenciales, puede autenticarse en cualquier base de datos en ese servidor como propietario de la base de datos.Using these credentials, you can authenticate to any database on that server as the database owner.

  • Autenticación de Azure Active Directory usa las identidades administradas por Azure Active Directory y es compatible con dominios administrados e integrados.Azure Active Directory authentication uses identities managed by Azure Active Directory and is supported for managed and integrated domains. Para usar la autenticación de Azure Active Directory, debe crear otro administrador de servidor llamado "administrador de Azure AD" con permiso para administrar usuarios y grupos de Azure AD.To use Azure Active Directory Authentication, you must create another server admin called the "Azure AD admin," which is allowed to administer Azure AD users and groups. Este administrador también puede realizar todas las operaciones de un administrador de servidor normal.This admin can also perform all operations that a regular server admin can.

La autenticación de Azure Active Directory es un mecanismo de conexión a Azure SQL Database y SQL Data Warehouse mediante identidades de Azure Active Directory (AD).Azure Active Directory authentication is a mechanism of connecting to Azure SQL Database and SQL Data Warehouse by using identities in Azure Active Directory (AD). Azure AD proporciona una alternativa a la autenticación de SQL Server, por lo que puede detener la proliferación de identidades de usuario entre los servidores de base de datos.Azure AD provides an alternative to SQL Server authentication so you can stop the proliferation of user identities across database servers. La autenticación de Azure AD permite administrar centralmente las identidades de los usuarios de la base de datos y otros servicios de Microsoft en una ubicación central.Azure AD authentication enables you to centrally manage the identities of database users and other Microsoft services in one central location. La administración de identificadores central ofrece una ubicación única para administrar usuarios de base de datos y simplifica la administración de permisos.Central ID management provides a single place to manage database users and simplifies permission management.

Ventajas de usar la autenticación de Azure AD en lugar de la autenticación de SQLBenefits of using Azure AD instead of SQL authentication

  • Permite la rotación de contraseñas en un solo lugar.Allows password rotation in a single place.
  • Administra los permisos de la base de datos con grupos externos de Azure AD.Manages database permissions using external Azure AD groups.
  • Elimina el almacenamiento de contraseñas mediante la habilitación de la autenticación integrada de Windows y otras formas de autenticación compatibles con Azure AD.Eliminates storing passwords by enabling integrated Windows authentication and other forms of authentication supported by Azure AD.
  • Usa usuarios de base de datos independiente para autenticar las identidades en el nivel de base de datos.Uses contained database users to authenticate identities at the database level.
  • Admite la autenticación basada en token para las aplicaciones que se conectan a SQL Database.Supports token-based authentication for applications connecting to SQL Database.
  • Admite la federación de dominios con Servicios de federación de Active Directory (ADFS) o la autenticación nativa de usuario y contraseña para una instancia de Azure Active Directory local sin sincronización de dominios.Supports domain federation with Active Directory Federation Services (ADFS) or native user/password authentication for a local Azure AD without domain synchronization.
  • Admite conexiones de SQL Server Management Studio que usan la autenticación universal de Active Directory, lo cual incluye Multi-Factor Authentication (MFA).Supports connections from SQL Server Management Studio that use Active Directory Universal Authentication, which includes Multi-Factor Authentication (MFA). MFA incluye una sólida autenticación con una gama de sencillas opciones de comprobación: llamada de teléfono, mensaje de texto, tarjetas inteligentes con PIN o notificación de aplicación móvil.MFA includes strong authentication with a range of easy verification options — phone call, text message, smart cards with pin, or mobile app notification. Para más información, vea Autenticación universal con SQL Database y SQL Data Warehouse (compatibilidad de SSMS con MFA).For more information, see Universal Authentication with SQL Database and SQL Data Warehouse.

Para obtener más información sobre la autenticación de Azure AD, vea:To learn more about Azure AD authentication, see:

Nota

Para asegurarse de que Azure Active Directory sea una buena elección para su entorno, vea Características y limitaciones de Azure AD.To ensure that Azure Active Directory is a good fit for your environment, see Azure AD features and limitations.

Restricción de acceso según la dirección IPRestrict access based on IP address

Puede crear reglas de firewall que especifiquen intervalos de direcciones IP aceptables.You can create firewall rules that specify ranges of acceptable IP addresses. Estas reglas pueden orientarse a los niveles de servidor y de base de datos.These rules can be targeted at both the server and database levels. Se recomienda usar reglas de firewall de nivel de base de datos siempre que sea posible a fin de mejorar la seguridad y aumentar la portabilidad de la base de datos.We recommend using database-level firewall rules whenever possible to enhance security and to make your database more portable. Las reglas de firewall de nivel de servidor son más eficaces para administradores y cuando tenga muchas bases de datos con los mismos requisitos de acceso y no quiera dedicar tiempo a configurar cada una de ellas por separado.Server-level firewall rules are best used for administrators and when you have many databases that have the same access requirements but you don't want to spend time configuring each database individually.

Las restricciones de direcciones IP de origen predeterminadas de SQL Database permiten acceder desde cualquier dirección de Azure (incluidas otras suscripciones y otros inquilinos).SQL Database default source IP address restrictions allow access from any Azure address, including other subscriptions and tenants. Puede restringir esto para permitir que solo sus direcciones IP accedan a la instancia.You can restrict this to only allow your IP addresses to access the instance. A pesar de las restricciones de direcciones IP y del firewall de SQL, también se necesita una autenticación sólida.Even with your SQL firewall and IP address restrictions, strong authentication is still needed. Vea las recomendaciones que se han realizado anteriormente en este artículo.See the recommendations made earlier in this article.

Para obtener más información sobre las restricciones de IP y el firewall de Azure SQL, vea:To learn more about Azure SQL Firewall and IP restrictions, see:

Cifrado de datos en reposoEncrypt data at rest

Cifrado de datos transparente (TDE) está habilitado de forma predeterminada.Transparent Data Encryption (TDE) is enabled by default. TDE cifra de forma transparente los archivos de datos y de registro de SQL Server, Azure SQL Database y Azure SQL Data Warehouse.TDE transparently encrypts SQL Server, Azure SQL Database, and Azure SQL Data Warehouse data and log files. TDE protege contra un posible peligro de acceso directo a los archivos o las copias de seguridad.TDE protects against a compromise of direct access to the files or their backup. Esto le permite cifrar los datos en reposo sin cambiar las aplicaciones existentes.This enables you to encrypt data at rest without changing existing applications. TDE siempre debería permanecer habilitado, si bien esto no impedirá que un atacante use la ruta de acceso normal.TDE should always stay enabled; however, this will not stop an attacker using the normal access path. TDE ofrece la posibilidad de cumplir muchas leyes, normativas y directrices establecidas en diversos sectores.TDE provides the ability to comply with many laws, regulations, and guidelines established in various industries.

Azure SQL administra los problemas relacionados con las claves para TDE.Azure SQL manages key related issues for TDE. Al igual que con TDE, debe tener especial cuidado en el entorno local para garantizar la capacidad de recuperación y al mover las bases de datos.As with TDE, on-premises special care must be taken to ensure recoverability and when moving databases. En escenarios más complejos, las claves se pueden administrar explícitamente en Azure Key Vault mediante la administración extensible de claves.In more sophisticated scenarios, the keys can be explicitly managed in Azure Key Vault through extensible key management. Vea Habilitar TDE en SQL Server con EKM.See Enable TDE on SQL Server Using EKM. Esto también permite la funcionalidad Bring Your Own Key (BYOK), que incorpora Azure Key Vault.This also allows for Bring Your Own Key (BYOK) through Azure Key Vaults BYOK capability.

Azure SQL ofrece cifrado de columnas mediante Always Encrypted.Azure SQL provides encryption for columns through Always Encrypted. Esta funcionalidad permite que solo las aplicaciones autorizadas accedan a las columnas confidenciales.This allows only authorized applications access to sensitive columns. Mediante este tipo de cifrado, se limitan las consultas SQL en las columnas cifradas a valores basados en la igualdad.Using this kind of encryption limits SQL queries for encrypted columns to equality-based values.

También debe usarse el cifrado a nivel de aplicación para datos selectivos.Application level encryption should also be used for selective data. Las cuestiones sobre la soberanía de los datos se pueden mitigar en ocasiones mediante el cifrado de datos con una clave que se mantiene en el país o región correctos.Data sovereignty concerns can sometimes be mitigated by encrypting data with a key that is kept in the correct country/region. Esto impide incluso que las transferencias de datos accidentales causen algún error, ya que resultará imposible descifrar los datos sin la clave, suponiendo que se emplee un algoritmo seguro (como AES 256).This prevents even accidental data transfer from causing an issue since it is impossible to decrypt the data without the key, assuming a strong algorithm is used (such as AES 256).

Puede tomar precauciones adicionales con las que proteger aún más la base de datos, como diseñar un sistema seguro, cifrar los recursos confidenciales e instalar un firewall alrededor de los servidores de base de datos.You can use additional precautions to help secure the database, such as designing a secure system, encrypting confidential assets, and building a firewall around the database servers.

Pasos siguientesNext steps

En este artículo se presenta una colección de procedimientos recomendados de seguridad de SQL Database y SQL Data Warehouse para proteger las aplicaciones web y móviles PaaS.This article introduced you to a collection of SQL Database and SQL Data Warehouse security best practices for securing your PaaS web and mobile applications. Para obtener más información sobre cómo proteger las implementaciones de PaaS, vea:To learn more about securing your PaaS deployments, see: