Compartir a través de


Uso de una entidad de servicio de Microsoft Entra para autenticar el acceso a las carpetas de Git de Azure Databricks

Aprenda a configurar el acceso autenticado a las carpetas de Git de Azure Databricks hospedadas por Azure DevOps (Azure Repos) con una entidad de servicio de Microsoft Entra.

Si tiene carpetas de Git de Databricks en el proyecto de Databricks respaldado por repositorios Git de Azure Repos y quiere administrarlos en la automatización, puede usar la información de este artículo para configurar la autenticación mediante una entidad de servicio de Microsoft Entra y Azure DevOps. Una vez completada esta tarea, tendrá una credencial de Git autenticada de Databricks que puede usar en la automatización.

¿Por qué usar Microsoft Entra y no PAT?

En el pasado, los tokens de acceso personal (PAT) eran la manera preferida de autenticarse al llamar a una API que requiere acceso y permisos específicos para los recursos. Estos tokens de portador representan un nombre de usuario y una contraseña, y requieren rotación regular para minimizar el riesgo de seguridad que presentan. Los tokens de acceso de Microsoft Entra ID abordan este problema mediante la administración automática de la rotación de estos tokens cada hora y Databricks los recomienda como procedimiento recomendado al trabajar con recursos de Azure. Al crear una entidad de servicio de Microsoft Entra, puede administrar los permisos concedidos para acceder a estos recursos sin usar una cuenta de usuario de Microsoft Azure.

Requisitos

Debe disponer de lo siguiente:

  • Acceso a un proyecto de Azure DevOps con un repositorio Git de Azure Repos conectado a una carpeta de Git de Databricks.
  • Permisos en la cuenta de Azure para crear una entidad de servicio de MS Entra.
  • La CLI de Azure instalada.
  • La CLI de Databricks instalada.

Paso 1: Crear una entidad de servicio de Microsoft Entra

Puede omitir este paso si ya tiene una entidad de servicio de Microsoft Entra configurada.

Para crear una entidad de servicio de Microsoft Entra, siga los pasos descritos en la documentación de Microsoft Azure: Registrar una aplicación de Microsoft Entra y crear una entidad de servicio. En la sección “Configurar autenticación” de este artículo, omita las dos primeras opciones y siga los pasos de la “opción 3: Crear un nuevo secreto de cliente.”

Después de configurarlo, tendrá lo siguiente:

  • Un secreto de cliente. Se presentará como una cadena larga de caracteres de aparición aleatoria.
    • Un identificador de entidad de servicio. Este es el nombre único que asignó a la entidad de servicio de MS Entra. Como procedimiento recomendado, el nombre también debe indicar cómo y cuándo se debe usar (por ejemplo, Databricks_CICD_SP).

(Puede omitir la interfaz de usuario de redirección opcional en el cuadro de diálogo de configuración de MS Entra, ya que no se usará en esta configuración).

Cópielos en algún lugar, ya que los usará en pasos futuros. Una vez que haya completado correctamente el proceso en esta documentación, proteja o elimine esta información.

Paso 2: Configuración de permisos de Azure DevOps para la entidad de servicio de MS Entra

En primer lugar, debe conceder permiso a la entidad de servicio de MS Entra para acceder a los recursos de Azure DevOps. Para ello, debe usar el portal de Azure DevOps.

  1. Inicie sesión en su cuenta de Azure DevOps y vaya al proyecto.

  2. En Configuración del proyecto>Permisos, haga clic en Lectores.

    Contenido del panel Miembros en Permisos en la configuración del proyecto de Azure DevOps

  3. Haga clic en la pestaña Miembros, haga clic en Agregar, y agregue el nombre de la entidad de servicio MS Entra que creó.

  4. En la consola, vuelva al nivel de organización de la organización de Azure DevOps y haga clic en Configuración de la organización en la parte inferior del panel izquierdo.

  5. Haga clic en Usuarios>Agregar usuario y, a continuación, configure el acceso para la entidad de servicio de la siguiente manera:

    • Agregue la entidad de servicio de MS Entra mediante el identificador que creó anteriormente.
    • Configure el acceso de la entidad de servicio al nivel mínimo que necesita para realizar operaciones en Azure Repos. Normalmente, permisos de nivel Básico son suficientes. Si no está seguro de qué nivel usar, póngase en contacto con el administrador de la organización de Azure DevOps.
    • Agregue la entidad de servicio al proyecto de Azure DevOps.
    • Asigne la entidad de servicio al grupo de Colaboradores del proyecto.

    Contenido del panel Usuarios en la configuración de la organización de Azure DevOps

Paso 3: Asignación de permisos a la entidad de servicio en Azure Databricks

