SQL Azure: Seguridad de SQL Azure
La seguridad es igual de esencial para las soluciones hospedadas, aunque las herramientas y las tácticas son ciertamente diferentes.
Joshua Hoffman
La informática en nube recientemente se ha convertido en algo fundamental para la naturaleza de la infraestructura de la TI. Mientras, por una parte, la informática in-situ ciertamente conserva un rol importante, por otra parte las soluciones hospedadas ganan prominencia gracias a su escalabilidad, elasticidad y ahorro en costos, algo vital para las organizaciones ágiles. Esto es particularmente cierto en lo relacionado a administración de datos.
SQL Azure es un buen ejemplo de tal plataforma de nube. SQL Azure es una infraestructura eficaz y familiar para almacenar, administrar y analizar datos. También posee los beneficios de la informática en nube. La infraestructura compartida y hospedada ayuda a reducir tanto los costos directos como los indirectos, el modelo de pago por uso ayuda a alcanzar una mayor eficiencia y posee de forma integrada una alta disponibilidad y tolerancia a errores.
Pese a los numerosos beneficios de la informática en nube, la migración de datos a una solución basada en la nube como SQL Azure presenta cambios en la manera que se enfocan los conceptos de administración de TI, tales como la seguridad. El modelo de seguridad puede ser distinto, pero existen varios factores a considerar para asegurarse de la seguridad de los datos, lo que incluye métodos de control de acceso, autenticación y cifrado.
Introducción a SQL Azure
Si no está familiarizado con SQL Azure, empezar a usarlo es sencillo. Especialmente si ya está familiarizado con las herramientas de administración de SQL Server tradicionales, como SQL Server Management Studio (que, a partir de la versión de SQL Server 2008 R2, se puede usar para administrar instancias de SQL Azure).
El primer paso es crear una cuenta para la plataforma Windows Azure al visitar el Portal de clientes de Online Services de Microsoft. Esto permite acceso a los servicios de Windows Azure incluidos Windows Azure, SQL Azure y Windows Azure AppFabric (lo que proporciona un medio para que los desarrolladores conecten aplicaciones y servicios entre límites organizativos y de red).
Una vez que haya establecido una cuenta, puede tener acceso al panel de control de SQL Azure sql.azure.com. Haga clic en Nuevo servidor de base de datos para crear una nueva instancia de SQL Azure.
Control de acceso de red
Para proteger sus datos, el Firewall de SQL Azure previene todo el acceso a sus bases de datos hasta que otorgue acceso a PC específicos. El acceso mediante el Firewall de SQL Azure se basa en originar direcciones IP. Puede administrar esto mediante el Portal de administración de plataforma de Windows Azure (ver la figura 1) o directamente en la base de datos maestra con los procedimientos almacenados.
Configure las reglas del firewall de SQL Azure siguiendo estos pasos:
- Inicie sesión en el Portal de administración de plataforma de Windows Azure.
- En el panel izquierdo, haga clic en Base de datos.
- En el panel izquierdo, expanda su suscripción y haga clic en el servidor de SQL Azure con el que quiere configurar las reglas del firewall.
- Haga clic en Reglas del firewall para indicar las reglas.
- Haga clic en Agregar para crear una nueva regla del firewall. Para permitir que otros servicios de Windows obtengan acceso a este servidor de SQL Azure, seleccione “Permitir que otros servicios de Windows Azure obtengan acceso a este servidor”. Esto crea una regla dentro del intervalo de IP “0.0.0.0 – 0.0.0.0”. Puede usar este mismo proceso para actualizar y eliminar reglas.
Nota: Cada regla del firewall debe tener un nombre único (el cual no distingue mayúsculas de minúsculas).
Figura 1 Configuración de una regla de firewall en SQL Azure.
Para obtener más detalles acerca de la configuración de las reglas de firewall mediante procedimientos almacenados en SQL, consulte Cambiar las reglas de firewall mediante T-SQL.
El servicio de SQL Azure está disponible en el puerto TCP 1433. Dependiendo de sus directivas de firewall existentes, puede que necesite también configurar sus PC clientes para permitir acceso entrante al puerto. Ver Configuración del firewall de lado del cliente.
Autenticación SQL
El método de autenticación de SQL Azure está basado en autenticación tradicional de SQL Server. No es compatible con autenticación de Windows (seguridad integrada). Debe proporcionar credenciales cada vez que se conecte a SQL Azure.
Al crear un nuevo servidor de base de datos en SQL Azure, obtiene una promoción que le permite crear un id. de acceso y contraseña principales. Esto es equivalente a la cuenta de administrador de sistema de SQL Server. Puede crear id. de acceso adicionales usando T-SQL, ya sea mediante el Administrador de base de datos de SQL Azure o SQL Server Manager Studio 2008 R2.
Cree y anule id. de acceso mediante la base de datos maestra, usando el comando CREATE LOGIN. Por ejemplo, conéctese a su base de datos maestra usando el Administrador de base de datos para SQL Azure o SQL Server Manager Studio y ejecute la siguiente consulta:
--create a login named "testlogin"
CREATE LOGIN testlogin WITH password='Passw0rd!';
Puede consultar por id. de acceso existentes usando el comando que se indica en la figura 2.
Figura 2 Consulta por id. de acceso de SQL Server mediante el Administrador de base de datos para SQL Azure.
Una vez que se cree sus id. de acceso, puede crear usuarios a nivel de base de datos asociados a tales id. de acceso y asignar permisos específicos a nivel de base de datos para cada usuario. Para crear un usuario para una base de datos específica, conéctese a la base de datos adecuada y ejecute el siguiente comando:
CREATE USER testuser FROM LOGIN testlogin;
Puede asignar permisos usando el siguiente comando:
EXEC sp_addrolemember 'db_datareader', 'testuser';
Para una lista completa de roles, revise Roles a nivel de base de datos. Observe que, al ejecutar las declaraciones CREATE/ALTER/DROP LOGIN o CREATE/ALTER/DROP USER (con la opción FOR/FROM LOGIN), cada una de esas declaraciones pueden ser la única en un lote de T-SQL. De otra manera, ocurrirán errores.
Cifrado de conexión
SQL Azure transfiere datos usando flujo TDS en una conexión SSL. SQL Azure no es compatible con conexiones no cifradas y tiene un certificado firmado emitido por una autoridad certificada. Esos factores ayudan a asegurar una transmisión segura de datos y pueden evitar ataques de tipo “man in the middle”.
El protocolo de enlace del cifrado ocurre en el flujo PRELOGIN del protocolo TDS. Cualquier cliente que se comunique con SQL Azure necesitará esto, incluyendo SQL Server Management Studio y aplicaciones mediante ADO.NET.
Para cifrar conexiones de SQL Server Management Studio, use los siguientes pasos:
- Abra SQL Server Management Studio.
- Desde el explorador de objetos, haga clic en Conectar y después haga clic en Motor de base de datos.
- En Conectar a servidor, haga clic en Propiedades de conexión.
- Seleccione Cifrar conexión (ver la figura 3).
Figura 3 Cifrar una conexión a SQL Azure en SQL Server Management Studio.
Para validar certificados con el código de aplicación ADO.NET, establezca Encrypt=True y TrustServerCertificate=False en la cadena de conexión a la base de datos.
Cifrado de datos
SQL Azure no es compatible actualmente con los mecanismos de cifrado de datos con los que SQL Server es compatible. Estos incluyen cifrado de datos transparente, claves asimétricas, claves simétricas y funciones Transact-SQL como ENCRYPTBYPASSPHRASE y DECRYPTBYPASSPHRASE, CREATE/ALTER/DROP DATABASE ENCRYPTION KEY o CREATE/ALTER/DROP MASTER KEY.
Con SQL Azure, es necesario hacer cifrado o descifrado a nivel de aplicación. En otras palabras, su aplicación es responsable del cifrado y del descifrado de datos al enviar o recibir datos de SQL Azure.
A medida que inicie el hospedaje de ciertas aplicaciones y datos en la nube, debe ser consciente de la seguridad de sus datos. Debe seguir involucrándose en la arquitectura de seguridad basada en la nube. La necesidad de seguridad es un asunto permanente; tan solo hay un cambio en las técnicas de seguridad en la plataforma de informática en nube. Para obtener recursos adicionales sobre este asunto, asegúrese de ver el artículo Instrucciones y limitaciones de seguridad de SQL Azure.
Al seguir los procedimientos recomendadas para administración de cuentas y de conexión, puede asegurarse de obtener los mejores beneficios de migrar sus datos a la nube. No necesita tranzar el bienestar y la seguridad de su información vital de negocios.
Joshua Hoffmanes el ex editor en jefe de TechNet Magazine*. Actualmente es un autor y consultor independiente; brinda asesoría a clientes sobre tecnología y marketing orientado a públicos objetivos. Hoffman también trabaja como editor en jefe de ResearchAccess.com, un sitio dedicado a hacer crecer y enriquecer la comunidad de investigación de mercado. Reside en Nueva York.*