Compartir vía


Creación de una credencial de almacenamiento para conectarse a Azure Data Lake Storage Gen2

En este artículo se describe cómo crear una credencial de almacenamiento en Unity Catalog para conectarse a Azure Data Lake Storage Gen2.

Para administrar el acceso al almacenamiento en la nube subyacente que contiene tablas y volúmenes, Unity Catalog usa los siguientes tipos de objeto:

  • Las credenciales de almacenamiento encapsulan una credencial de nube a largo plazo que proporciona acceso al almacenamiento en la nube.
  • Las ubicaciones externas contienen una referencia a una credencial de almacenamiento y una ruta de acceso de almacenamiento en la nube.

Consulte Conexión al almacenamiento de objetos en la nube mediante Unity Catalog para obtener más información.

Unity Catalog admite dos opciones de almacenamiento en la nube para Azure Databricks: contenedores de Azure Data Lake Storage Gen2 y cubos de Cloudflare R2. Cloudflare R2 está pensado principalmente para los casos de uso compartido de Delta en los que desea evitar las tarifas de salida de datos. Azure Data Lake Storage Gen2 es adecuado para la mayoría de los otros casos de uso. Este artículo se centra en la creación de credenciales de almacenamiento para contenedores de Azure Data Lake Storage Gen2. Para Cloudflare R2, consulte Creación de una credencial de almacenamiento para conectarse a Cloudflare R2.

Para crear credenciales de almacenamiento para acceder a contenedores de Azure Data Lake Storage Gen2, cree un conector de acceso de Azure Databricks que haga referencia a una identidad administrada de Azure y asígnele permisos en el contenedor de almacenamiento. A continuación, haga referencia a ese conector de acceso en la definición de credenciales de almacenamiento.

Requisitos

En Azure Databricks:

  • Área de trabajo de Azure Databricks habilitada para Unity Catalog.

  • Privilegio CREATE STORAGE 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.

    Nota:

    Las entidades de servicio deben tener el rol Administrador de la cuenta para crear credenciales de almacenamiento que usen una identidad administrada. No se puede delegar CREATE STORAGE 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 (anteriormente, Azure Active Directory).

En el inquilino de Azure:

  • Un contenedor de almacenamiento de Azure Data Lake Storage Gen2 en la misma región que el área de trabajo desde la que quiere acceder a los datos.

    La cuenta de almacenamiento de Azure Data Lake Storage Gen2 debe tener un espacio de nombres jerárquico.

  • Colaborador o propietario de un grupo de recursos de Azure.

  • Propietario o usuario con el rol RBAC de Administrador de acceso de usuario de Azure en la cuenta de almacenamiento.

Creación de una credencial de almacenamiento mediante una identidad administrada

