Compartir a través de


Entidades de servicio para CI/CD

En esta página se describe cómo usar entidades de servicio para CI/CD con Azure Databricks. Una entidad de servicio es una identidad creada para su uso con herramientas automatizadas y aplicaciones, entre las que se incluyen las siguientes:

Como procedimiento recomendado de seguridad, Databricks recomienda usar una entidad de servicio y su token en lugar del usuario de Azure Databricks o el token de acceso personal de Databricks para que el usuario del área de trabajo proporcione acceso a las plataformas de CI/CD a los recursos de Azure Databricks. Entre las ventajas de este enfoque, se encuentran las siguientes:

  • Puede conceder y restringir el acceso a los recursos de Azure Databricks para una entidad de servicio independientemente de un usuario. Por ejemplo, esto le permite prohibir que una entidad de servicio actúe como administrador en el área de trabajo de Azure Databricks, a la vez que permite que otros usuarios específicos del área de trabajo sigan actuando como administradores.
  • Los usuarios pueden evitar que las plataformas de CI/CD accedan a sus tokens de acceso.
  • Puede deshabilitar o eliminar de forma temporal una entidad de servicio sin afectar a otros usuarios. Por ejemplo, esto le permite pausar o quitar el acceso de una entidad de servicio que sospecha que se está usando de forma malintencionada.
  • Si un usuario deja la organización, puede quitar ese usuario sin afectar a ninguna entidad de servicio.

Para proporcionar acceso al área de trabajo de Azure Databricks a una plataforma de CI/CD, haga lo siguiente:

Elija uno de los siguientes mecanismos de autenticación de MS Entra admitidos con una conexión de servicio:

Requisitos

  • El token de OAuth de Azure Databricks o el token de Microsoft Entra ID para una entidad de servicio administrada de Azure Databricks o una entidad de servicio administrada de Microsoft Entra ID. Para crear un principal de servicio administrado de Azure Databricks o un principal de servicio administrado de Microsoft Entra ID, y su token OAuth de Azure Databricks o token de Microsoft Entra ID, consulte Principales de servicio.
  • Una cuenta con el proveedor de Git.

Configurar Acciones de GitHub

Acciones de GitHub deben poder acceder al área de trabajo de Azure Databricks. Si desea usar Azure Databricks Carpetas de Git, el área de trabajo también debe poder acceder a GitHub.

Para permitir que GitHub Actions accedan al área de trabajo de Azure Databricks, debe proporcionar información sobre la entidad de servicio administrada de Azure Databricks o la entidad de servicio administrada de Microsoft Entra ID a GitHub Actions. Esto puede incluir información como el ID de aplicación (cliente), el ID de directorio (inquilino) de una entidad de servicio administrada de Id. de Microsoft Entra, el secreto de cliente de la entidad de servicio administrada de Azure Databricks o de la entidad de servicio administrada de Microsoft Entra, o el access_token valor de una entidad de servicio administrada de Azure Databricks, dependiendo de los requisitos de la acción de GitHub. Para más información, consulte Entidades de servicio y la documentación de la acción de GitHub.

Si también quiere permitir que el área de trabajo de Azure Databricks acceda a GitHub cuando use las carpetas de Git de Azure Databricks, debe agregar el token de acceso personal de GitHub para un usuario de máquina de GitHub al área de trabajo.

Proporcione información sobre su entidad de servicio a GitHub Actions

En esta sección, se describe cómo permitir que Acciones de GitHub acceda al área de trabajo de Azure Databricks.

Como procedimiento recomendado de seguridad, Databricks recomienda que no escriba información sobre la entidad de servicio directamente en el cuerpo de un archivo de Acciones de GitHub. En su lugar, debe proporcionar esta información a Acciones de GitHub mediante secretos cifrados de GitHub.

Acciones de GitHub, como las que Databricks enumera en Acciones de GitHub, dependen de varios secretos cifrados de GitHub, como:

  • DATABRICKS_HOST, que es el valor https:// seguido del nombre de la instancia del área de trabajo; por ejemplo, adb-1234567890123456.7.azuredatabricks.net.
  • AZURE_CREDENTIALS, que es un documento JSON que representa el resultado de ejecutar la CLI de Azure para obtener información sobre un principal de servicio administrado de Microsoft Entra ID. Para más información, consulte la documentación de la acción de GitHub.
  • AZURE_SP_APPLICATION_ID, que es el valor del identificador de aplicación (cliente) para una entidad de servicio administrada de Microsoft Entra ID.
  • AZURE_SP_TENANT_ID, que es el valor del identificador de directorio (inquilino) para una entidad de servicio administrada de Microsoft Entra ID.
  • AZURE_SP_CLIENT_SECRET, que es el Valor del secreto del cliente para un principal del servicio administrado de Microsoft Entra ID.

Para obtener más información sobre qué secretos cifrados de GitHub son necesarios para una acción de GitHub, consulte Entidades de servicio y la documentación de esa acción de GitHub.

Para agregar estos secretos cifrados de GitHub al repositorio de GitHub, consulte Creación de secretos cifrados para un repositorio en la documentación de GitHub. Para conocer otros enfoques para agregar estos secretos del repositorio de GitHub, consulte Secretos cifrados en la documentación de GitHub.

