Olá galera o/

Na postagem de hoje vamos aprender a realizar a integração do serviço do Azure Key Vault com o serviço do Azure Data Factory.

Primeiro vamos entender o que é o serviço do Azure Key Vault.

O Azure Key Vault é serviço de nuvem para armazenar e acessar segredos de maneira segura. Um segredo é qualquer coisa a qual você queira controlar rigidamente o acesso, como chaves de API, senhas, certificados ou chaves criptográficas. O serviço do Key Vault oferece suporte a dois tipos de contêineres: cofres e pools HSM (módulo de segurança de hardware) gerenciados. Os cofres oferecem suporte ao armazenamento de chaves, segredos e certificados apoiados por software e HSM. Os pools HSM gerenciados oferecem suporte apenas a chaves apoiadas por HSM.

Site da Microsoft

Mais informações do serviço através do site da Microsoft: >> LINK <<

Uma vez que entendemos um pouco sobre o Azure Key Vault, vamos executar algumas etapas pare realizar esta integração com sucesso.

1 – Provisionar o Azure Key Vault
2 – Configurar o Access Policies
3 – Configurar as Secrets
4 – Criar o Linked Service do Azure Key Vault dentro do Azure Data Factory
5 – Aplicar as secrets nos demais linked services existentes

Provisionando o Azure Key Vault

Com o portal do Azure aberto, vamos executar os seguintes passos:

1 – Clique no campo de busca e digite de o nome Key Vault
2- Nos serviços listados, selecione o Key Vaults

A lista de Key Vaults existentes será exibida. Caso não existam Key Vaults criadas, está lista aparecerá em branco.

1 – Para criar uma nova Key Vault, clique na opção Create.

A tela de criação da key vault é exibida, vamos executar os passos abaixo para configurar a mesma:

1 – Selecionar sua subscription. Neste caso, estou utilizando minha subscription do MCT Microsoft.

2 – Selecionar o resource group. Utilizei o resource group rg-postblog

3 – Informar qual nome sua key vault vai possuir. Eu coloquei o nome kv-postblog

4 – Selecionar a região que este recurso vai ficar armazenado. Selecionei East US 2

5 – Selecionar o tipo de precificação, você tem as opções standard e premium. Para este exemplo selecionei standard.

6 – Na opção soft-delete, o valor enabled já vem selecionado por padrão.

7 – Na opção de retenção, você pode configurar entre 7 e 90 dias, essa opção diz quantos dias os objetos da Key Vault ficarão retidos em um “lixeira temporária” até serem excluídos definitivamente. Deixei o valor padrão de 90 dias.

8 – Na opção purge protection você pode selecionar de Disabled ou Enabled, o que significa isso? Quando você marcar a opção disabled, significa que você pode excluir definitivamente seus objetos da key vault mesmo que o período de retenção ainda esteja vigente. Caso você marque a opção Enabled, significa que você não pode excluir definitivamente os objetos da key vault, ou seja, eles ficam protegidos até que o período de retenção seja atingido.

9 – Clicar no botão Next: Access Policy.

Na tela do Access Policy, podemos configurar quais os tipos de acesso, modelos de permissão e quais usuários ou aplicações vão ter acesso ao serviço da Key vault.

1 – Na opção Enable Access to, não vamos marcar nada.

2 – Na opção Permission model, selecionamos a opção Vault access policy.

3 – Percebam que um usuário foi adicionado por padrão, geralmente é o usuário de criação do serviço. O usuário vai possuir permissão pare fazer determinadas ações nas Keys, Secrets e Certificates. Podemos adicionar outros usuários durante a criação do Key Vault, porém, vamos aprender como realizar este procedimento com o serviço já provisionado posteriormente.

4 – Nas Keys Permissions – Vamos marcar todas as opções, lembrando que estou marcando porque o usuário de administração do serviço é o meu, caso outro usuário vá acessar o serviço, é necessário definir quais permissões cada usuário vai conter.

5 – Nas Secret Permissions – Vamos marcar todas as opções, lembrando que estou marcando porque o usuário de administração do serviço é o meu, caso outro usuário vá acessar o serviço, é necessário definir quais permissões cada usuário vai conter.

6 – Nas Certificate Permissions – Vamos marcar todas as opções, lembrando que estou marcando porque o usuário de administração do serviço é o meu, caso outro usuário vá acessar o serviço, é necessário definir quais permissões cada usuário vai conter.

7 – Após selecionar as permissões do usuário, clicamos no botão Next: Networking.

A lista de permissões da Key.

A lista de permissões da Secret.

A lista de permissões do Certificate.

Na opção Networking, realizar os seguintes passos:

1 – Connectivity method, marquei a opção padrão Public endpoint (all networks).

2 – Clicar no botão Next: Tags.

Na opção Tags, não vamos realizar nenhuma configuração.

1 – Clicar no botão Next: Review + Create.

Na opção Review + Create, é exibido um resumo de todas as configurações feitas nos passos anteriores, também é realizada uma verificação para a criação do Serviço.

1 – Uma vez com todos os itens validados, clicamos no botão create para provisionar o serviço.

O serviço do Azure Key Vault começará a ser provisionado.

1 – Precisamos aguardar o processo de provisionamento finalizar.

2 – Uma vez com o provisionamento completo, uma notificação é apresentada informando que o processo aconteceu com sucesso.

3 – Clicamos no botão Go to resource para acessar o serviço.

Na tela exibida, você poderá acessar informações do serviço, além configurar keys, secrets, certificates, access policies e muito mais.

Configurando o Access Policies – Adicionando o ADF como aplicativo

Com a tela do Azure Key Vault aberta, vamos configurar o Access Policies. No access policies podemos adicionar usuários e aplicativos que poderão acessar o serviço do Azure Key Vault, ou seja, para integramos outros serviços como Azure Data Factory, Azure Databricks, Azure Synapse Analytics é necessário que os mesmos sejam permitidos no ambiente da Key Vault. Para nosso cenário, vamos adicionar o Azure Data Factory como aplicativo para que seja possível a integração entre os dois serviços.

1 – Na seção Settings > Sekecuibanis Access Policies

2 – Clicamos em + Add Access Policy.

Na tela do Add access policy vamos configurar alguns itens.

1 – Na opção Configure from template (optional), Clicamos na lista para que sejam exibidas as permissões disponíveis.

2 – Uma lista de templates de permissões é exibida. Selecionei Key, Secret & Certificate Management. Essas são as permissões que o usuário ou aplicativo vão ter para os objetos do serviço da key vault.

Agora vamos adicionar o serviço do Azure Data Factory:

1 – Percebam que as permissões que antes estavam zeradas, agora foram preenchidas depois que a permissão do template foi selecionada.

2 – Na opção Select principal, clicamos em None Selected.

3 – A tela Principal é exibida ao lado das permissões. No campo de busca digite o nome do seu serviço Azure Data Factory. Percebam que quando coloquei o nome adf, os serviços do Azure Data Factory que começam com a palavra adf foram listados.

4 – Selecionei o serviço com nome adf-postblog.

5 – O serviço selecionado é exibido abaixo da seção Selected Items.

6 – Clicamos no botão Select.

Após configurar as permissões e quais usuários / aplicativos serão adicionados no Access Policy:

1 – Clicamos em ADD.

De volta a tela do Access Policies, percebam que agora possuímos na seção APPLICATION o nosso serviço do Azure Data Factory e na seção USER o meu usuário (usuário de criação do serviço).

1 – Clicamos no botão Save.

Com este procedimento o Azure Data Factory pode acessar os objetos do Azure Key Vault. Este procedimento deve ser realizado para qualquer serviço que precise utilizar o serviço do Azure Key Vault.

Criando as Secrets no Azure Key Vault

Agora vamos aprender a configurar nossas secrets dentro do Azure Key Vault. De volta ao grupo de recurso, vamos realizar os seguintes passos para configurar a secret do blob storage. Este procedimento também é o mesmo do Data Lake.

1 – Selecionar o serviço do Azure Storage Account

Na tela do Storage Account, vamos realizar os seguintes passos:

1 – Na seção Security + Networking, selecionar a opção Access keys.

2 – Clicar no botão Show Keys. Todas as chaves serão exibidas nas telas.

3 – Selecionamos o valor da opção Connection string. Copiamos o valor e salvamos temporariamente em um bloco de notas.

Faremos o mesmo passo a passo para o Azure SQL Database. Como não possuo nenhum Azure SQL neste grupo de recurso, fiz o seguinte procedimento:

1 – No menu lateral selecionei SQL Databases.

2 – Com as databases listadas, seleciono a database que eu quero. Neste caso, selecionei a database azuresql.

3 – Com a tela da database aberta, ir para a seção Settings e selecionar a opção Connection strings.

4 – Na lista de Connection strings exibidas, selecionamos ADO.NET. Porém, temos possibilidade de utilizar connections strings para JDBC, ODBC, PHP e GO.

5 – Copiamos o valor da connection string do Azure SQL. Salvamos temporariamente em um bloco de notas.

6 – Lembrar de alterar a senha da connection string, para a senha da sua database.

De volta a tela da Key Vault, vamos realizar os seguintes passos:

1 – Na seção Settings, selecionar a opção Secrets.

2 – Clicar no botão Generate / Import para criarmos uma secret.

Na tela de criação da secret vamos configurar os seguintes itens:

1 – Na opção Upload Options vamos selecionar o valor manual. Também existe o valor Certificate.

2 – Na opção Name vamos informar o nome da nossa secret. Eu coloquei o nome secretblobstorage.

3 – Na opção Value vamos informar o valor que requeremos aguardar dentro de nossa secret, podendo ser uma string de conexão, uma senha de banco de dados, chave de acesso do data lake e etc. Para o nosso exemplo, a secret secretblobstorage vai armazenar o valor da string de conexão do blob storage.

4 – Na opção Set Activation date não marcaremos nada. Este item é opcional. Esta opção define data e hora de ativação da secret, ou seja, a partir de qual data esta secret torna-se ativa.

5 – Na opção Set expiration date não marcaremos nada. Este item é opcional. Esta opção define data e hora de expiração da secret, ou seja, até aonde a mesma fica ativa.

6 – Na opção Enabled, deixaremos o valor Yes.

7 – Clicamos no botão create.

De volta a tela da Key Vault > Secrets, vamos criar uma nova secret.

1 – Percebam que a secret do blob storage criada anteriormente agora aparece na lista de secrets criadas.

2 – Clicamos novamente no botão Generate / Import para criarmos uma nova secret.

Na tela de criação da secret vamos configurar os seguintes itens:

1 – Na opção Upload Options vamos selecionar o valor manual. Também existe o valor Certificate.

2 – Na opção Name vamos informar o nome da nossa secret. Eu coloquei o nome secretsqldatabase.

3 – Na opção Value vamos informar o valor que requeremos aguardar dentro de nossa secret. Para o nosso exemplo, a secret secretsqldatabase vai armazenar o valor da string de conexão do azure sql database.

4 – Na opção Set Activation date não marcaremos nada. Este item é opcional. Esta opção define data e hora de ativação da secret, ou seja, a partir de qual data esta secret torna-se ativa.

5 – Na opção Set expiration date não marcaremos nada. Este item é opcional. Esta opção define data e hora de expiração da secret, ou seja, até aonde a mesma fica ativa.

6 – Na opção Enabled, deixaremos o valor Yes.

7 – Clicamos no botão create.

De volta a tela da Key Vault > Secrets, percebam que agora possuímos duas secrets, uma do Blob Storage e uma do Azure SQL Database.

Com este procedimento aprendemos a criar nossas secrets dentro do Azure Key Vault. As secrets vão armazenar os dados sensíveis de outros serviços, ou seja, quando você precisar utilizar esses dados em um código fonte ou deixar em uma configuração de conexão, você pode passar o nome da secret e está possui o valor necessário para a conexão ou parametrização, assim aumento o nível de segurança dos dados.

Criando o Linked Service do Azure Key Vault

A primeira parte do artigo focou em provisionamos nosso Azure Key Vault, configurar os serviços que podem acessar o recurso e criação das secrets, agora vamos criar o Linked Service no Azure Key Vault para que os dois serviços consigam se comunicar. Para realizar este procedimento, vamos executar os seguintes passos:

1 – Clicar no Manage (ícone da maleta com uma ferramenta)

2 – Na seção Connections, clicamos em Linked Services. Todos os linked services existentes são exibidos.

3 – Clicamos em NEW para criarmos um novo Linked Service.

Na tela de criação do linked Service, vamos realizar os seguintes passos:

1 – Procurar o conector do Azure Key Vault e selecionar o mesmo.

2 – Clicar no botão continue.

3 – Na opção Name, devemos informar o nome do linked service. Coloquei o nome ls_key_vault.

4 – Na opção Azure key vault selection method selecionamos From Azure Subscription.

5 – Na opção Azure subscription selecionamos a nossa subscription, eu selecionei minha assinatura do MCT da Microsoft.

6 – Na opção Azure key vault name devemos selecionar a key vault que provisionamos. No nosso caso a key vault kv_postblog.

7 – Clicamos em Test connection. Se tudo foi configurado corretamente desde o começo, o teste vai exibir uma mensagem de sucesso, caso não, será exibida uma mensagem de erro.

8 – Clicamos no botão create.

Após finalizar a criação do Linked Service com a key vault, percebam que um novo linked service foi adicionado na lista de linked services do ADF.

Aplicando as Secrets nos Linked Services do Azure SQL e Blob Storage

Agora que possuímos o linked Service com a key vault, vamos configurar os demais linked services para consumir as informações de acesso aos seus determinados serviços a partir das secrets.