También debe asignar permisos dentro de Azure Databricks a la entidad de servicio de Microsoft Entra.

  1. Inicie sesión en la consola de administración de cuentas de Azure Databricks de la cuenta.
  2. Haga clic en Usuarios y grupos.
  3. Haga clic en la pestaña Entidades de servicio y, a continuación, haga clic en Agregar entidad de servicio. La pestaña Entidades de servicio en Usuarios y grupos en la consola de administración de la cuenta de Databricks
  4. En la página Agregar entidad de servicio, haga clic en Microsoft Entra ID administrado, y agregue el identificador de aplicación de Microsoft Entra y el nombre de la entidad de servicio del “Paso 1: Crear una entidad de servicio de Microsoft Entra.” Haga clic en Agregar cuando haya terminado. El cuadro de diálogo Agregar entidad de servicio en la consola de administración de la cuenta de Databricks
  5. Haga clic en la entidad de servicio de Microsoft Entra agregado para ver la pestaña Información de la entidad de seguridad.
  6. Haga clic en Generar secreto en el lado inferior izquierdo de la página para generar un secreto de OAuth. Este secreto le permite autenticar llamadas API de Azure Databricks mediante la CLI de Databricks.
  7. Copie la cadena secreta y el identificador de cliente y haga clic en Listo. Usará ambos en el paso siguiente. Seleccione Listo. Cuadro de diálogo Generar secreto en la consola de administración de la cuenta de Databricks
  8. En la barra lateral izquierda, haga clic en Áreas de trabajo, elija el área de trabajo y, a continuación, haga clic en la pestaña Permisos.
  9. Conceda permisos de “Usuario” a la entidad de servicio y haga clic en Agregar permisos.

Importante

Si la pestaña Permisos está atenuada, el área de trabajo de Azure Databricks no se asigna a un metastore de Unity Catalog. Póngase en contacto con el administrador de Databricks.

A continuación, creará la credencial de Git de Azure Databricks.

Paso 4: Cree un token de acceso de Microsoft Entra ID y almacénelo como una credencial de Git de Azure Databricks.

Nota:

Este paso requiere el uso de las CLIs de Azure y Databricks.

Para autenticarse en Azure Databricks, debe tener un perfil de configuración (.databrickscfg) configurado con el secreto de OAuth que creó en el paso anterior. Para configurar esta configuración, abra el archivo .databrickscfg en el editor y agregue lo siguiente al archivo:

[DEFAULT]
host = https://<workspace-url>.azuredatabricks.net/
client_id = <service principal ID>
client_secret = <Databricks OAuth token value>

Donde host es la dirección URL del área de trabajo de Databricks, client_id es el identificador de entidad de servicio de Microsoft Entra y client_secret es el secreto de cliente de OAuth que creó en el “Paso 3: Asignar permisos a la entidad de servicio en Azure Databricks.”

Ahora debería tener los siguientes valores para proporcionar a las llamadas de la CLI en este proceso:

  • El identificador de cliente de la entidad de servicio de los pasos 1 o 3: deben ser los mismos. (sp_id en los siguientes ejemplos de la CLI.)
  • Nombre de entidad de seguridad de servicio del paso 1. (sp_name)
  • Cadena de secreto de cliente de la entidad de servicio del paso 1. (sp_secret)
  • Nombre de la organización de Azure DevOps. (devops_org)
  • Nombre del proyecto de Azure DevOps. (devops_project)
  • El nombre del repositorio de Azure Repos. (devops_repo)

Además, necesita el identificador de inquilino de Azure (tenant_id en los ejemplos siguientes) para la suscripción de Azure. Siga estas instrucciones para obtenerlas desde Azure Portal.

Ahora, puede crear una credencial de Git desde la CLI de Azure.

  1. Abra una ventana de línea de comandos con acceso a las CLIs de Azure y Databricks.
  2. Ejecute el siguiente comando de la CLI de Azure para iniciar sesión como entidad de servicio de Microsoft Entra: az login --allow-no-subscriptions --service-principal -u $sp_id -p $sp_secret --tenant $tenant_id
  3. Como entidad de servicio de Microsoft Entra, solicite un token de acceso de Microsoft Entra ID y asígnelo a una variable: ENTRA_ID_TOKEN=$(az account get-access-token --resource "499b84ac-1321-427f-aa17-267ca6975798" --query "accessToken" --output tsv)
  4. Use el token de acceso para crear una credencial de Git para el acceso a Azure Databricks mediante los niveles de permisos que configuró para él: databricks git-credentials create azureDevOpsServices --personal-access-token $ENTRA_ID_TOKEN --git-username $sp_name
  5. Por último, cree una nueva carpeta de Git mediante la entidad de servicio de Microsoft Entra: databricks repos create \https://$sp_name@dev.azure.com/$devops_org/$devops_project/_git/$devops_repo

La carpeta Git correspondiente para este repositorio de Azure DevOps ya está disponible en el área de trabajo de Azure Databricks. Puede proporcionar la credencial de Git para administrarla desde el código mediante las API de REST de Databricks Repos o la CLI de Databricks.

Ahora ha aprendido a generar un token de acceso de Microsoft Entra ID con ámbito a Azure DevOps y almacenarlo como una credencial de Git de Databricks.

procedimientos recomendados

El token de acceso de Entra ID es de corta duración, por lo que la canalización debe actualizar la credencial de Git de Databricks mediante git-credentials update. A continuación, puede desencadenar una solicitud de incorporación de cambios mediante databricks repos update.

Importante

Se requieren medidas de seguridad adicionales en una configuración de producción. En un entorno de producción, debe almacenar el secreto de cliente de la entidad de servicio y el token de OAuth de Databricks en un almacén de secretos seguro, como Azure Key Vault.

Consulte también