Use as credenciais do serviço Unity Catalog para se conectar ao serviço externo cloud
Prévia
Este recurso está em visualização pública.
Este artigo descreve como usar uma credencial de serviço em Unity Catalog para se conectar a um serviço externo cloud. Um objeto de credencial de serviço em Unity Catalog encapsula uma credencial cloud de longo prazo que fornece acesso a um serviço cloud externo ao qual os usuários precisam se conectar a partir de Databricks.
Veja também:
Antes de começar
Antes de poder usar uma credencial de serviço para se conectar a um serviço externo cloud, o senhor deve ter:
Um Databricks workspace que está habilitado para Unity Catalog.
Um recurso compute que está em Databricks Runtime 15.4 LTS ou acima. SQL não são suportados.
Uma credencial de serviço criada em seu metastore Unity Catalog que dá acesso ao serviço cloud.
O privilégio
ACCESS
na credencial de serviço ou a propriedade da credencial de serviço.
Use 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 do espaço reservado.
Especificar uma credencial de serviço padrão para um recurso de computação
Opcionalmente, o senhor pode especificar uma credencial de serviço default para um compute cluster multifuncional ou de trabalho, definindo uma variável de ambiente. Por default, o SDK usa essa credencial de serviço se nenhuma autenticação for fornecida. Os usuários ainda precisam de ACCESS
nessa credencial de serviço para se conectar ao serviço externo cloud. A 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
serverless compute e SQL warehouse não suportam variável de ambiente e, portanto, não suportam default serviço credentials.
Abra a página de edição do cluster.
Veja gerenciar compute.
Clique em Advanced options (Opções avançadas ) na parte inferior da página e vá para a seção Spark tab.
Adicione a seguinte entrada em variável 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 variável de ambiente DATABRICKS_DEFAULT_SERVICE_CREDENTIAL_NAME
:
import boto3
sm = boto3.client('secretsmanager', region_name='your-aws-region')
Compare com o exemplo em Exemplo: configurar uma sessão boto3 para usar uma credencial de serviço específica, que adiciona a especificação da credencial:
boto3_session = boto3.Session(botocore_session=dbutils.credentials.getServiceCredentialsProvider('your-service-credential'), region_name='your-aws-region')