1 – Primeiro vamos configurar o linked Service do Blob Storage.

2 – Depois vamos configurar o linked Service do Azure SQL Database.

Ao clicar no linked Service do Blob Storage, na lateral direta será exibida a tela de edição do linked service. Percebam que a imagem da esquerda é o linked service com sua configuração original e a da direito é a configuração após a utilização da secret da key vault. Para configurar o linked service, vamos realizar os seguintes passos.

1 – Mudar o Authentication method de Connection String para Azure Key Vault.

2 – Ao mudar o Authentication method a opção AKV linked service é habilitada. Vamos selecionar o linked service criado anteriormente.

3 – Na opção Secret Name devemos informar o nome da nossa secret que armazena as informações da string de conexão do blob storage. Para o nosso cenário, informei a secret com nome secretblobstorage.

4 – Clicamos em Test connection. Se tudo foi configurado corretamente desde o começo, o teste vai exibir uma mensagem de sucesso, caso não, será exibida uma mensagem de erro.

5 – Clicamos no botão Save para salvar as mudanças realizadas.

Ao clicar no linked Service do Azure SQL Database, na lateral direta será exibida a tela de edição do linked service. Percebam que a imagem da esquerda é o linked service com sua configuração original e a da direito é a configuração após a utilização da secret da key vault. Para configurar o linked service, vamos realizar os seguintes passos.

1 – Mudar o Authentication method de Connection String para Azure Key Vault.

2 – Ao mudar o Authentication method a opção AKV linked service é habilitada. Vamos selecionar o linked service criado anteriormente.

3 – Na opção Secret Name devemos informar o nome da nossa secret que armazena as informações da string de conexão do azure sql database. Para o nosso cenário, informei a secret com nome secretsqldatabase.

4 – Na opção Authentication Type devemos deixar o valor SQL.

5 – Clicamos em Test connection. Se tudo foi configurado corretamente desde o começo, o teste vai exibir uma mensagem de sucesso, caso não, será exibida uma mensagem de erro.

6 – Clicamos no botão Save para salvar as mudanças realizadas.

Após criamos o linked service com a key vault e alteramos os demais linked services para consumirem as informações de conexão a patir das secrets armazenadas na key vault, vamos publicar as alteração.

Clicamos em publish all.

Na tela do Publish All serão exibidos os itens que foram criados e/ou alterados. Clicamos em Publish.

Aguardamos a publicação ser finalizada. Ao final do processo, uma notificação será exibida informando que a publicação foi realizada com sucesso.

Após a publicação finalizada com sucesso, todas as alterações feitas no ambiente do ADF foram salvas.

Hoje aprendemos a:

1 – Provisionar um Azure Key Vault.
2 – Configurar quais usuários ou serviços podem acessar os objetos da Key Vault.
3 – Criar secrets para aumentar o nível de segurança das nossas informações.
4 – Criar um linked service para a Key Vault dentro do ambiente do Azure Data Factory.
5 – Utilizar o valor das secrets como parâmetros de conexão nos linked services do ADF.

Atenção: Se você esta com uma conta gratuita, pay-as-you-go ou de estudante, não esquecer de apagar os recursos criados nesta postagem. Para contas de estudante e gratuita a exclusão dos recursos evita o consumo dos créditos disponíveis, além disso, evita que aconteça cobrança indevida em sua subscription (assinatura). Para a conta pay-as-you-go é cobrado do cartão de crédito conforme o uso dos serviços, então, recomendo apagar para não gerar cobrança no seu cartão de crédito.

Espero que tenham gostado desta postagem, vou fazer mais postagens técnicas sobre data factory. Aguardem que 2021 vai ter muito conteúdo legal no blog.

Desejo a todos uma boa leitura, boa prática e bons estudos.

Para quem quer estudar:

  • Curso preparatório para Certificação Microsoft MTA Database Fundamentals | BD Relacional e Linguagem T-SQL.
    • Segue o link do curso na Udemy. >> LINK <<
  • Curso Azure Databases para Iniciantes
    • Segue o link do curso na Udemy. >> LINK <<
  • Curso Azure Data Factory para Iniciantes
    • Segue o link do curso na Udemy. >> LINK <<

Não se esqueçam de avaliar esta postagem através da ESTRELAS abaixo das redes sociais, isso vai me ajudar muito a melhorar as postagens.

Quem quiser mandar comentários, sugestões, criticas e complementos, fiquem a vontade, pois feedbacks positivos ou negativos engradecem meu conhecimento para que possa melhorar as postagem para vocês.

Até a próxima o/

Acessem nossas Redes Sociais: