Conexión a SQL Azure sin secretos
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.