Service Principal vs Managed Identities, parte 3

Continuamos y finalizamos hoy con esta serie de post sobre service principals y managed identities.

Hoy vamos con un SQL y en esta ocasión creamos una identidad «User assigned managed identity«.

Lo primero es crear una identidad a nuestro gusto. Con el nombre que nos indican las políticas de nomenclatura de la empresa, por supuesto.

La localizamos en «Enterprise applications» como la identidad administrada por el sistema.

La vamos a añadir en nuestro servidor de SQL.

Confirmamos con los siguientes datos:

No olvidemos guardar los cambios establecidos:

Nos vamos al KeyVault y vamos a dejar el acceso por políticas. Quiero mostraros una opción que tiene SQL cuando habilitamos el cifrado:

Seleccionamos la clave:

Vemos que nos ha dado permisos en el KeyVault de forma desatendida para ese «sql.userassigned». Nos gusta que nos hagan las cosas solas, nos hace la vida más fácil 😉

Ahora mismo tenemos un SQL cifrado con una identidad administrada de tipo usuario. En la que podemos dar el nombre a nuestro gusto pero a cambio nos pide algo de responsabilidad adicional.

Vamos a liarla… 😈

Ahora mismo nuestro SQL server sigue con la configuración del cifrado. Para poder funcionar tiene que poder «hablar» con el KeyVault. Pero sin esta identidad el Azure SQL va por su lado y el Key Vault va por otro, se han peleado y ya no hablan 😢

¿Qué sucede?

Vamos a intentar crear una BBDD.

No me está dejando dar de alta el SQL ya que le es posible configurar el cifrado.

Vamos a solventar el problema. Quitamos «el resto» de la identidad del usuario (la referencia a esa cuenta).

Ahora habilitamos la de «System assigned»:

Asignamos la key:

Vemos que en el KeyVault tenemos la identidad administrada por el sistema que representa al servidor de SQL y otro ID que representa la de tipo usuario (que fue borrada ¡sin piedad!).

Ya nos permite dar de alta una BBDD:

Hay que tener en cuenta que esta funcionalidad está en Preview y que seguramente acaben añadiendo algún mecanismo para controlar estos «borrados accidentales» que podrían dejarnos sin servicio la base de datos de SQL. No obstante, mientras llega, avisados quedáis.

Y poco más por ahora. Acabamos esta serie de post en las que hemso visto los service principals y las managed identities. Espero que con las demos os animeis a hacer vuestras PoC para interiorizar lo aprendido.

Nos vemos en los siguientes artículos.