Share via


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 STG1 que el área de trabajo usará de forma predeterminada.
Inquilino de Active Directory contoso Nombre del inquilino de Active Directory.

Paso 1: Configuración de los grupos de seguridad

Nota

Durante la versión preliminar, se incentivó la creación de grupos de seguridad y su asignación a los roles de Administrador de Synapse SQL y Administrador de Apache Spark de Synapse de Azure Synapse. Ahora, tras la introducción de nuevos ámbitos y roles RBAC de Synapse más precisos, el nuevo procedimiento recomendable consiste en el uso de estas nuevas funcionalidades para controlar el acceso al área de trabajo. Estas le proporcionarán una mayor flexibilidad de configuración y, además, tienen en cuenta el hecho de que los desarrolladores suelen usar una combinación de SQL y Spark para crear aplicaciones de análisis. Por lo tanto, los desarrolladores pueden necesitar acceso a ciertos recursos individuales en lugar de a toda 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:

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 llama container1.

  • 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

    Add role assignment page in Azure portal.

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".

  • Abra WS1 en Synapse Studio.

  • En 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.

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 elemento container1.

  • 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.

    Add role assignment page in Azure portal.

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
    Asignar acceso a SERVICEPRINCIPAL
    Miembros workspace1_SynapseAdministrators

    Add role assignment page in Azure portal.

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:

  1. Para conceder a ciertos usuarios acceso a un grupo de SQL sin servidor ("integrado") y sus bases de datos.

  2. 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.

  3. 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.

  4. Para conceder acceso a un grupo de SQL sin servidor ("integrado"), cualquier miembro del grupo workspace1_SQLAdmins o workspace1_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:

  1. 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;
    
  2. 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];
    
  3. 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:

  1. 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
    
  2. 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.

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 grupos de seguridad adicionales 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 adicionales 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.

Pasos siguientes