Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En esta página se describe cómo usar identidades administradas de Azure para conectarse a contenedores de almacenamiento en nombre de los usuarios de el catálogo de Unity.
¿Qué son las identidades administradas Azure?
Unity Catalog se puede configurar para usar una identidad administrada Azure para acceder a los contenedores de almacenamiento en nombre de los usuarios del catálogo de Unity. Las identidades administradas proporcionan una identidad para que las aplicaciones las usen cuando se conectan a los recursos que admiten la autenticación Microsoft Entra ID.
Puede usar identidades administradas en Unity Catalog para admitir dos casos de uso principales:
- Como identidad para conectarse a las cuentas de almacenamiento administradas del metastore (donde se almacenan las tablas administradas).
- Como identidad para conectarse a otras cuentas de almacenamiento externas (ya sea para el acceso basado en archivos o para acceder a conjuntos de datos existentes a través de tablas externas).
La configuración de Unity Catalog con una identidad administrada tiene las siguientes ventajas sobre la configuración de Unity Catalog con una entidad de servicio:
- Las identidades administradas no requieren que mantenga credenciales ni rotar secretos.
- Si el área de trabajo de Azure Databricks se implementa en su propia red virtual (también conocida como inyección de red virtual) y usa un firewall de almacenamiento para proteger una cuenta de Azure Data Lake Storage, puede usar la identidad administrada para conectar el área de trabajo a esa cuenta. Vea (Recomendado para espacios de trabajo con inyección de VNet) Configure el acceso de confianza a Azure Storage basado en su identidad gestionada.
Configuración de una identidad administrada para Unity Catalog
Para configurar una identidad administrada que se va a usar con el catálogo de Unity, primero debe crear un conector de acceso para Azure Databricks en Azure. De forma predeterminada, el conector de acceso se implementará con una identidad administrada asignada por el sistema. En su lugar, puede elegir adjuntar una identidad administrada asignada por el usuario. Después, conceda a la identidad administrada acceso a la cuenta de Azure Data Lake Storage y use el conector de acceso cuando cree un metastore de Unity Catalog o una credencial de almacenamiento.
Requisitos
El usuario de Azure o principal de servicio que debe crear el conector de acceso:
- Convertirse en un
ContributoroOwnerde un grupo de recursos de Azure.
El Azure usuario o entidad de servicio que concede la identidad administrada a la cuenta de almacenamiento debe:
- Ser un
Ownero un usuario con el rol de RBAC deUser Access AdministratorAzure en la cuenta de almacenamiento.
Step 1: Creación de un conector de acceso para Azure Databricks
Access Connector for Azure Databricks es un recurso de Azure de primera entidad que le permite conectar identidades administradas a una cuenta de Azure Databricks. Cada conector de acceso para Azure Databricks puede incluir una identidad administrada asignada por el sistema, una o varias identidades administradas asignadas por el usuario o ambas.
Inicie sesión en el Azure Portal como colaborador o propietario de un grupo de recursos.
Haga clic en + Crear o Crear un nuevo recurso.
Busque Access Connector para Azure Databricks y selecciónelo.
Haga clic en Crear.
En la pestaña Aspectos básicos, acepte, seleccione o escriba valores para los campos siguientes:
- Subscription: esta es la suscripción Azure en la que se creará el conector de acceso. El valor predeterminado es la suscripción de Azure que está usando actualmente. Puede ser cualquier suscripción en el inquilino.
- Resource group: este es el grupo de recursos Azure en el que se creará el conector de acceso.
- Nombre: escriba un nombre que indique el propósito del conector.
- Región: debe ser la misma región a la que se conectará la cuenta de almacenamiento.
Haga clic en Siguiente, escriba etiquetas y haga clic en Siguiente.
En la pestaña Identidad Administrada, cree las identidades administradas de la siguiente manera:
- Para usar una identidad administrada asignada por el sistema, establezca Estado en Activado
- Para agregar identidades administradas asignadas por el usuario, haga clic en + Agregar y seleccione una o varias identidades administradas asignadas por el usuario.
Haga clic en Revisar y crear.
Cuando reciba el mensaje Validación superada, haga clic en Crear.
Cuando la implementación finalice, haga clic en Ir al recurso.
Anote el Id. de recurso.
El id. de recurso tiene el formato siguiente:
/subscriptions/12f34567-8ace-9c10-111c-aea8eba12345c/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
Paso 2: Conceder a la identidad administrada el acceso a la cuenta de almacenamiento
Para conceder los permisos en este paso, debe tener el rol Owner o User Access Administrator Azure RBAC en la cuenta de almacenamiento.
Tiene las siguientes opciones al conceder a la identidad administrada acceso a la cuenta de almacenamiento y al contenedor:
- Otorgue acceso de lectura y escritura a toda la cuenta de almacenamiento usando el rol de
Storage Blob Data Contributor. - Conceda un rol más limitado en la cuenta de almacenamiento utilizando el rol
Storage Blob Delegatory acceso de lectura y escritura a un contenedor específico utilizando el rolStorage Blob Data Contributor.
En las siguientes instrucciones se asumen que va a conceder el rol Storage Blob Data Contributor en la cuenta de almacenamiento, pero puede sustituir las otras opciones si es necesario:
- Inicie sesión en su cuenta de Azure Data Lake Storage.
- Vaya a Access Control (IAM), haga clic en + Agregar y seleccione Agregar asignación de roles.
- Seleccione el rol Colaborador de datos de Storage Blob y haga clic en Siguiente.
- En Asignar acceso a, seleccione Identidad administrada.
- Haga clic en +Seleccionar miembros y seleccione Conector de acceso para Azure Databricks o Identidad administrada asignada al usuario.
- Busque el nombre del conector o la identidad asignada por el usuario, selecciónelo y haga clic en Revisar y asignar.
Paso 3: Conceder a la identidad administrada acceso a eventos de archivo
Para configurar los roles de Azure necesarios y habilitar eventos de archivo para ubicaciones externas, consulte Configurar eventos de archivo para una ubicación externa.
Uso de una identidad administrada para acceder a la cuenta de almacenamiento raíz de Unity Catalog
En esta sección se describe cómo conceder a la identidad administrada acceso a la cuenta de almacenamiento raíz al crear un metastore de Unity Catalog.
Para información sobre cómo actualizar un metastore de Unity Catalog existente para usar una identidad administrada, consulte Actualización del metastore de Unity Catalog existente para usar una identidad administrada para acceder a su almacenamiento raíz.
Como administrador de cuentas de Azure Databricks, inicie sesión en la consola de cuenta de Azure Databricks.
Haga clic en
Catálogo.
Haga clic en Create Metastore (Crear metastore).
Escriba valores para los campos siguientes:
Nombre para el metastore.
Región en la que se implementará el metastore.
Para obtener el mejor rendimiento posible, colocalice el conector de acceso, las áreas de trabajo, el metastore y la ubicación de almacenamiento en la nube en la misma región de nube.
Ruta de acceso de ADLS Gen 2: escriba la ruta de acceso al contenedor de almacenamiento que va a usar como almacenamiento raíz para el metastore.
Asegúrese de que la ruta de acceso comience por
abfss://.Access Connector ID: escriba el identificador de recurso del conector de acceso Azure Databricks en el formato:
/subscriptions/12f34567-8ace-9c10-111c-aea8eba12345c/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>(Opcional) Id. de identidad administrada: si creó el conector de acceso mediante una identidad administrada asignada por el usuario, escriba el id. de recurso de la identidad administrada.
Haga clic en Crear.
Cuando se le solicite, seleccione áreas de trabajo para vincularlas al metastore.
Uso de una identidad administrada para acceder al almacenamiento externo administrado en Unity Catalog
Unity Catalog ofrece la posibilidad de acceder a los datos existentes en las cuentas de almacenamiento mediante credenciales de almacenamiento y ubicaciones externas. Las credenciales de almacenamiento almacenan la identidad administrada y las ubicaciones externas definen una ruta de acceso al almacenamiento junto con una referencia a la credencial de almacenamiento. Puede usar este enfoque para conceder y controlar el acceso a los datos existentes en el almacenamiento en la nube y para registrar tablas externas en Unity Catalog.
Una credencial de almacenamiento puede contener una identidad administrada o una entidad de servicio. El uso de una identidad administrada tiene la ventaja de permitir que Unity Catalog acceda a las cuentas de almacenamiento protegidas por reglas de red, lo que no es posible mediante entidades de servicio y elimina la necesidad de administrar y rotar secretos.
Para crear una credencial de almacenamiento mediante una identidad administrada y asignar esa credencial de almacenamiento a una ubicación externa, siga las instrucciones de Conexión al almacenamiento de objetos en la nube mediante el catálogo de Unity.
(Recomendado para las áreas de trabajo inyectadas en la red virtual) Configure el acceso de confianza a Azure Storage basado en su identidad administrada.
Si el área de trabajo de Azure Databricks se implementa en su propia Red Virtual de Azure, también conocida como "VNet Injection", y utiliza un firewall de almacenamiento para proteger una cuenta de Azure Data Lake Storage, debe:
- Habilite el área de trabajo de Azure Databricks para acceder a Azure Storage.
- Habilite la identidad administrada para acceder a Azure Storage.
Paso 1. Permitir que el área de trabajo de Azure Databricks acceda a Azure Storage
Debe configurar las opciones de red para permitir que el área de trabajo de Azure Databricks acceda a Azure Data Lake Storage. En primer lugar, asegúrese de que el área de trabajo de Azure Databricks esté implementada en su propia red virtual siguiendo Implementar Azure Databricks en su red virtual de Azure (inyección de red virtual). Después, puede configurar puntos de conexión privados o acceso desde su red virtual para permitir conexiones desde sus subredes a su cuenta de Azure Data Lake Storage.
Si utiliza computación sin servidor como almacenes de SQL sin servidor, debe conceder acceso desde el plano de computación sin servidor a Azure Data Lake Storage. Consulte Redes de plano de proceso sin servidor.
Paso 2: Habilitar la identidad administrada para acceder a Azure Storage
Este paso solo es necesario si "Permitir que los servicios de Azure de la lista de servicios de confianza accedan a esta cuenta de almacenamiento" está deshabilitado para la cuenta de Azure Storage. Si esa configuración está habilitada:
- Cualquier conector de acceso para Azure Databricks en el mismo inquilinato que la cuenta de almacenamiento puede acceder a la cuenta de almacenamiento.
- Cualquier servicio de confianza de Azure puede acceder a la cuenta de almacenamiento. Consulte Conceder acceso a servicios de Azure de confianza.
Las instrucciones siguientes incluyen un paso en el que se deshabilita esta configuración. Puede usar el Azure Portal o el Azure CLI.
Uso del Azure Portal
Inicie sesión en el Azure Portal, busque y seleccione la cuenta de Azure Storage y vaya a la pestaña Networking.
Establezca Acceso de red públicaen Habilitado desde redes virtuales y direcciones IP seleccionadas.
Como opción, en su lugar puede establecer Acceso de red pública en Deshabilitado. La identidad administrada se puede usar para omitir la comprobación en el acceso de red pública.
En Resource instances, seleccione un tipo Resource de Microsoft. Databricks/accessConnectors y seleccione el conector de acceso Azure Databricks.
En Exceptions, desactive la casilla Allow Azure services en la lista de servicios de confianza para acceder a esta cuenta de almacenamiento.
Usar el Azure CLI
Instala el CLI de Azure e inicia sesión. Para iniciar sesión con una cuenta de usuario o una entidad de servicio, consulte Iniciar sesión con el Azure CLI.
Agregue una regla de red a la cuenta de almacenamiento:
az storage account network-rule add \ -–subscription <subscription id of the resource group> \ -–resource-id <resource Id of the access connector for Azure Databricks> \ -–tenant-id <tenant Id> \ -g <name of the Azure Storage resource group> \ -–account-name <name of the Azure Storage resource> \Agregue el id. de recurso con el formato siguiente:
/subscriptions/12f34567-8ace-9c10-111c-aea8eba12345c/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>Después de crear la regla de red, vaya a la cuenta de Azure Storage en la Azure Portal y vea la identidad administrada en la Networking pestaña en Resource instances, tipo de recurso
Microsoft.Databricks/accessConnectors.En Exceptions, desactive la casilla Allow Azure services en la lista de servicios de confianza para acceder a esta cuenta de almacenamiento.
Opcionalmente, establezca Acceso de red pública en Deshabilitado. La identidad administrada se puede usar para omitir la comprobación en el acceso de red pública.
El enfoque estándar es mantener este valor establecido en Habilitado desde redes virtuales y direcciones IP seleccionadas.
(Recomendado) Configurar firewalls de almacenamiento de Azure para permitir el acceso desde almacenes de SQL sin servidor
SQL Serverless warehouses son recursos de proceso que se ejecutan en la suscripción de Azure para Azure Databricks, no en tu propia suscripción de Azure. Si configura un firewall en Azure Data Lake Storage y planea usar almacenes sql sin servidor, debe configurar el firewall para permitir el acceso desde almacenes de SQL sin servidor.
Para obtener instrucciones, consulte Configurar un firewall para el acceso a computación sin servidor (legado).
Actualización del metastore de Unity Catalog existente para usar una identidad administrada para acceder a su almacenamiento raíz
Si tiene un metastore de Unity Catalog que se creó con una entidad de servicio y quiere actualizarlo para usar una identidad administrada, puede actualizarlo mediante una llamada API.
Cree un conector de Access para Azure Databricks y asígnele permisos al contenedor de almacenamiento que se usa para el almacenamiento raíz del metastore del catálogo de Unity mediante las instrucciones de Configurar una identidad administrada para el catálogo de Unity.
Puede crear el conector de acceso con una identidad administrada asignada por el sistema o una identidad administrada asignada por el usuario.
Anote el identificador de recurso del conector de acceso. Si usa una identidad administrada asignada por el usuario, anote también su id. de recurso.
Como administrador de la cuenta, inicie sesión en un área de trabajo de Azure Databricks asignada al metastore.
No es necesario que sea un administrador del área de trabajo.
Cree un perfil de configuración de autenticación Azure Databricks en el entorno local que contenga lo siguiente:
- El nombre de la instancia del área de trabajo y el identificador del área de trabajo donde generó el token de acceso personal.
- Valor del token de acceso personal.
Consulte Autenticación de token de acceso personal (heredado).
Use el CLI de Databricks para ejecutar el comando siguiente para volver a crear la credencial de almacenamiento.
Reemplace los valores de marcador de posición:
-
<credential-name>: nombre de la credencial de almacenamiento. -
<access-connector-id>: identificador de recurso del conector de acceso de Azure Databricks con el formato/subscriptions/12f34567-8ace-9c10-111c-aea8eba12345c/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name> -
<managed-identity-id>: si creó el conector de acceso mediante una identidad administrada asignada por el usuario, escriba el Id. de recurso de la identidad administrada. -
<profile-name>: el nombre del perfil de configuración de autenticación de Azure Databricks.
databricks storage-credentials create --json '{ "name\": "<credential-name>", "azure_managed_identity": { "access_connector_id": "<access-connector-id>", "managed_identity_id": "<managed-identity-id>" } }' --profile <profile-name>-
Anote el id. de credencial de almacenamiento de la respuesta.
Ejecute el siguiente comando de la CLI de Databricks para recuperar el
metastore_id. Reemplace<profile-name>por el nombre del perfil de configuración de autenticación de Azure Databricks.databricks metastores summary --profile <profile-name>Ejecute el siguiente comando de la CLI de Databricks para actualizar el metastore con la nueva credencial de almacenamiento raíz.
Reemplace los valores de marcador de posición:
-
<metastore-id>: el Id. de metastore que recuperó en el paso anterior. -
<storage-credential-id>: id. de credencial de almacenamiento. -
<profile-name>: el nombre del perfil de configuración de autenticación de Azure Databricks.
databricks metastores update <metastore-id> \ --storage-root-credential-id <storage-credential-id> \ --profile <profile-name>-