Use as credenciais do serviço Unity Catalog para se conectar a serviços de nuvem externos
Importante
Esta funcionalidade está em Pré-visualização Pública.
Este artigo descreve como usar uma credencial de serviço no Unity Catalog para se conectar a serviços de nuvem externos. Um objeto de credencial de serviço no Unity Catalog encapsula uma credencial de nuvem de longo prazo que fornece acesso a um serviço de nuvem externo ao qual os usuários precisam se conectar a partir do Azure Databricks.
Consulte também:
- Gerencie o acesso a serviços de nuvem externos usando credenciais de serviço.
- Gerenciar credenciais de serviço
Antes de começar
Antes de poder usar uma credencial de serviço para se conectar a um serviço de nuvem externo, você deve ter:
- Um espaço de trabalho do Azure Databricks habilitado para o Catálogo Unity.
- Um recurso de computação que está no Databricks Runtime 15.4 LTS ou superior. Não há suporte para armazéns SQL.
- Uma credencial de serviço criada em seu metastore do Unity Catalog que dá acesso ao serviço de nuvem.
- O
ACCESS
privilégio na credencial de serviço ou propriedade da credencial de serviço.
Usar uma credencial de serviço em seu código
Esta seção fornece um exemplo de como usar uma credencial de serviço em um bloco de anotações. Somente Python é suportado durante a visualização pública. Substitua valores de espaço reservado.
Exemplo: configurar um cliente SDK do Azure para usar uma credencial de serviço 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 uma credencial de serviço padrão para um recurso de computação
Opcionalmente, você pode especificar uma credencial de serviço padrão para um cluster de computação para todos os fins ou trabalhos definindo uma variável de ambiente. Por padrão, o SDK usa essa credencial de serviço se nenhuma autenticação for fornecida. Os usuários ainda precisam ACCESS
dessa credencial de serviço para se conectar ao serviço de nuvem externo. O Databricks não recomenda essa abordagem, porque torna seu código menos portátil do que nomear a credencial de serviço em seu código.
Nota
A computação sem servidor e os armazéns SQL não oferecem suporte a variáveis de ambiente e, portanto, não oferecem suporte a credenciais de serviço padrão.
Abra a página de edição do cluster.
Consulte Gerenciar computação.
Clique em Opções avançadas na parte inferior da página e vá para a guia Faísca .
Adicione a seguinte entrada em Variáveis de ambiente, substituindo
<your-service-credential>
:DATABRICKS_DEFAULT_SERVICE_CREDENTIAL_NAME=<your-service-credential>
O exemplo de código a seguir não especifica uma credencial de serviço. Em vez disso, ele usa a credencial de serviço especificada na DATABRICKS_DEFAULT_SERVICE_CREDENTIAL_NAME
variável de ambiente:
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 com o exemplo em Exemplo: configurar um cliente do SDK do Azure para usar uma credencial de serviço específica, que não importa DefaultAzureCredential
e adiciona a especificação de credencial:
credential = dbutils.credentials.getServiceCredentialsProvider('your-service-credential')