Puede usar una identidad administrada de Azure o una entidad de servicio como identidad de autorización de acceso al contenedor de almacenamiento. Se recomienda encarecidamente el uso de identidades administradas. Su uso ofrece la ventaja de permitir que el catálogo de Unity acceda a las cuentas de almacenamiento que se protegen con reglas de red (algo que no es posible mediante entidades de servicio) y, además, elimina la necesidad de administrar y rotar los secretos. Si desea usar una entidad de servicio, consulte Creación de un almacenamiento administrado de Unity Catalog mediante una entidad de servicio (heredada).

  1. En Azure Portal, cree un conector de acceso de Azure Databricks y asígnele permisos en el contenedor de almacenamiento al que desea acceder. Para ello, siga instrucciones que encontrará en 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 de almacenamiento.

    Anote el id. de recurso del conector de acceso.

  2. Inicie sesión en el área de trabajo de Azure Databricks habilitada para el catálogo de Unity como usuario que tenga el privilegio CREATE STORAGE CREDENTIAL.

    Los roles de administrador de metastore y administrador de cuentas incluyen este privilegio. Si inició sesión como entidad de servicio (ya sea una entidad de servicio de Azure Databricks nativa o Microsoft Entra ID), deberá tener el rol Administrador de la cuenta para crear una credencial de almacenamiento que use una identidad administrada.

  3. Haga clic en icono de Catálogo Catálogo.

  4. En la parte superior del panel Catálogo, haga clic en el iconoIcono agregar o más Agregar y seleccione Agregar una credencial de almacenamiento en el menú.

    Esta opción no aparece si no tiene el privilegio CREATE STORAGE CREDENTIAL.

    Como alternativa, en la página Acceso rápido, haga clic en el botón Datos externos>, vaya a la pestaña Credenciales de almacenamiento y seleccione Crear credencial.

  5. Seleccione un tipo de credencial de Azure Managed Identity.

  6. Escriba un nombre para la credencial y el id. de recurso del conector de acceso en el siguiente formato:

    /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
    
  7. (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>
    
  8. (Opcional) Si desea que los usuarios tengan acceso de solo lectura a las ubicaciones externas que usan esta credencial de almacenamiento, seleccione Solo lectura. Para obtener más información, consulte Marcar una credencial de almacenamiento como de solo lectura.

  9. Haga clic en Save(Guardar).

  10. (Opcional) Enlace la credencial de almacenamiento a áreas de trabajo específicas.

    De forma predeterminada, cualquier usuario con privilegios puede usar la credencial de almacenamiento en cualquier área de trabajo asociada al metastore. Si desea permitir el acceso solo desde áreas de trabajo específicas, vaya a la pestaña Áreas de trabajo y asigne áreas de trabajo. Consulte (Opcional) Asignación de una credencial de almacenamiento a áreas de trabajoespecíficas.

  11. Cree una ubicación externa que haga referencia a esta credencial de almacenamiento.

(Opcional) Asignación de una credencial de almacenamiento 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 almacenamiento desde todas las áreas de trabajo del metastore. Esto significa que si a un usuario se le ha concedido un privilegio (por CREATE EXTERNAL LOCATIONejemplo, ) en esa credencial de almacenamiento, puede ejercer ese privilegio desde cualquier área de trabajo asociada al metastore. Si usa áreas de trabajo para aislar el acceso a datos de usuario, puede permitir el acceso a una credencial de almacenamiento solo desde áreas de trabajo específicas. Esta característica se conoce como enlace del área de trabajo o aislamiento de credenciales de almacenamiento.

Un caso de uso típico para enlazar una credencial de almacenamiento a áreas de trabajo específicas es el escenario en el que un administrador de la nube configura una credencial de almacenamiento mediante una credencial de cuenta en la nube de producción y quiere asegurarse de que los usuarios de Azure Databricks usen esta credencial para crear ubicaciones externas solo en el área de trabajo de producción.

Para obtener más información sobre el enlace del área de trabajo, vea (Opcional) Asignar una ubicación externa a áreas de trabajo específicas y Limitar el acceso de catálogo a áreas de trabajo específicas.

Nota:

Se hace referencia a los enlaces del área de trabajo cuando se ejercen los privilegios con respecto a las credenciales de almacenamiento. Por ejemplo, si un usuario crea una ubicación externa mediante una credencial de almacenamiento, el enlace del área de trabajo en la credencial de almacenamiento solo se comprueba cuando se crea la ubicación externa. Una vez creada la ubicación externa, funcionará independientemente de los enlaces del área de trabajo configurados en la credencial de almacenamiento.

Enlace de una credencial de almacenamiento a una o varias áreas de trabajo

Para asignar una credencial de almacenamiento a áreas de trabajo específicas, puede usar el Explorador de catálogos o la CLI de Databricks.

Permisos necesarios: propietario de credenciales de almacenamiento o administrador de metastore.

Nota:

Los administradores de metastore pueden ver todas las credenciales de almacenamiento en un metastore mediante el Explorador de catálogos y los propietarios de credenciales de almacenamiento pueden ver todas las credenciales de almacenamiento que poseen en un metastore, independientemente de si la credencial de almacenamiento está asignada al área de trabajo actual. Las credenciales de almacenamiento que no están asignadas al área de trabajo aparecen atenuadas.

Explorador de catálogo

  1. Inicie sesión en un área de trabajo vinculada al metastore.

  2. En la barra lateral, haga clic en Icono del catálogo Catálogo.

  3. En la parte superior del panel Catálogo, haga clic en el icono de engranaje icono de engranaje y seleccione Credenciales de almacenamiento.

    Como alternativa, en la página Acceso rápido, haga clic en el botón Datos externos > y vaya a la pestaña Credenciales de almacenamiento.

  4. Seleccione la credencial de almacenamiento y vaya a la pestaña Áreas de trabajo.

  5. En la pestaña Áreas de trabajo, desactive la casilla Todas las áreas de trabajo tienen acceso.

    Si el catálogo ya está enlazado a una o varias áreas de trabajo, esta casilla ya está desactivada.

  6. 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.

CLI

Hay dos grupos de comandos de la CLI de Databricks y dos pasos necesarios para asignar una credencial de almacenamiento a un espacio de trabajo.

En los ejemplos siguientes, reemplace <profile-name> con el nombre del perfil de configuración de autenticación de Azure Databricks. Debe incluir el valor de un token de acceso personal, además del nombre de la instancia del área de trabajo y el identificador de área de trabajo donde generó el token de acceso personal. Consulta Autenticación de token de acceso personal de Azure Databricks.

  1. Use el comando update del grupo de comandos de storage-credentials para establecer la credencial de almacenamiento isolation mode a ISOLATED:

    databricks storage-credentials update <my-storage-credential> \
    --isolation-mode ISOLATED \
    --profile <profile-name>
    

    El valor predeterminado de isolation-mode es OPEN para todas las áreas de trabajo asociadas al metastore.

  2. Use el comando workspace-bindings del grupo de comandos update-bindings para asignar las áreas de trabajo a la credencial de almacenamiento:

    databricks workspace-bindings update-bindings storage-credential <my-storage-credential> \
    --json '{
      "add": [{"workspace_id": <workspace-id>}...],
      "remove": [{"workspace_id": <workspace-id>}...]
    }' --profile <profile-name>
    

    Use las propiedades "add" y "remove" para agregar o quitar enlaces de área de trabajo.

    Nota:

    El enlace de solo lectura (BINDING_TYPE_READ_ONLY) no está disponible para las credenciales de almacenamiento. Por lo tanto, no hay ninguna razón para establecer binding_type para el enlace de credenciales de almacenamiento.

Para enumerar todas las asignaciones de área de trabajo de una credencial de almacenamiento, use el comando workspace-bindings del grupo de comandos get-bindings:

databricks workspace-bindings get-bindings storage-credential <my-storage-credential> \
--profile <profile-name>

Desenlace una credencial de almacenamiento de un área de trabajo

Las instrucciones para revocar el acceso del área de trabajo a una credencial de almacenamiento mediante el Explorador de catálogos o el grupo de comandos de la CLI de workspace-bindings se incluyen en Enlazar una credencial de almacenamiento a una o varias áreas de trabajo.

Pasos siguientes

Puede ver, actualizar, eliminar y conceder a otros usuarios permiso para usar las credenciales de almacenamiento. Consulte Administración de credenciales de almacenamiento.

Puede definir ubicaciones externas mediante credenciales de almacenamiento. Consulte Creación de una credencial de almacenamiento para conectarse a Azure Data Lake Storage Gen2.