[PT]-The Secret behind Databricks and Storage Account — I

Flávio Farias
4 min readMar 27, 2020

--

Azure Databricks — KeyVault — Azure DataLake Storage — MVPBuzz

Fiz um treinamento muito bom sobre Azure Databricks com o Luan Moreno, e no decorrer do curso fui tentar criar uma conexão entre o Databricks e o Azure DataLake, através de uma forma mais segura para tentar reduzir as possibilidades de falhas de segurança, por que o modo mais comum e que mais tenho visto é com plain text direto no notebook e visivel para todo mundo. No entanto para muita gente familiarizada com Bricks, CLI, Linux e Azure pode parecer muito simples esse processo encontrei alguma dificuldade com a documentação oficial, e a dificuldade ocorreu por que era necessário algum conhecimento prévio sobre um determinado recurso ou ter feito algum passo anterior que não estava claro, então depois de alguma pesquisa, resolvi consolidar os pontos que me ajudaram a resolver o problema de uma vez por todas.

Existem dois caminhos para configurar o Databricks para utilizar uma conexão segura com o DataLake, a primeira é usando o Azure KeyVault e a outra forma é usando o Databricks-CLI, nesse artigo vou mostrar como realizar esse processo utilizando o Azure KeyVault.

Alguns componentes devem ser criados anteriormente e não está no escopo desse artigo o processo de instalação deles.

  • Resource Group, Storage Account, Azure DataBricks.

“Segredos” com Azure KeyVault

Inicialmente vamos precisar da Key da Storage Account que já deve ter sido criada anteriormente, e para isso vamos até o storage e clicamos na opção Access Keys.

Eu prefiro SEMPRE usar a Key2 e manter a Key1 como backup, acredito ser uma boa forma de governança dos dados e não faço confusão.

Vamos copiar a chave para podermos usar no KeyVault a ser criado logo em seguida.

A instalação do KeyVault cobre as inúmeras possibilidades do recurso, mas sim configurar de uma maneira mais global para a demonstração do exemplo principal.

  • Criando o Azure KeyVault

Localize o recurso chamado Key Vault no Azure.

Clique em Create

Basta clicar em Review + Create para criar o recurso.

Após a criação do KeyVault, vamos clicar em Segrets e em seguida vamos clicar em Generate/Import

Agora é necessário criar efetivamente o nosso segredo, podemos atribuir qualquer nome, mas o campo Value deve conter o valor da Key2 que copiamos da Storage Account.

Feito isso, é hora de configurar o Databricks para utilizar o Keyvault.

A maneira de fazer isso é através da URL a seguir:

https://<your_azure_databricks_url>#secrets/createScope

Esse é o meu exemplo

Scope Name: Escolha um nome de fácil associação com o ambiente.

Manage Principal: Existem duas opções: Creator vai funcionar apenas para o criador do secret scope e All Users que vai funcionar para todos os usuários do Workspace.

A opções seguintes são localizadas na opção Properties do KeyVault criado anteriormente.

DNS Name: É o DNS do KeyVault

Resource ID: É encontrado na opção

Voltando ao Storage Account que copiamos a Key, vamos agora criar um container.

Após a criação do container, vamos testar se está funcionando através do Databricks.

Onde o scope é o mesmo que criamos anteriormente e a key é o segredo que criamos no KeyVault.

Nessa primeira parte do passo a passo de como conectar o Databricks no Azure Data Lake, percebemos uma simplicidade no processo, porém muitas vezes negligenciado, no próximo artigo vou mostrar como realizar o mesmo processo, mas utilizando o Databricks-CLI, o notebook com os exemplos está no github logo a seguir.

Que a força esteja com vocês.

Referencias.

--

--