Administración del acceso a servicios en la nube externos mediante credenciales de servicio
Importante
Esta característica está en versión preliminar pública.
En este artículo se describe cómo crear un objeto de credencial de servicio en el catálogo de Unity que le permite controlar el acceso desde Azure Databricks a servicios en la nube externos. Una credencial de servicio en el Catálogo de Unity encapsula una credencial de nube a largo plazo que concede acceso a dichos servicios.
Las credenciales de servicio no están pensadas para gobernar el acceso al almacenamiento en la nube que se usa como una ubicación de almacenamiento administrada del Catálogo de Unity o una ubicación de almacenamiento externo. Para esos casos de uso, use una credencial de almacenamiento. Consulte Administración del acceso al almacenamiento en la nube mediante el catálogo de Unity.
Para crear una credencial de servicio para el acceso a los servicios de Azure, cree un conector de acceso de Azure Databricks que haga referencia a una identidad administrada de Azure y asígnele permisos en un servicio o servicios. A continuación, haga referencia a ese conector de acceso en la definición de credenciales de servicio.
Antes de empezar
Antes de crear una credencial de servicio, debe cumplir los siguientes requisitos:
En Azure Databricks:
Área de trabajo de Azure Databricks habilitada para Unity Catalog.
Privilegio
CREATE SERVICE CREDENTIAL
en el metastore de Unity Catalog asociado al área de trabajo. Los administradores de cuentas y los administradores de metastore tienen este privilegio de manera predeterminada. Si el área de trabajo se ha habilitado automáticamente para el catálogo de Unity, los administradores del área de trabajo también tienen este privilegio.Nota:
Las entidades de servicio deben tener el rol de administrador de la cuenta para crear una credencial de servicio que use una identidad administrada. No se puede delegar
CREATE SERVICE CREDENTIAL
a una entidad de servicio. Esto se aplica tanto a entidades de servicio de Azure Databricks como a entidades de servicio de Microsoft Entra ID.
En el inquilino de Azure:
- Un servicio de Azure en la misma región que el área de trabajo desde la que desea acceder a los datos.
- Rol Colaborador o Propietario en un grupo de recursos de Azure.
- Rol RBAC de Administrador de acceso de usuario o propietario de Azure en la cuenta de servicio.
Creación de una credencial de servicio mediante una identidad administrada
Para configurar la identidad que autoriza el acceso a su cuenta de servicio, use un conector de acceso de Azure Databricks que conecte una identidad administrada de Azure a la cuenta de Azure Databricks. Si ya tiene definido el conector de acceso, puede ir directamente al paso 2 del procedimiento siguiente.
Nota:
Puede usar una entidad de servicio en lugar de una identidad administrada, pero se recomienda encarecidamente las identidades administradas. Las identidades administradas tienen la ventaja de permitir que Unity Catalog acceda a cuentas de servicio protegidas por reglas de red, lo que no es posible mediante entidades de servicio y eliminan la necesidad de administrar y rotar secretos. Si debe usar una entidad de servicio, consulte Creación de un almacenamiento administrado del catálogo de Unity mediante una entidad de servicio (heredada).
En Azure Portal, cree un conector de acceso de Azure Databricks y asígnele permisos en el servicio al que desea acceder mediante las instrucciones de Configuración de una identidad administrada para el catálogo de Unity.
Los conectores de acceso de Azure Databricks son recursos de Azure de primera entidad que le permiten conectar identidades administradas a una cuenta de Azure Databricks. Debe tener el rol Colaborador o superior en el recurso del conector de acceso en Azure para agregar la credencial del servicio.
En lugar de seguir las instrucciones del paso 2: Conceder a la identidad administrada acceso a la cuenta de almacenamiento, conceda a la cuenta de servicio acceso a la identidad administrada.
Anote el id. de recurso del conector de acceso.
Inicie sesión en el área de trabajo de Azure Databricks como usuario que cumpla los requisitos indicados en Antes de comenzar.
Haga clic en Catálogo.
En la página Acceso rápido, haga clic en el botón Datos >externos, vaya a la pestaña Credenciales y seleccione Crear credencial.
Seleccione Credencial de servicio.
Escriba un nombre de credencial, un comentario opcional y el identificador de recurso del conector de acceso en el formato:
/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
(Opcional) Si creó el conector de acceso mediante una identidad administrada asignada por el usuario, escriba el id. de recurso de la identidad administrada en el campo Id. de identidad administrada asignada por el usuario con el siguiente formato:
/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managed-identity-name>
Haga clic en Crear.
En el cuadro de diálogo Credencial de servicio creada , copie el identificador externo.
También puede ver el identificador externo en cualquier momento en la página de detalles de credenciales del servicio.
Haga clic en Done(Listo).
(Opcional) Asignación de una credencial de servicio a áreas de trabajo específicas
Importante
Esta característica está en versión preliminar pública.
De forma predeterminada, se puede acceder a una credencial de servicio desde todas las áreas de trabajo del metastore. Esto significa que si a un usuario se le ha concedido un privilegio en esa credencial de servicio, puede ejercer ese privilegio desde cualquier área de trabajo asociada a la metastore. Si usa áreas de trabajo para aislar el acceso a datos de usuario, puede permitir el acceso a una credencial de servicio solo desde áreas de trabajo específicas. Esta característica se conoce como enlace del área de trabajo o aislamiento de credenciales de servicio.
Un caso de uso típico para enlazar una credencial de servicio a áreas de trabajo específicas es el escenario en el que un administrador de la nube configura una credencial de servicio mediante una credencial de cuenta en la nube de producción y quiere asegurarse de que los usuarios de Azure Databricks usan esta credencial para acceder a un servicio en la nube externo solo en el área de trabajo de producción.
Para obtener más información sobre el enlace del área de trabajo, consulte (Opcional) Asignar una credencial de almacenamiento a áreas de trabajo específicas y Limitar el acceso de catálogo a áreas de trabajo específicas.
Enlace de una credencial de servicio a una o varias áreas de trabajo
Para asignar una credencial de servicio a áreas de trabajo específicas, use el Explorador de catálogos.
Permisos necesarios: propietario de credenciales de administrador o servicio de Metastore.
Nota:
Los administradores de metastore pueden ver todas las credenciales de servicio en un metastore mediante el Explorador de catálogos y los propietarios de credenciales de servicio pueden ver todas las credenciales de servicio que poseen en un metastore, independientemente de si la credencial del servicio está asignada al área de trabajo actual. Las credenciales de servicio que no están asignadas al área de trabajo aparecen atenuadas.
Inicie sesión en un área de trabajo vinculada al metastore.
En la barra lateral, haga clic en Catálogo.
En la página Acceso rápido, haga clic en el botón Datos >externos y vaya a la pestaña Credenciales.
Seleccione la credencial de servicio y vaya a la pestaña Áreas de trabajo.
En la pestaña Áreas de trabajo, desactive la casilla Todas las áreas de trabajo tienen acceso.
Si la credencial de servicio ya está enlazada a una o varias áreas de trabajo, esta casilla ya está desactivada.
Haga clic en Asignar a áreas de trabajo y escriba o busque las áreas de trabajo que desea asignar.
Para revocar el acceso, vaya a la pestaña Áreas de trabajo, seleccione el área de trabajo y haga clic en Revocar. Para permitir el acceso desde todas las áreas de trabajo, active la casilla Todas las áreas de trabajo tienen acceso.
Pasos siguientes
- Obtenga información sobre cómo ver, actualizar, eliminar y conceder a otros usuarios permiso para usar las credenciales de servicio. Consulte Administración de credenciales de servicio.
- Aprenda a usar credenciales de servicio en el código. Consulte Uso de credenciales de servicio del catálogo de Unity para conectarse a servicios en la nube externos.
Limitaciones
Se aplican las siguientes limitaciones:
- Databricks Runtime 15.4 LTS solo incluye compatibilidad con Python.
- No se admiten almacenes de SQL.
- Algunos eventos de auditoría para las acciones realizadas en las credenciales de servicio no aparecerán en la
system.access.audit
tabla. La información de auditoría sobre quién creó, eliminó, actualizó, leyó, enumera o usó una credencial de servicio estará disponible. Consulte Referencia de la tabla del sistema de registro de auditoría. - Durante la versión preliminar de las credenciales de servicio,
INFORMATION_SCHEMA.STORAGE_CREDENTIALS
(en desuso) se muestran las credenciales de almacenamiento y las credenciales de servicio, yINFORMATION_SCHEMA.STORAGE_CREDENTIAL_PRIVILEGES
(en desuso) se muestran los privilegios que se aplican tanto a las credenciales de almacenamiento como a las credenciales de servicio. Este es un comportamiento incorrecto de vista previa que se corregirá y no debe depender de él para continuar. En su lugar, debe usarINFORMATION_SCHEMA.CREDENTIALS
yINFORMATION_SCHEMA.CREDENTIAL_PRIVILEGES
para las credenciales de almacenamiento y servicio.