Share via


Entidades de servicio para CI/CD

En este artículo 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:

  1. Cree una entidad de servicio administrada de Azure Databricks o de Microsoft Entra ID.
  2. Genere un token de OAuth de Azure Databricks o un token de Microsoft Entra ID para la entidad de servicio administrada de Azure Databricks o una entidad de servicio administrada de Microsoft Entra ID, en función de los tipos de token de acceso que admita la plataforma de CI/CD. Para más información, consulte la documentación de la plataforma de CI/CD.
  3. Asigne este token de OAuth de Azure Databricks o el token de Microsoft Entra ID a la plataforma de CI/CD.

Para completar los pasos 1 a 2, vea Administración de entidades de servicio.

Para completar el paso 3, complete las instrucciones de este artículo.

Opcionalmente, si también quiere usar el área de trabajo de Azure Databricks con Azure Databricks Carpetas de Git en un escenario de plataforma de CI/CD, consulte Incorporación de credenciales del proveedor de Git a un área de trabajo de Azure Databricks. Por ejemplo, es posible que quiera que el proveedor de Git acceda al área de trabajo y también quiera usar las carpetas de Git de Azure Databricks en el área de trabajo con el proveedor de Git. Sin embargo, no es necesario usar carpetas de Git de Azure Databricks para poder usar el área de trabajo con plataformas de CI/CD.

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 una entidad de servicio administrada de Azure Databricks o una entidad de servicio administrada de Microsoft Entra ID y su token de OAuth de Azure Databricks o un token de Microsoft Entra ID, consulte Administración de entidades de servicio.
  • Una cuenta con el proveedor de Git.

Configuración de Acciones de GitHub

Acciones de GitHub debe 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 Acciones de GitHub 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 Acciones de GitHub. Esto puede incluir información como el identificador de aplicación (cliente), el identificador de directorio (inquilino) de una entidad de servicio administrada de Microsoft Entra ID, la entidad de servicio administrada de Azure Databricks o el secreto de cliente de la entidad de servicio administrada de Microsoft Entra ID, o el valor access_token de una entidad de servicio administrada de Azure Databricks, según los requisitos de la acción de GitHub. Para obtener más información, consulte Administración de entidades de servicio y la documentación de Acción de GitHub.

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

Proporcionar información sobre la entidad de servicio a Acciones de GitHub

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.

Las Acciones de GitHub, como las que Databricks enumera en Integración y entrega continuas mediante Acciones de GitHub, se basan en 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 la salida de la ejecución de la CLI de Azure para obtener información sobre una entidad de servicio administrada 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 Valor del secreto de cliente para una entidad de servicio administrada 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 Administración de 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 procedimiento recomendado de seguridad, Databricks recomienda usar usuarios de máquinas de GitHub en lugar de cuentas personales de GitHub, por muchas de las mismas razones por las que debe 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 con el administrador de correo electrónico de su organización sobre cómo obtener una dirección de correo electrónico independiente que pueda asociar con esta nueva cuenta de GitHub como usuario de máquina de GitHub.

    Consulte con el administrador de cuentas de la organización sobre cómo administrar la dirección de correo electrónico independiente, su usuario de máquina de GitHub asociado y sus tokens de acceso personal de GitHub dentro de la 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 acceso al repositorio al token de acceso personal de GitHub.

  4. Recopile el token de Microsoft Entra ID para la entidad de servicio, el nombre de usuario de la máquina de GitHub y después Agregar credenciales de proveedor de Git a un área de trabajo de Azure 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 token_value que copió después de crear el token de Microsoft Entra ID para la entidad de servicio administrada de Microsoft Entra ID.

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

A continuación, Incorporación de credenciales de proveedor de Git a un área de trabajo de Azure 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 quiere usar Azure Databricks Carpetas de Git, el área de trabajo debe poder acceder 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

A continuación, incorpore credenciales de proveedor de Git a un área de trabajo de Azure Databricks.

Incorporación de credenciales de proveedor de Git a un á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 un proveedor de Git para Azure Databricks Carpetas de Git. Esto es opcional en escenarios de CI/CD. Por ejemplo, es posible que solo quiera que el proveedor de Git acceda al área de trabajo de Azure Databricks, pero no quiere usar también carpetas de Git de Azure Databricks en el área de trabajo con el proveedor de Git. Si este es el caso, omita esta sección.

Antes de comenzar, reúna la siguiente información y herramientas:

  • Token de Microsoft Entra ID para la entidad de servicio.
  • El nombre de usuario asociado al proveedor de Git.
  • El token de acceso asociado al usuario para el proveedor de Git.

Nota:

Para Azure Pipelines, consulte Uso de tokens de acceso personal en el sitio web de Azure.

  • Versión 0.205 o superior de la CLI de Databricks. Consulte ¿Qué es la CLI de Databricks?. No puede usar la interfaz de usuario de Azure Databricks.
  • Un perfil de configuración de Azure Databricks en su archivo .databrickscfg, con los campos del perfil configurados correctamente para los host relacionados que representan su dirección URL de Azure Databricks por área de trabajo, por ejemplo https://adb-1234567890123456.7.azuredatabricks.net y token que representan el token de Microsoft Entra ID de su entidad de servicio. ( No use el token de acceso personal de Databricks para el usuario del área de trabajo). Consulte Autenticación de token de acceso personal de Azure Databricks.

Use la CLI de Databricks para ejecutar el siguiente comando:

databricks git-credentials create <git-provider-short-name> --git-username <git-provider-user-name> --personal-access-token <git-provider-access-token> -p <profile-name>
  • Use uno de los siguientes para <git-provider-short-name>:
    • Para GitHub, use GitHub.
    • Para Azure Pipelines, use AzureDevOpsServices.
    • Para CI/CD de GitLab, use GitLab.
  • Reemplazar <git-provider-user-name> con el nombre de usuario asociado al proveedor de Git.
  • Reemplazar <git-provider-access-token> con el token de acceso asociado al usuario para el proveedor de Git.
  • Reemplazar <profile-name> por el nombre del perfil de configuración de Azure Databricks en el archivo .databrickscfg.

Sugerencia

Para confirmar que la llamada se realizó correctamente, puede ejecutar uno de los siguientes comandos de la CLI de Databricks y revisar la salida:

databricks git-credentials list -p <profile-name>
databricks git-credentials get <credential-id> -p <profile-name>