Usar credenciais de serviço do Catálogo do Unity para se conectar a serviços de nuvem externos

Importante

Esse recurso está em uma versão prévia.

Este artigo descreve como usar uma credencial de serviço no Catálogo do Unity para se conectar a serviços de nuvem externos. Um objeto de credencial de serviço no Catálogo do Unity 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 do Azure Databricks.

Consulte também:

Antes de começar

Antes de usar uma credencial de serviço para se conectar a um serviço de nuvem externo, você deve ter:

  • Um workspace do Azure Databricks que está habilitado para o Catálogo do Unity.
  • Um recurso de computação que está no Databricks Runtime 15.4 LTS ou superior. Não há suporte para SQL warehouses.
  • Uma credencial de serviço criada no metastore do Catálogo do Unity que dá acesso ao serviço de nuvem.
  • O ACCESS privilégio na credencial de serviço ou a propriedade da credencial de serviço.

Usar uma credencial de serviço em seu código

Esta seção fornece um exemplo de uso de uma credencial de serviço em um notebook. Somente o Python é suportado durante a visualização pública. Substitua os 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 todas as finalidades ou trabalhos definindo uma variável de ambiente. Por padrão, o SDK usará essa credencial de serviço se nenhuma autenticação for fornecida. Os usuários ainda exigem ACCESS essa credencial de serviço para se conectar ao serviço de nuvem externo. O Databricks não recomenda essa abordagem, pois ela torna seu código menos portátil do que nomear a credencial de serviço em seu código.

Observação

A computação sem servidor e os SQL warehouses não dão suporte a variáveis de ambiente e, portanto, não dão suporte a credenciais de serviço padrão.

  1. Abra a página de edição do cluster.

    Consulte Gerenciar computação.

  2. Clique em Opções avançadas na parte inferior da página e vá para a guia Spark .

  3. 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: configure um cliente 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')