Uso de credenciales de servicio de Catálogo de Unity para conectarse a servicios en la nube externos
Importante
Esta característica está en versión preliminar pública.
En este artículo se describe cómo usar una credencial de servicio en el catálogo de Unity para conectarse a servicios en la nube externos. Un objeto de credencial de servicio de Unity Catalog encapsula una credencial de nube a largo plazo que proporciona acceso a un servicio en la nube externo al que los usuarios necesitan conectarse desde Azure Databricks.
Consulte también:
- Administrar el acceso a servicios en la nube externos mediante credenciales de servicio.
- Administración de credenciales de servicio
Antes de empezar
Para poder usar una credencial de servicio para conectarse a un servicio en la nube externo, debe tener:
- Un área de trabajo de Azure Databricks habilitada para Unity Catalog.
- Un recurso de proceso que se encuentra en Databricks Runtime 15.4 LTS o superior. No se admiten almacenes de SQL.
- Credenciales de servicio creadas en el metastore del catálogo de Unity que proporciona acceso al servicio en la nube.
- Privilegio
ACCESS
en la credencial de servicio o la propiedad de la credencial de servicio.
Uso de una credencial de servicio en el código
En esta sección se proporciona un ejemplo de uso de una credencial de servicio en un cuaderno. Solo se admite Python durante la versión preliminar pública. Reemplace los valores de marcador de posición.
Ejemplo: configuración de un cliente de Azure SDK para usar una credencial de servicio específica
from azure.keyvault.secrets import SecretClient # example Azure SDK client
credential = dbutils.credentials.getServiceCredentialsProvider('your-service-credential')
vault_url = "https://your-keyvault-name.vault.azure.net/"
client = SecretClient(vault_url=vault_url, credential=credential)
Especificar una credencial de servicio predeterminada para un recurso de proceso
Opcionalmente, puede especificar una credencial de servicio predeterminada para un clúster de proceso de todos los fines o trabajos estableciendo una variable de entorno. De forma predeterminada, el SDK usa esa credencial de servicio si no se proporciona ninguna autenticación. Los usuarios siguen necesitando ACCESS
esa credencial de servicio para conectarse al servicio en la nube externo. Databricks no recomienda este enfoque, ya que hace que el código sea menos portátil que asignar un nombre a la credencial del servicio en el código.
Nota:
Los almacenamientos de proceso y SQL sin servidor no admiten variables de entorno y, por tanto, no admiten credenciales de servicio predeterminadas.
Abra la página de edición del clúster.
Consulte Administración del proceso.
Haga clic en Opciones avanzadas en la parte inferior de la página y vaya a la pestaña Spark .
Agregue la entrada siguiente en Variables de entorno, reemplazando
<your-service-credential>
:DATABRICKS_DEFAULT_SERVICE_CREDENTIAL_NAME=<your-service-credential>
El ejemplo de código siguiente no especifica una credencial de servicio. En su lugar, usa la credencial de servicio especificada en la DATABRICKS_DEFAULT_SERVICE_CREDENTIAL_NAME
variable de entorno:
from azure.identity import DefaultAzureCredential
from azure.keyvault.secrets import SecretClient
vault_url = "https://your-keyvault-name.vault.azure.net/"
client = SecretClient(vault_url=vault_url, credential=credential)
Compare con el ejemplo de Ejemplo: configure un cliente de Azure SDK para usar una credencial de servicio específica, que no importa DefaultAzureCredential
y agrega la especificación de credenciales:
credential = dbutils.credentials.getServiceCredentialsProvider('your-service-credential')