Saltar al contenido principal

Conexión a SQL Azure sin secretos

· 2 min de lectura
David Sanchez
David Sanchez

En este post te mostraré cómo conectarte a SQL Azure sin usar secretos, usando Azure Active Directory.

Introducción

Con GitHub Advanced Security, puedes escanear tu código en busca de secretos y vulnerabilidades en tu base de código e historial de git usando Análisis secreto o incluso ir un paso más allá y usar Protección push para evitar que se introduzcan secretos en su repositorio. Esta es una gran característica, pero no es suficiente. Necesitas proteger tus secretos, y necesitas rotarlos. En este post te mostraré cómo conectarte a SQL Azure sin usar secretos, usando Azure Active Directory. Esto se aplica a los usuarios, las identidades administradas y las entidades de servicio.

Habilitación de la autenticación de Azure Active Directory en SQL Azure

En primer lugar, debemos asegurarnos de que la autenticación de Azure Active Directory esté habilitada en SQL Azure.

Agregar usuarios a SQL Azure y asignar permisos

Para ello, debemos conectarnos al servidor de SQL Azure mediante SSMS y ejecutar la siguiente consulta que crea un usuario a partir de una cuenta de Azure Active Directory y le asigna el rol db_datareader. Puede obtener más información sobre el Roles SQL aquí.

CREATE USER [<user@AAD-tenant-domain>] FROM EXTERNAL PROVIDER;
ALTER ROLE db_datareader ADD MEMBER [<user@AAD-tenant-domain>];

Ejemplo:

Nota: Puede hacerlo en el nivel de servidor o en el nivel de base de datos. Si lo hace a nivel de servidor, el usuario tendrá acceso a todas las bases de datos del servidor. Si lo hace a nivel de base de datos, el usuario solo tendrá acceso a esa base de datos.

Como se mencionó, también puede usar identidades administradas y entidades de servicio. Este es un ejemplo de cómo se ve cuando se usa una identidad administrada:

CREATE USER [name-of-the-object] FROM EXTERNAL PROVIDER;
ALTER ROLE db_datareader ADD MEMBER [name-of-the-object];

Ejemplo:

Conexión a SQL Azure mediante Azure Active Directory

Ahora que tenemos habilitada la autenticación de Azure Active Directory en SQL Azure y hemos agregado usuarios y permisos asignados, podemos conectarnos a SQL Azure mediante Azure Active Directory.

La cadena connectiong tiene este aspecto:

Server=tcp:<my-sql-server>.database.windows.net,1433;Initial Catalog=<my-database>;Authentication="Active Directory Integrated";

Conclusión

Las conexiones a SQL Azure ahora son más seguras y sin usar secretos mediante Azure Active Directory.

Referencias