Adición del token de acceso personal de GitHub de un usuario de máquina de GitHub al área de trabajo de Azure Databricks

En esta sección se describe cómo habilitar el área de trabajo de Azure Databricks para acceder a GitHub con Azure Databricks Carpetas de Git. Se trata de una tarea opcional en escenarios de CI/CD.

Como mejor práctica de seguridad, Databricks recomienda usar cuentas de máquina en GitHub en lugar de cuentas personales de GitHub, por las mismas razones por las que debería usar una entidad de servicio en lugar de un usuario de Azure Databricks. Para agregar el token de acceso personal de GitHub de un usuario de máquina de GitHub al área de trabajo de Azure Databricks, haga lo siguiente:

  1. Cree un usuario de máquina de GitHub, si aún no tiene uno disponible. Un usuario de máquina de GitHub es una cuenta personal de GitHub, independiente de su propia cuenta personal de GitHub, que puede usar para automatizar la actividad en GitHub. Cree una nueva cuenta de GitHub independiente para usarla como usuario de máquina de GitHub, si aún no tiene una disponible.

    Nota:

    Al crear una cuenta de GitHub independiente como usuario de máquina de GitHub, no puede asociarla a la dirección de correo electrónico de su propia cuenta personal de GitHub. En su lugar, consulte el administrador de correo electrónico de su organización sobre cómo obtener una dirección de correo electrónico independiente que puede asociar con esta nueva cuenta de GitHub independiente como usuario de la máquina de GitHub.

    Consulte al administrador de cuentas de su organización sobre cómo gestionar la dirección de correo electrónico separada, el usuario de máquina de GitHub asociado, y los tokens de acceso personal de GitHub dentro de su organización.

  2. Proporcione al usuario de la máquina de GitHub acceso al repositorio de GitHub. Consulte Invitación a un equipo o persona en la documentación de GitHub. Para aceptar la invitación, es posible que primero tenga que cerrar sesión en su cuenta personal de GitHub y, a continuación, volver a iniciar sesión como usuario de máquina de GitHub.

  3. Inicie sesión en GitHub como el usuario de máquina y, a continuación, cree un token de acceso personal de GitHub para ese usuario de máquina. Consulte Creación de un token de acceso personal en la documentación de GitHub. Asegúrese de conceder al token de acceso personal de GitHub el permiso repo.

  4. Recoge el token de Microsoft Entra ID para la entidad de servicio, el nombre de usuario de la máquina de GitHub, y luego consulta Uso de una entidad de servicio con carpetas de Git de Databricks.

Configuración de Azure Pipelines

Azure Pipelines debe poder acceder al área de trabajo de Azure Databricks. Si también quiere usar Azure Databricks Carpetas de Git, el área de trabajo debe poder acceder a Azure Pipelines.

Los archivos de canalización YAML de Azure Pipelines dependen de variables de entorno para acceder al área de trabajo de Azure Databricks. Estas variables de entorno incluyen las siguientes:

  • DATABRICKS_HOST, que es el valor https:// seguido del nombre de la instancia del área de trabajo; por ejemplo, adb-1234567890123456.7.azuredatabricks.net.
  • DATABRICKS_TOKEN, que es el valor del valor de token_value que copió después de crear el token de Microsoft Entra ID para la entidad de servicio administrada de Id. de Microsoft Entra.

Para agregar estas variables de entorno a la canalización de Azure, consulte Uso de secretos de Azure Key Value en Azure Pipelines y Establecimiento de variables secretas en la documentación de Azure.

Consulte también el siguiente blog de Databricks:

Opcional para escenarios de CI/CD: si el área de trabajo usa Azure Databricks Carpetas de Git, y quiere permitir que el área de trabajo acceda a Azure Pipelines, recopile:

  • Token de Microsoft Entra ID para la entidad de servicio
  • Su nombre de usuario de Azure Pipelines

Después, consulta Uso de una entidad de servicio con carpetas de Git de Databricks.

Configuración de CI/CD de GitLab

CI/CD de GitLab debe poder acceder al área de trabajo de Azure Databricks. Si también desea usar Azure Databricks repositorios de Git, su área de trabajo debe tener acceso a CI/CD de GitLab.

Para acceder al área de trabajo de Azure Databricks, los archivos .gitlab-ci.yml de CI/CD de GitLab, como el que forma parte de la plantilla básica de Python en dbx, se basan en variables de CI/CD personalizadas, como las siguientes:

  • DATABRICKS_HOST, que es el valor https:// seguido del nombre de la instancia del área de trabajo; por ejemplo, adb-1234567890123456.7.azuredatabricks.net.
  • DATABRICKS_TOKEN, que es el valor del valor token_value que ha copiado después de crear el token de Microsoft Entra ID para la entidad de servicio.

Para agregar estas variables personalizadas al proyecto de CI/CD de GitLab, consulte Add a CI/CD variable to a project (Incorporación de una variable de CI/CD a un proyecto) en la documentación de CI/CD de GitLab.

Si el área de trabajo usa Databricks Carpetas de Git, y quiere habilitar el área de trabajo para acceder a CI/CD de GitLab, recopile:

  • Token de Microsoft Entra ID para la entidad de servicio
  • Su nombre de usuario de CI/CD de GitLab

Después, consulta Uso de una entidad de servicio con carpetas de Git de Databricks.