Procedimiento para configurar el control de acceso para el área de trabajo de Azure Synapse
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, se describirán 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 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 a seguir este tutorial, lea la Información general sobre el control de acceso de Azure Synapse para familiarizarse con los mecanismos de control de acceso que usa 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 las pertenencias 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 de 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 grupos de SQL.
- Permisos de GIT, para controlar quién puede acceder a los artefactos de código mediante las características de control de código fuente 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 los nombres de su preferencia.
Configuración | Nombre estándar | Descripción |
---|---|---|
Á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 de inquilino de Microsoft Entra ID. |
Entidad de servicio | SERVICEPRINCIPAL |
Una entidad de servicio en el inquilino de Microsoft Entra ID. |
Paso 1: Configuración de los grupos de seguridad
Sugerencia
Se recomienda usar opciones granulares para controlar el acceso al área de trabajo, concediendo a los desarrolladores acceso a recursos individuales, en lugar de a todo un área de trabajo. Más información acerca de RBAC de Synapse.
Cree los siguientes grupos de seguridad para su área de trabajo:
workspace1_SynapseAdministrators
, que se asignará a los 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
, que se asignará a los desarrolladores que necesiten llevar a cabo procesos de desarrollo, depuración y publicación de 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
, que se asignará a los usuarios que necesiten depurar y ejecutar canalizaciones de orquestación mediante el uso de credenciales de identidad de servicio administrada del área de trabajo, así como cancelar 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
, que constituye un grupo que se asignará a los usuarios que necesiten autoridad como administrador de SQL Active Directory 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 administrar a los usuarios que necesiten un acceso más especializado o para solo proporcionar acceso a recursos específicos.
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.
- Obtenga información sobre cómo agregar un grupo de seguridad desde otro en este artículo: Incorporación o eliminación de un grupo de otro grupo con 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 sus pertenencias a grupos. 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 de copia de seguridad 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
.storage1
se considera la cuenta de almacenamiento "principal" del área de trabajo.Contenedor dentro de
storage1
que 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 asignar roles, consulte Asignación de roles de Azure mediante Azure Portal.
Configuración Valor Role Colaborador de datos de blobs de almacenamiento Asignar acceso a SERVICEPRINCIPAL
Miembros 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
workspace1
al área de trabajo.Seleccione
storage1
en la cuenta de almacenamiento.Elija
container1
para el contenedor que se usará como "sistema de archivos".Apertura de
workspace1
en Synapse StudioEn Synapse Studio, vaya a Administrar>Access Control. En la sección ámbito del área de trabajo, 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 en
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 al elemento container1
de la cuenta predeterminada de ADLS Gen2 en esa área de trabajo. Para obtener más información, vea Identidad administrada del área de trabajo de Azure Synapse.
Abra Azure Portal.
Busque la cuenta de almacenamiento denominada
storage1
. Después, ubique el elementocontainer1
.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 asignar roles, consulte Asignación de roles de Azure mediante Azure Portal.
Configuración Valor Role Colaborador de datos de blobs de almacenamiento 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 de SQL, grupos de Apache Spark y entornos de ejecución de integración, los usuarios deberán tener asignado, como mínimo, el rol Colaborador de Azure en el área de trabajo. El rol Colaborador también permite que estos usuarios administren los recursos, incluidos los procesos de pausa y escalado. Para crear grupos de SQL, grupos de Apache Spark y entornos de ejecución de integración mediante Azure Portal o Synapse Studio, necesitará que se le asigne el rol Colaborador de Azure en el nivel de 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 asignar roles, consulte Asignación de roles de Azure mediante Azure Portal.
Configuración Valor Role Colaborador (enumerado en "Roles de administrador con privilegios") Asignar acceso a SERVICEPRINCIPAL
Miembros workspace1_SynapseAdministrators
Paso 6: Asignación del rol Administrador de SQL Active Directory
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 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.
- Vaya 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 con menos privilegios. Para asignar db_owner
u otros roles de 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 grupos 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 ciertos usuarios acceso a un grupo de SQL sin servidor ("integrado") 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_SynapseAdministrators
puede ejecutar los scripts correspondientes.Para conceder acceso a un grupo de SQL sin servidor ("integrado"), cualquier miembro del grupo
workspace1_SQLAdmins
oworkspace1_SynapseAdministrators
puede 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 Configuración de permisos de acceso en el ámbito de un área de trabajo supone una excepción a la regla, ya que en ella se muestra cómo asignar el rol sysadmin a un usuario 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 concederá el acceso. Asimismo, reemplace el valor domain por el dominio de empresa que va a usar.
Configuración de permisos de acceso en el ámbito de una 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 grupo 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 a:
--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 required
Conceda 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 db_owner. No obstante, para que los usuarios de Spark puedan realizar operaciones de lectura y escritura directamente desde Spark en un grupo de SQL o desde este, será necesario que se les asigne el permiso db_owner.
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, ya ha completado la configuración inicial del sistema de control de acceso.
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 paso final para proteger el área de trabajo, debe proteger el acceso a la red mediante el firewall de área 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, vea Configuración de conectividad.
- El acceso desde las redes públicas se puede controlar al habilitar la característica de acceso de red pública o el firewall de área de trabajo.
- Como alternativa, puede conectarse al área de trabajo mediante un punto de conexión privado y un vínculo privado. Las áreas de trabajo de Azure Synapse sin la Red virtual administrada de Azure Synapse Analytics no tienen la capacidad de conectarse por medio 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 confirmar 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 desarrollador 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 grupos de Spark específicos, entornos de ejecución de Integration o credenciales.
Restrinja el acceso a los artefactos de código a los operadores. 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 Operador de proceso en el ámbito de grupos de Spark y de entornos de ejecución de integración específicos.
Deshabilite 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.