Criar uma credencial de armazenamento para se conectar ao Google Cloud Storage
Este artigo descreve como criar uma credencial de armazenamento no Unity Catalog para conectar ao Google Cloud Storage.
Para gerenciar o acesso ao armazenamento de cloud subjacente que contém tabelas e volumes, o Unity Catalog utiliza os seguintes tipos de objeto:
- As credenciais de armazenamento encapsulam uma credencial de nuvem de longo prazo que oferece acesso ao armazenamento na nuvem.
- Os locais externos contêm uma referência a uma credencial de armazenamento e um caminho de armazenamento na nuvem.
Para obter mais informações, consulte gerenciar o acesso ao armazenamento em nuvem usando Unity Catalog.
Unity Catalog oferece suporte a três opções de armazenamento em nuvem para Databricks on Google Cloud: Google Cloud Storage (GCS) buckets, Cloudflare R2 buckets e DBFS root. O Cloudflare R2 destina-se principalmente a casos de uso do Delta Sharing em que o senhor deseja evitar taxas de saída de dados. O GCS é adequado para a maioria dos outros casos de uso. Este artigo se concentra na criação de credenciais de armazenamento para GCS. Para o Cloudflare R2, consulte Criar uma credencial de armazenamento para se conectar ao Cloudflare R2.
DBFS A raiz é usada para controlar o acesso ao seu DBFS root. Embora o site Databricks recomende que os dados não sejam armazenados no armazenamento DBFS root, é possível que o seu workspace faça isso devido a práticas herdadas. Para a raiz DBFS, consulte Criar um local externo para os dados em DBFS root.
Para criar uma credencial de armazenamento para acesso a um bucket do GCS, você concede ao Unity Catalog a capacidade de ler e gravar no bucket atribuindo um IAM role nesse bucket a uma conta de serviço do Google Cloud gerada pelo Databricks.
Requisitos
No Databricks:
- Um workspace do Databricks ativado para o Unity Catalog.
CREATE STORAGE CREDENTIAL
privilégio no metastore do Unity Catalog anexado ao workspace. Os administradores de contas e administradores do metastore têm esse privilégio por padrão.
Na sua conta do Google Cloud:
- Um balde GCS. Para evitar cobranças de saída, ele deve estar na mesma região que o workspace a partir do qual o senhor deseja acessar os dados.
- Permissão para modificar a política de acesso para esse bucket.
Gerar um serviço do Google Cloud account usando o Catalog Explorer
-
Faça login em seu workspace do Databricks habilitado para o Unity Catalog como um usuário que tenha a permissão
CREATE STORAGE CREDENTIAL
no metastore.As funções de administrador do metastore e administrador da account incluem essa permissão.
-
Na barra lateral, clique em
Catálogo .
-
Na página Quick access (Acesso rápido ), clique no botão External data (Dados externos) > , acesse Credentials (Credenciais ) tab e selecione Create credential (Criar credencial ).
-
Selecione um tipo de credencial da conta do serviçoGCP .
-
Digite um nome de credencial de armazenamento e um comentário opcional.
-
(Opcional) Se você quiser que os usuários tenham acesso somente para leitura aos locais externos que usam essa credencial de armazenamento, selecione Somente leitura. Para obter mais informações, consulte Marcar uma credencial de armazenamento como somente leitura.
-
Clique em Criar .
O Databricks cria a credencial de armazenamento e gera uma conta de serviço do Google Cloud.
-
Na caixa de diálogo Credencial de armazenamento criada , anote a ID da conta de serviço, que está na forma de um endereço de e-mail, e clique em Concluído .
-
(Opcional) Vincule a credencial de armazenamento a workspaces específicos.
Em default, qualquer usuário privilegiado pode usar a credencial de armazenamento em qualquer workspace anexado ao metastore. Se o senhor quiser permitir o acesso somente a partir de um espaço de trabalho específico, acesse o espaço de trabalho tab e atribua o espaço de trabalho. Consulte (Opcional) Atribuir uma credencial de armazenamento a um espaço de trabalho específico.
Configurar permissões para o serviço account
-
Acesse o console do Google Cloud e abra o bucket do GCS ao qual você deseja acessar a partir do seu workspace do Databricks.
Para evitar cobranças de saída, o bucket deve estar na mesma região que o workspace a partir do qual o senhor deseja acessar os dados.
-
Na guia Permissão , clique em + Conceder acesso e atribua à conta de serviço as seguintes funções:
- Leitor de bucket de armazenamento legado
- Administrador de objetos de armazenamento
Use o endereço de e-mail da conta de serviço como identificador principal.
Configurar permissões para eventos de arquivo
Essa etapa é opcional, mas altamente recomendada. Se o senhor não conceder acesso ao Databricks para configurar eventos de arquivo em seu nome, deverá configurar os eventos de arquivo manualmente para cada local. Caso contrário, o senhor terá acesso limitado a recursos críticos que o site Databricks poderá liberar no futuro.
As etapas abaixo permitem que a Databricks configure um pipeline de notificação completo para publicar mensagens de notificação de eventos dos seus buckets do GCS no Google Cloud Pub/Sub. Eles pressupõem que o senhor tenha um projeto GCP com um bucket GCS e tenha ativado a API Pub/Sub.
-
Crie um IAM role personalizado para eventos de arquivo.
-
No console do Google Cloud para o projeto que contém seu bucket GCS, navegue até IAM & Admin > Roles .
-
Se o senhor já tiver um IAM role personalizado, selecione-o e clique em Edit Role (Editar função ). Caso contrário, crie uma nova função clicando em + Criar função na página Funções .
-
Na tela Create Role (Criar função ) ou Edit Role (Editar função ), adicione as seguintes permissões ao seu IAM role personalizado e salve as alterações. Para obter instruções detalhadas, consulte a documentação do GCP.
pubsub.subscriptions.consume
pubsub.subscriptions.create
pubsub.subscriptions.delete
pubsub.subscriptions.get
pubsub.subscriptions.list
pubsub.subscriptions.update
pubsub.topics.attachSubscription
pubsub.topics.create
pubsub.topics.delete
pubsub.topics.get
pubsub.topics.list
pubsub.topics.update
storage.buckets.update
-
-
Conceda acesso à função.
- Navegue até o IAM & Admin > IAM .
- Clique em Conceder acesso .
- Informe seu serviço account como o principal.
- Selecione seu site personalizado IAM role.
- Clique em Salvar .
-
Conceder permissões ao agente do serviço de armazenamento em nuvem
- Encontre o agente de serviço account email seguindo estas etapas na documentação do Google Cloud.
- No console do Google Cloud, navegue até IAM & Admin > IAM > Grant Access (Conceder acesso ).
- Digite o agente de serviço account email e atribua a função Pub/Sub Publisher* .
Agora você pode criar um local externo que faça referência a essa credencial de armazenamento.
(Opcional) Atribuir uma credencial de armazenamento a um espaço de trabalho específico
Por padrão, uma credencial de armazenamento pode ser acessada de todos os workspaces na metastore. Isso significa que, se um usuário tiver recebido um privilégio (como CREATE EXTERNAL LOCATION
) nessa credencial de armazenamento, ele poderá exercer esse privilégio em qualquer workspace vinculado ao metastore. Se você usar workspaces para isolar o acesso aos dados do usuário, talvez queira permitir o acesso a uma credencial de armazenamento somente de workspaces específicos. Esse recurso é conhecido como vinculação de workspace ou isolamento de credenciais de armazenamento.
Um caso de uso típico para vincular uma credencial de armazenamento a workspaces específicos é o cenário em que um administrador de cloud configura uma credencial de armazenamento usando uma credencial de conta de cloud de produção, e você deve garantir que os usuários do Databricks usem essa credencial para criar locais externos somente no workspace de produção.
Para obter mais informações sobre a vinculação workspace, consulte (Opcional) Atribuir um local externo a um espaço de trabalho específico e Limitar o acesso ao catálogo a um espaço de trabalho específico.
As vinculações de workspace são referenciadas quando os privilégios sobre as credenciais de armazenamento são exercidos. Por exemplo, se um usuário criar uma localização externa usando uma credencial de armazenamento, a vinculação de workspace na credencial de armazenamento é verificada apenas quando a localização externa é criada. Depois que a localização externa é criada, ela funcionará independentemente das vinculações de workspace configuradas na credencial de armazenamento.
Vincular uma credencial de armazenamento a um ou mais espaços de trabalho
Para atribuir uma credencial de armazenamento a espaços de trabalho específicos, você pode usar o Catalog Explorer ou a CLI da Databricks.
Permissões necessárias : administrador da Metastore, proprietário da credencial de armazenamento ou MANAGE
na credencial de armazenamento.
Os administradores do metastore podem ver todas as credenciais de armazenamento em um metastore usando o Catalog Explorer, e os proprietários de credenciais de armazenamento podem ver todas as credenciais que possuem em um metastore, independentemente de a credencial estar atribuída ao workspace atual. As credenciais de armazenamento que não estão atribuídas ao workspace aparecem esmaecidas.
- Catalog Explorer
- CLI
-
Log in to a workspace that is linked to the metastore.
-
In the sidebar, click
Catalog.
-
On the Quick access page, click the External data > button and go to the Credentials tab.
-
Select the storage credential and go to the Workspaces tab.
-
On the Workspaces tab, clear the All workspaces have access checkbox.
If your storage credential is already bound to one or more workspaces, this checkbox is already cleared.
-
Click Assign to workspaces and enter or find the workspaces you want to assign.
To revoke access, go to the Workspaces tab, select the workspace, and click Revoke. To allow access from all workspaces, select the All workspaces have access checkbox.
There are two Databricks CLI command groups and two steps required to assign a storage credential to a workspace.
In the following examples, replace <profile-name>
with the name of your Databricks authentication configuration profile. It should include the value of a personal access token, in addition to the workspace instance name and workspace ID of the workspace where you generated the personal access token. See Databricks personal access token authentication.
-
Use the
storage-credentials
command group’supdate
command to set the storage credential’sisolation mode
toISOLATED
:Bashdatabricks storage-credentials update <my-storage-credential> \
--isolation-mode ISOLATED \
--profile <profile-name>The default
isolation-mode
isOPEN
to all workspaces attached to the metastore. -
Use the
workspace-bindings
command group’supdate-bindings
command to assign the workspaces to the storage credential:Bashdatabricks workspace-bindings update-bindings storage-credential <my-storage-credential> \
--json '{
"add": [{"workspace_id": <workspace-id>}...],
"remove": [{"workspace_id": <workspace-id>}...]
}' --profile <profile-name>Use the
"add"
and"remove"
properties to add or remove workspace bindings.
Read-only binding (BINDING_TYPE_READ_ONLY
) is not available for storage credentials. Therefore there is no reason to set binding_type
for the storage credentials binding.
To list all workspace assignments for a storage credential, use the workspace-bindings
command group’s get-bindings
command:
databricks workspace-bindings get-bindings storage-credential <my-storage-credential> \
--profile <profile-name>
Desvincular uma credencial de armazenamento de um workspace
As instruções para revogar o acesso workspace a uma credencial de armazenamento usando o Catalog Explorer ou o grupo de comando workspace-bindings
CLI estão incluídas em Vincular uma credencial de armazenamento a um ou mais espaços de trabalho.
Próximas etapas
O senhor pode view, atualizar, excluir e conceder a outros usuários permissão para usar as credenciais de armazenamento. Consulte gerenciar credenciais de armazenamento.
Você pode definir locais externos usando credenciais de armazenamento. Consulte Criar um local externo para conectar o armazenamento em nuvem à Databricks.