Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo, se describen los pasos a seguir para controlar el acceso a un área de trabajo de Microsoft Azure Synapse. Para lograrlo, usaremos una combinación de roles de Azure, roles Azure Synapse, permisos de SQL y permisos de GIT.
Al seguir los pasos de esta guía, configurará un área de trabajo y un sistema de control de acceso básico. Esta información puede usarse en muchos tipos de proyectos de Synapse. Asimismo, encontrará algunas opciones más avanzadas que le permitirán realizar un control más preciso si fuera necesario.
El control de acceso de Synapse puede simplificarse mediante el uso de grupos de seguridad que estén alineados con los roles y los perfiles de la organización. Esto le permite administrar el acceso a los grupos de seguridad de forma sencilla, mediante la adición y eliminación de usuarios.
Antes de comenzar esta guía, lee la visión general del control de acceso al espacio de trabajo de Azure Synapse para familiarizarte con los mecanismos de control de acceso utilizados por Synapse Analytics.
Mecanismos de control de acceso
Nota
El método que se usa en esta guía consiste en crear grupos de seguridad. Si asigna roles a estos grupos de seguridad, solo tendrá que administrar la pertenencia a esos grupos para controlar el acceso a las áreas de trabajo.
Para proteger un área de trabajo de Synapse, deberá configurar los siguientes elementos:
- Grupos de seguridad, para agrupar usuarios con requisitos de acceso similares.
- Roles de Azure, para controlar quién puede crear y administrar grupos SQL, grupos de Apache Spark y entornos de ejecución de integración, y acceder al almacenamiento de ADLS Gen2.
- Roles de Synapse, para controlar el acceso a los artefactos de código publicados, el uso de recursos de proceso de Apache Spark y los entornos de ejecución de integración.
- Permisos de SQL, para controlar el acceso administrativo y del plano de datos a los pools de SQL.
- Permisos de GIT, para controlar quién puede acceder a los artefactos de código en el control de versiones si se configura la compatibilidad con GIT en las áreas de trabajo.
Pasos para proteger un área de trabajo de Synapse
En este documento se usan nombres estándar para simplificar las instrucciones. Reemplácelos por nombres de su elección.
| Configuración | Nombre estándar | Description |
|---|---|---|
| Área de trabajo de Synapse | workspace1 |
Nombre que tendrá el área de trabajo de Azure Synapse. |
| Cuenta de ADLSGEN2 | storage1 |
Cuenta de ADLS que se usará con el área de trabajo. |
| Contenedor | container1 |
Contenedor en storage1 que el área de trabajo usará de forma predeterminada. |
| Inquilino de Microsoft Entra ID | contoso |
El nombre del tenant de Microsoft Entra ID. |
| Entidad de servicio | SERVICEPRINCIPAL |
Una entidad de servicio en su inquilino de Microsoft Entra ID. |
Paso 1: Configura los grupos de seguridad
Sugerencia
Utiliza opciones granulares para controlar el acceso a tu espacio de trabajo. Concede a los desarrolladores acceso a recursos individuales, en lugar de a un espacio de trabajo completo. Para más información sobre Synapse RBAC, consulte ¿Qué es el control de acceso basado en roles (RBAC) de Synapse?
Cree los siguientes grupos de seguridad para su área de trabajo:
-
workspace1_SynapseAdministrators, para usuarios que necesiten un control completo del área de trabajo. Agréguese a usted mismo a este grupo de seguridad, al menos inicialmente. -
workspace1_SynapseContributors, para desarrolladores que necesiten desarrollar, depurar y publicar código en un servicio. -
workspace1_SynapseComputeOperators, para los usuarios que necesitan administrar y supervisar los grupos de Apache Spark y los entornos de ejecución de integración. -
workspace1_SynapseCredentialUsers, para los usuarios que necesitan depurar y ejecutar canalizaciones de orquestación mediante credenciales de MSI (identidad del servicio administrada) del área de trabajo y cancelar las ejecuciones de canalización.
En breve, asignará roles de Synapse a estos grupos en el ámbito del área de trabajo.
Cree también este grupo de seguridad:
-
workspace1_SQLAdmins, grupo para los usuarios que necesitan autoridad de administrador de Active Directory de SQL en los grupos de SQL del área de trabajo.
El grupo workspace1_SQLAdmins, que se usará para configurar los permisos de SQL al crear grupos de SQL.
Estos 5 grupos son suficientes para llevar a cabo una configuración básica. Más adelante, podrá agregar grupos de seguridad que le ayudarán a gestionar los usuarios que necesiten un acceso más especializado o a restringir el acceso únicamente a recursos concretos.
Nota
- Obtenga información sobre cómo crear un grupo de seguridad en este artículo: Creación de un grupo básico e incorporación de miembros con Microsoft Entra ID.
- Vea cómo agregar un grupo de seguridad desde otro grupo de seguridad en este artículo: Agregar o quitar un grupo de otro grupo mediante Microsoft Entra ID.
- Al crear un grupo de seguridad, asegúrese de que el tipo de grupo sea Seguridad. Los grupos de Microsoft 365 no se admiten para Azure SQL.
Sugerencia
Los usuarios individuales de Synapse pueden usar Microsoft Entra ID en Azure Portal para ver los grupos a los que pertenecen. Esto les permitirá determinar qué roles se les han concedido.
Paso 2: Prepare la cuenta de almacenamiento de ADLS Gen2
En las áreas de trabajo de Synapse se usan contenedores de almacenamiento predeterminados para los siguientes fines:
- Almacenamiento de los archivos de datos subyacentes para las tablas de Spark
- Los registros de ejecución de los trabajos de Spark
- Administración de las bibliotecas que decida instalar
Identifique la siguiente información sobre su almacenamiento:
Cuenta de ADLS Gen2 que usará para el área de trabajo. En este documento, se llama
storage1.storage1se considera la cuenta de almacenamiento "principal" del área de trabajo.Contenedor dentro de
storage1que el área de trabajo de Synapse usará de forma predeterminada. En este documento, se llamacontainer1.Seleccione Access control (IAM).
Seleccione Agregar>Agregar asignación de roles para abrir la página Agregar asignación de roles.
Asigne el siguiente rol. Para acceder a los pasos detallados, consulte Asignación de roles de Azure mediante Azure Portal.
Configuración Valor Rol Colaborador de datos de Storage Blob Asignar acceso a SERVICEPRINCIPALMiembros workspace1_SynapseAdministrators, workspace1_SynapseContributors y workspace1_SynapseComputeOperators
Paso 3: Creación y configuración del área de trabajo de Synapse
En Azure Portal, cree un área de trabajo de Synapse de la siguiente manera:
Seleccione su suscripción
Seleccione o cree un grupo de recursos en el que posea el rol Propietario de Azure.
Asigne el nombre
workspace1al área de trabajo.Seleccione
storage1para la cuenta de almacenamiento.Elija
container1para el contenedor que se usará como "sistema de archivos".Abrir
workspace1en Synapse StudioEn Synapse Studio, vaya a Administrar>Control de acceso. En la sección ámbito del workspace, asigne roles de Synapse a los grupos de seguridad de la siguiente manera:
- Asigne el rol Administrador de Synapse en
workspace1_SynapseAdministrators. - Asigne el rol Colaborador de Synapse a
workspace1_SynapseContributors. - Asigne el rol Operador de proceso de Synapse a
workspace1_SynapseComputeOperators.
- Asigne el rol Administrador de Synapse en
Paso 4: Concesión de acceso al MSI del área de trabajo al contenedor de almacenamiento predeterminado
Para ejecutar canalizaciones y realizar tareas del sistema, Azure Synapse necesita que la identidad de servicio administrada tenga acceso a container1 en la cuenta predeterminada de ADLS Gen2 del área de trabajo. Para más información, consulte Identidades gestionadas para Azure Synapse Analytics.
Abra Azure Portal
Busque la cuenta de almacenamiento,
storage1, y luegocontainer1.Seleccione Access control (IAM).
Para abrir la página Agregar asignación de roles, seleccione Agregar>Agregar asignación de roles.
Asigne el siguiente rol. Para acceder a los pasos detallados, consulte Asignación de roles de Azure mediante Azure Portal.
Configuración Valor Rol Colaborador de datos de Storage Blob Asignar acceso a MANAGEDIDENTITY Miembros Nombre de la identidad administrada Nota
El nombre de la identidad administrada también es el nombre del área de trabajo.
Paso 5: Concesión del rol Colaborador de Azure a los administradores de Synapse en el área de trabajo
Para crear grupos SQL, grupos de Apache Spark y entornos de ejecución de integración, los usuarios necesitan como mínimo un rol de colaborador de Azure para el área de trabajo. El rol Colaborador también permite que estos usuarios administren los recursos, incluyendo pausar y escalar. Para utilizar Azure Portal o Synapse Studio para crear grupos SQL, grupos de Apache Spark y entornos de ejecución de integración, necesita un rol de colaborador en el nivel del grupo de recursos.
Abra Azure Portal
Busque el área de trabajo
workspace1.Seleccione Access control (IAM).
Para abrir la página Agregar asignación de roles, seleccione Agregar>Agregar asignación de roles.
Asigne el siguiente rol. Para acceder a los pasos detallados, consulte Asignación de roles de Azure mediante Azure Portal.
Configuración Valor Rol Colaborador (enumerado en «Roles de administrador con privilegios») Asignar acceso a SERVICEPRINCIPALMiembros workspace1_SynapseAdministrators
Paso 6: Asignar un rol de administrador SQL Microsoft Entra ID
Al creador del área de trabajo se le asigna automáticamente como Administrador de SQL Active Directory de esa área de trabajo. Este rol solo se puede conceder a un solo usuario o grupo. Este paso consistirá en la asignación del rol Administrador de SQL Active Directory del área de trabajo al grupo de seguridad workspace1_SQLAdmins. De esta manera, le proporcionará a este grupo un acceso de administrador con privilegios elevados para todas las bases de datos y grupos de SQL del el área de trabajo.
- Abra Azure Portal
- Ir a
workspace1 - En Configuración, seleccione Microsoft Entra ID
- Seleccione Establecer administrador y elija
workspace1_SQLAdmins.
Nota
El paso 6 es opcional. Puede optar por conceder al grupo workspace1_SQLAdmins un rol menos privilegiado. Para asignar db_owner u otros roles SQL, debe ejecutar scripts en cada base de datos SQL.
Paso 7: Concesión de acceso a grupos de SQL
De forma predeterminada, el administrador de Synapse también tendrá el rol de SQL db_owner para los grupos de SQL sin servidor del área de trabajo.
El acceso a los pools de SQL por parte de otros usuarios se controla mediante permisos de SQL. Para asignar permisos de SQL, es necesario que se ejecuten ciertos scripts de SQL tras la creación de cada base de datos SQL. A continuación se muestran ejemplos en los que es necesario ejecutar estos scripts:
Para conceder a los usuarios acceso al grupo de SQL sin servidor, "Built-in" y sus bases de datos.
Para conceder a ciertos usuarios acceso a las bases de datos dedicadas de grupos de SQL. Encontrará scripts de ejemplo de SQL en una sección posterior de este artículo.
Para conceder acceso a la base de datos dedicada de un grupo de SQL, el creador del área de trabajo o cualquier miembro del grupo
workspace1_SynapseAdministratorspuede ejecutar los scripts correspondientes.Para conceder acceso a un grupo de SQL sin servidor ("integrado"), cualquier miembro del grupo
workspace1_SQLAdminsoworkspace1_SynapseAdministratorspuede ejecutar los scripts correspondientes.
Sugerencia
Puede conceder acceso a todas las bases de datos de SQL si sigue los siguientes pasos en cada grupo de SQL. La sección Configurar permisos con ámbito de área de trabajo supone una excepción a la regla, ya que te permite asignar a un usuario el rol de sysadmin en el nivel del área de trabajo.
Paso 7a: Grupo de SQL sin servidor, integrado
Puede usar los ejemplos de script que encontrará en esta sección para conceder a los usuarios permisos de acceso a una base de datos individual o a todas las bases de datos de un grupo de SQL sin servidor (Built-in).
Nota
En los ejemplos de script que se proporcionan a continuación, reemplace el valor alias por el alias del usuario o grupo al que se le concede acceso. Reemplace domain por el dominio de la empresa que va a usar.
Configurar permisos con ámbito de base de datos
Si sigue los pasos que se describen en el siguiente ejemplo, podrá conceder a los usuarios acceso a una sola base de datos SQL sin servidor:
Cree un inicio de sesión. Cambie al contexto de base de datos
master.--In the master database CREATE LOGIN [alias@domain.com] FROM EXTERNAL PROVIDER;Cree un usuario en la base de datos. Cambie el contexto a la base de datos.
-- In your database CREATE USER alias FROM LOGIN [alias@domain.com];Agregue el usuario como miembro del rol especificado en la base de datos (en este caso, el rol db_owner).
ALTER ROLE db_owner ADD member alias; -- Type USER name from step 2
Configuración de permisos de acceso en el ámbito de un área de trabajo
También es posible conceder acceso completo a todos los grupos de SQL sin servidor de un área de trabajo. Para ello, ejecute el script que se incluye en el siguiente ejemplo en la base de datos master:
CREATE LOGIN [alias@domain.com] FROM EXTERNAL PROVIDER;
ALTER SERVER ROLE sysadmin ADD MEMBER [alias@domain.com];
Paso 7b: Configuración de grupos de SQL dedicados
Es posible conceder acceso a una sola base de datos dedicada correspondiente a un pool de SQL. Para ello, complete los siguientes pasos en el editor de scripts de Azure Synapse SQL:
Cree un usuario en la base de datos mediante la ejecución de los siguientes comandos. Seleccione la base de datos de destino en la lista desplegable Conectar con:
--Create user in the database CREATE USER [<alias@domain.com>] FROM EXTERNAL PROVIDER; -- For Service Principals you would need just the display name and @domain.com is not requiredConceda al usuario un rol para acceder a la base de datos:
--Grant role to the user in the database EXEC sp_addrolemember 'db_owner', '<alias@domain.com>';
Importante
Los roles de base de datos db_datareader y de db_datawriter pueden proporcionar permisos de lectura y escritura en los escenarios en los que no desee conceder permisos de db_owner. Sin embargo, el permiso db_owner es necesario para que los usuarios de Spark lean y escriban directamente desde Spark en o desde un pool SQL.
Tras el proceso de creación de los usuarios, puede ejecutar consultas para confirmar que los grupos de SQL sin servidor pueden consultar cuentas de almacenamiento.
Paso 8: Adición de usuarios a grupos de seguridad
A estas alturas, la configuración inicial del sistema de control de acceso ya está completa.
Puede agregar usuarios a los grupos de seguridad que configuró, así como quitarlos, para administrar su acceso a estos. Puede asignar manualmente a usuarios a los roles de Azure Synapse, pero esto establecerá los permisos de forma incoherente. En su lugar, solo tiene que agregar o quitar usuarios de los grupos de seguridad.
Paso 9: Seguridad de redes
Como último paso para asegurar tu espacio de trabajo, asegura el acceso a la red utilizando el cortafuegos del espacio de trabajo.
- Con y sin una red virtual administrada, se puede conectar al área de trabajo desde redes públicas. Para obtener más información, consulte Azure Synapse Analytics configuración de conectividad.
- Controla el acceso desde redes públicas activando la función de acceso a red pública o el cortafuegos del espacio de trabajo.
- Alternativamente, conéctate a tu espacio de trabajo usando un endpoint privado gestionado y Azure Private Link para Azure Synapse Analytics. Las áreas de trabajo de Azure Synapse que no utilicen la red virtual administrada de Azure Synapse Analytics no pueden conectarse a través de puntos de conexión privados administrados.
Paso 10: Finalización
El área de trabajo ahora está completamente configurada y protegida.
Compatibilidad con escenarios más avanzados
Esta guía se centra en la configuración de un sistema de control de acceso básico. Para admitir escenarios más avanzados, puede crear otros grupos de seguridad y asignarles roles más precisos en ámbitos más específicos. Considere los casos siguientes:
Habilite la compatibilidad con GIT para el área de trabajo a fin de obtener escenarios de desarrollo más avanzados, como CI/CD. En el modo GIT, los permisos de GIT y RBAC de Synapse determinarán si un usuario puede hacer commit de los cambios en su rama de trabajo. La publicación en el servicio solo tiene lugar desde la rama de colaboración. Considere la posibilidad de crear un grupo de seguridad para los desarrolladores que necesitan desarrollar y depurar las actualizaciones en una rama de trabajo, pero que no necesitan publicar los cambios en el servicio en directo.
Restrinja el acceso de los desarrolladores a recursos específicos. Cree otros grupos de seguridad más precisos para los desarrolladores que solo necesitan acceder a recursos específicos. Asigne a estos grupos los roles de Azure Synapse adecuados que tengan como ámbito pools de Spark específicos, entornos de ejecución de integración o credenciales.
Restrinja a los operadores el acceso a los artefactos de código. Cree grupos de seguridad para los operadores que deban supervisar el estado operativo de los recursos de proceso de Synapse y ver los registros, pero que no necesitan acceder al código ni publicar actualizaciones en el servicio. Asigne a estos grupos el rol Compute Operator en el ámbito de pools de Spark y de entornos de ejecución de integración específicos.
Deshabilitar la autenticación local. Al permitir solo la autenticación de Microsoft Entra, puede administrar de forma centralizada el acceso a los recursos de Azure Synapse, como grupos de SQL. La autenticación local de todos los recursos dentro del área de trabajo se puede deshabilitar durante la creación del área de trabajo o después de esta. Para obtener más información sobre la autenticación solo de Microsoft Entra, consulte Deshabilitación de la autenticación local en Azure Synapse Analytics.