Crie um objeto destinatário para usuários que não sejam da Databricks usando tokens de portador (compartilhamento aberto)
Este artigo descreve como criar destinatários Delta Sharing que não têm acesso a um Catálogo Unity habilitado Databricks workspace e conceder a esses destinatários acesso ao portador de dados de uso compartilhado com segurança tokens. Esse fluxo de autenticação, juntamente com o fluxo de autenticação da federação de tokens do OIDC, é chamado de compartilhamento aberto .
Veja como funciona:
-
Como provedor de dados, o senhor cria o objeto destinatário no metastore do Unity Catalog.
-
Quando você cria o objeto destinatário, seleciona o método de tokens de portador, o Databricks gera tokens, um arquivo de credenciais que inclui os tokens e um link de ativação para você compartilhar com o destinatário.
O objeto destinatário tem o tipo de autenticação
TOKEN
. O senhor pode refresh e revogar os tokens conforme necessário. -
O destinatário acessa o link de ativação, downloads o arquivo de credencial e usa o arquivo de credencial para se autenticar e obter acesso de leitura às tabelas que o senhor inclui nos compartilhamentos aos quais lhe dá acesso.
O fluxo de federação OIDC é uma alternativa ao fluxo de tokens de portador descrito neste artigo. Ele tem vantagens de segurança e conveniência em relação ao fluxo de tokens ao portador. Para obter detalhes, consulte Usar a federação Open ID Connect (OIDC) para habilitar a autenticação nos compartilhamentos do Delta Sharing (compartilhamento aberto).
Crie o destinatário
Para criar um destinatário para compartilhamento aberto, o senhor pode usar o Catalog Explorer, o Databricks Unity Catalog CLI, ou o CREATE RECIPIENT
SQL comando em um Databricks Notebook ou o editor de consultas Databricks SQL.
Permissões necessárias : Administrador do metastore ou usuário com o privilégio CREATE_RECIPIENT
para o metastore do Unity Catalog onde os dados que o senhor deseja compartilhar estão registrados.
- Catalog Explorer
- SQL
- CLI
-
In your Databricks workspace, click
Catalog.
-
At the top of the Catalog pane, click the
gear icon and select Delta Sharing.
Alternatively, from the Quick access page, click the Delta Sharing > button.
-
On the Shared by me tab, click New recipient.
-
Enter the Recipient name
-
For Recipient type, select Open.
-
Select Token.
-
(Optional) Set the Token lifetime expiration time (in seconds, minutes, hours, or day from recipient creation time). Leave Set expiration selected to set an expiration time. Clear the selection to allow the token to live indefinitely.
If you select Set expiration and leave the field blank, the token lifetime defaults to the recipient token lifetime value set in the metastore configuration. See Modify the recipient token lifetime. For information about changing the token lifetime and rotating tokens, see Manage recipient tokens.
-
(Optional) Enter a comment.
-
Click Create.
-
Copy the activation link.
Alternatively, you can get the activation link later. See Get the activation link.
-
(Optional) Create custom Recipient properties.
On the recipient Overview tab, click the
edit icon next to Recipient properties. Then add a property name (Key) and Value. For details, see Manage recipient properties.
Run the following command in a notebook or the Databricks SQL query editor:
CREATE RECIPIENT [IF NOT EXISTS] <recipient-name>
[COMMENT "<comment>"];
You can also add custom properties for the recipient. For details, see Manage recipient properties.
Run the following command using the Databricks CLI.
databricks recipients create <recipient-name>
You can also add custom properties for the recipient. For details, see Manage recipient properties.
Output includes the activation_url
that you share with the recipient.
O destinatário é criado com o authentication_type
de TOKEN
.
Ao criar o destinatário, você tem a opção de limitar o acesso do destinatário a um conjunto restrito de endereços IP. Você também pode adicionar uma lista de acesso IP a um destinatário existente. Consulte Restringir o acesso do destinatário do Delta Sharing usando listas de acesso IP (compartilhamento aberto).
Obtenha o link de ativação
Para obter o link de ativação do novo destinatário, o senhor pode usar o Catalog Explorer, o Databricks Unity Catalog CLI, ou o DESCRIBE RECIPIENT
SQL comando em um Databricks Notebook ou o editor de consultas Databricks SQL.
Se o destinatário já tiver feito o download do arquivo de credencial, o link de ativação não será retornado ou exibido.
Permissões necessárias : administrador do Metastore, usuário com o privilégio USE RECIPIENT
ou proprietário do objeto destinatário.
- Catalog Explorer
- SQL
- CLI
-
In your Databricks workspace, click
Catalog.
-
At the top of the Catalog pane, click the
gear icon and select Delta Sharing.
Alternatively, from the Quick access page, click the Delta Sharing > button.
-
On the Shared by me tab, click Recipients, and select the recipient.
-
On the recipient details page, copy the Activation link.
Run the following command in a notebook or the Databricks SQL query editor.
DESCRIBE RECIPIENT <recipient-name>;
Output includes the activation_link
.
Run the following command using the Databricks CLI.
databricks recipients get <recipient-name>
Output includes the activation_url
.
Conceder ao destinatário acesso a um compartilhamento
Depois de criar o destinatário e criar os compartilhamentos, você pode conceder ao destinatário acesso a esses compartilhamentos.
Para conceder acesso de compartilhamento aos destinatários, o senhor pode usar o Catalog Explorer, o Databricks Unity Catalog CLI, ou o comando GRANT ON SHARE
SQL em um Databricks Notebook ou o editor de consultas Databricks SQL.
Permissões necessárias : uma das seguintes opções:
- Administrador do Metastore.
- Permissões ou propriedade delegadas no compartilhamento e nos objetos do destinatário ((
USE SHARE
+SET SHARE PERMISSION
) ou proprietário do compartilhamento) E (USE RECIPIENT
ou proprietário do destinatário).
Para obter instruções, consulte gerenciar o acesso aos compartilhamentos de dados do Delta Sharing (para provedores).
Enviar ao destinatário suas informações de conexão
O senhor deve informar ao destinatário como acessar os dados que está compartilhando com ele. Use um canal seguro para compartilhar o link de ativação e um link para as instruções de uso.
O senhor pode fazer o download do arquivo de credenciais apenas uma vez. Os destinatários devem tratar a credencial de downloads como um segredo e não devem compartilhá-la fora de sua organização. Se você tiver dúvidas de que uma credencial pode ter sido tratada de forma insegura, você pode alternar a credencial de um destinatário a qualquer momento. Para obter mais informações sobre o gerenciamento de credenciais para garantir o acesso seguro do destinatário, consulte Considerações de segurança para tokens.
Gerenciar destinatário tokens
Se o senhor estiver compartilhando dados com um destinatário usando o fluxo de tokens de portador de compartilhamento aberto, talvez seja necessário girar os tokens desse destinatário. A rotação de tokens consiste em definir a expiração de um token existente e substituí-lo por um novo token e URL de ativação.
O senhor deve alternar os tokens de um destinatário e gerar um novo URL de ativação nas seguintes circunstâncias:
- Quando os tokens de destinatário existentes estão prestes a expirar.
- Se um destinatário perder o URL de ativação ou se ele for comprometido.
- Se a credencial for corrompida, perdida ou comprometida após ser baixada por um destinatário.
- Quando o senhor modifica o tempo de vida dos tokens de destinatário de um metastore. Consulte Modificar o tempo de vida dos tokens do destinatário.
Considerações de segurança para tokens
A qualquer momento, um destinatário pode ter no máximo dois tokens: um token ativo e um token rotacionado. Os tokens rotacionados são aqueles que foram definidos para expirar e serem substituídos pelos tokens ativos. Até que os tokens girados expirem, a tentativa de girar os tokens novamente resulta em um erro.
Ao girar os tokens de um destinatário, o senhor pode, opcionalmente, definir --existing-token-expire-in-seconds
como o número de segundos antes da expiração dos tokens do destinatário existente, ou seja, o que será girado. Se o senhor definir o valor como 0
, os tokens de destinatário existentes expiram imediatamente.
A Databricks recomenda que o senhor defina --existing-token-expire-in-seconds
como um período relativamente curto que dê à organização destinatária tempo para acessar o novo URL de ativação e, ao mesmo tempo, minimize o tempo em que o destinatário tem dois tokens ativos. Se o senhor suspeitar que os tokens de destinatário existentes estão comprometidos, o site Databricks recomenda forçá-los a expirar imediatamente.
Se a URL de ativação existente de um destinatário nunca tiver sido acessada, a rotação dos tokens existentes invalida essa URL de ativação e a substitui por uma nova.
Se todos os destinatários tokens tiverem expirado, a rotação dos tokens substitui o URL de ativação existente por um novo. Databricks recomenda que o senhor desative ou elimine imediatamente um destinatário cujos tokens tenham expirado.
Se um URL de ativação de destinatário for enviado inadvertidamente para a pessoa errada ou por um canal inseguro, a Databricks recomenda que o senhor:
- Revogue o acesso do destinatário ao compartilhamento.
- Gire o destinatário e defina
--existing-token-expire-in-seconds
como0
. - Compartilhe o novo URL de ativação com o destinatário pretendido por meio de um canal seguro.
- Depois que o URL de ativação for acessado, conceda ao destinatário acesso ao compartilhamento novamente.
Em situações extremas, em vez de girar os tokens do destinatário, o senhor pode soltar e recriar o destinatário.
Girar os tokens de um destinatário
Para girar os tokens de um destinatário, o senhor pode usar o Catalog Explorer ou o site Databricks Unity Catalog CLI.
Permissões necessárias : Proprietário do objeto destinatário.
- Catalog Explorer
- CLI
-
In your Databricks workspace, click
Catalog.
-
In the left pane, expand the Delta Sharing menu and select Shared by me.
-
At the top of the Catalog pane, click the
gear icon and select Delta Sharing.
Alternatively, from the Quick access page, click the Delta Sharing > button.
-
On the Shared by me tab, click Recipients, and select the recipient.
-
On the Details tab, under Token Expiration, click Rotate.
-
On the Rotate token dialog, set the token to expire either immediately or for a set period of time. For advice about when to expire existing tokens, see Security considerations for tokens.
-
Click Rotate.
-
On the Details tab, copy the new Activation link and share it with the recipient over a secure channel. See Get the activation link.
-
Run the following command using the Databricks CLI. Replace the placeholder values:
<recipient-name>
: the name of the recipient.<expiration-seconds>
: The number of seconds until the existing recipient token should expire. During this period, the existing token will continue to work. A value of0
means the existing token expires immediately. For advice about when to expire existing tokens, see Security considerations for tokens.
Bashdatabricks recipients rotate-token \
<recipient-name> \
<expiration-seconds> -
Get the recipient’s new activation link and share it with the recipient over a secure channel. See Get the activation link.
Modificar o tempo de vida dos tokens do destinatário
Se o senhor precisar modificar o tempo de vida dos tokens do destinatário do default para o seu Unity Catalog metastore, poderá usar o Catalog Explorer ou o Databricks Unity Catalog CLI.
O tempo de vida dos tokens de destinatário para os destinatários existentes não é atualizado automaticamente quando o senhor altera o tempo de vida dos tokens de destinatário do default para um metastore. Para aplicar o novo tempo de vida dos tokens a um determinado destinatário, o senhor deve girar os tokens. Consulte gerenciar destinatário tokens.
Permissões necessárias : administrador da conta.
- Catalog Explorer
- CLI
- Log in to the account console.
- In the sidebar, click
Catalog.
- Click the metastore name.
- Under Delta Sharing recipient token lifetime, click Edit.
- Enable Set expiration.
- Enter a number of seconds, minutes, hours, or days, and select the unit of measure.
- Click Save.
If you disable Set expiration, recipient tokens do not expire. Databricks recommends that you configure tokens to expire.
Run the following command using the Databricks CLI. Replace 12a345b6-7890-1cd2-3456-e789f0a12b34
with the metastore UUID, and replace 86400
with number of seconds before the recipient token expires. If you set this value to 0
, recipient tokens do not expire. Databricks recommends that you configure tokens to expire.
databricks metastores update \
12a345b6-7890-1cd2-3456-e789f0a12b34 \
--delta-sharing-recipient-token-lifetime-in-seconds 86400