black farmed eyeglasses in front of laptop computer
Azure Projetos

#02 – [Projeto Data Pipeline] – Azure Server SFTP

#Azure #DataPipeline

Oláá Tuurma,

Após um longo tempo (2 meses) vamos retomar com os posts do Projeto Data Pipeline (se você não sabe do que estou falando, da uma olhada neste link).

Vamos começar do começo, o Projeto consiste em criar um cenário com vários tipos de origens de dados e realizar a ingestão disso tudo em um Data Lake simulando bem o mundo real, inclusive, além de várias origens vamos criar vários tipos de dado (relacional, json, csv, cdc, nosql, etc) e orquestrar as ingestões de batch e streaming.

Bora lá, vamos criar o SFTP… mas antes para quem não conhece:

Resumindo, SFTP, acrônimo de Secure File Transfer Protocol é um protocolo utilizado para realizar transferência de arquivos de modo seguro entre dois pontos. É muito utilizado em arquiteturas que demandam necessidade de integrações externas, entre a sua empresa e um parceiro/fornecedor. A autenticação do SFTP é via SSH (Secure Shell) e a porta padrão é a 22.

Criando a Azure VM para o SFTP Server

Como aqui é um projeto que pretendo colocar todo o código no Github, vou criar uma VM no Azure para realizar a instalação do servidor SFTP.

Esse SFTP vai servir como porta de entrada para integrar (ingestão) de alguns dados que vou criar posteriormente. Por exemplo. Podemos simular uma NF-e (Nota Fiscal Eletrônica) que normalmente é um arquivo json e ai criamos um sistema para simular a geração de algumas NFEs e salvar no SFTP, para que sirva como landing para o processo de ingestão do nosso Data Lake.

Bora, uma vez no Azure, inicie a criação da VM (menu Virtual Machine).

Essa é a configuração inicial da minha VM, nesse caso estou usando uma maquina Linux (CentOs) pois quero aproveitar e relembrar alguns comando, porem, você pode tentar criar o seu SFTP no Windows.

Não esqueça de habilitar a porta 22 para conexão com o SSH.

Após seguir os passos até o final é só aguardar a criação da sua VM. Um ponto importante é sobre o IP, como pretendemos utilizar esse maquina como um “servidor” é interessante deixar o IP como static, caso contrário, toda vez que você reiniciar a VM, ela atribuirá um IP diferente e pode quebrar o seu processo de ingestão.

Configurando o SFTP na VM Linux

Com a VM no online, vamos conectar nela… como é um Linux, vamos fazer isso via PUTTY

“Tamo dentro” uma vez conectado… bora começar a brincadeira:

Vamos criar um grupo e um usuário que terá acesso ao SFTP. No mundo real, normalmente utilizamos uma conta para cada origem, dando as permissões devidas. Isso garante que o parceiro A não leia os dados do parceiro B. Aqui no nosso caso, vou criar somente um grupo e já era 😉

Criando o grupo

sudo groupadd sftp_project

Criando o usuário “usrsftp” no grupo “sftp_project”

sudo useradd -g sftp_project -d /transfer -s /sbin/nologin usrsftp

Definindo uma senha para o usuário “usrsftp”

sudo passwd usrsftp

Agora, vamos editar o arquivo sshd_config para incluir as configurações do nosso servidor SFTP. Como é no Linux essa edição é pelo VIM, no Windows seria basicamente alterar um txt com o botão direito rsrs., vamos lá

sudo nano /etc/ssh/sshd_config

Procure pelo trecho de código “override default of no subsystems” e faça o seguinte.

  1. Comente a linha que existe no seu arquivo
  2. Inclua o comando “Subsystem sftp internal-sftp”

No final do arquivo, inclua esse comando que é a configuração do SFTP para o grupo que criamos no inicio. Do jeito que colocamos “/sftp/%u” garantimos que todo usuário que pertence ao grupo “sftp_project” irá abrir o SFTP no diretório correto.

Criando os diretórios internos.

sudo mkdir -p /sftp/usrsftp/transfer
sudo chown usrsftp:sftp_project /sftp/usrsftp/transfer

Nesse ponto, nosso serviço SFTP já está configurado. Vamos dar um restart só para garantir que as modificações foram aplicadas:

sudo service sshd restart

Blzz, nosso SFTP está pronto, podemos acessar rapidamente de duas formas

  1. Via linha de comando (Coloque o usuário que você criou e o IP da VM).
    Ao executar esse comando você entrará no SFTP e caíra no diretório que você criou/determinou.
sftp usrsftp@SeuIP

2. A segunda forma, é via o FileZilla, que é bem simples e muito utilizado no dia a dia.. basta colocar o IP, Login, senha e a porta.

Ao conectar com sucesso, do lado esquerdo você terá acesso ao diretório do seu computador local, do lado direito, você terá acesso ao SFTP e para transferir arquivo de um lado para o outro (manualmente), basta arrastar.. e um arquivo da sua maquina local será transferido para o SFTP (Linux). Claro, que para o nosso projeto vamos automatizar essa transferência.. exatamente para simular o mundo real.

No vídeo abaixo, eu transfiro alguns arquivos da minha maquina local para o SFTP e no Linux eu confirmo se o arquivo está no diretório correto.. da uma olhadinha:

Por hoje é isso galera, brinquem com o SFTP, mova arquivos, quebre, recrie.. aproveita que você está em um ambiente seguro e faça tudo sem medo de ser chamado no RH 🙂 hahaha

Até o próximo post Turminha…

Abraços
Garetti

0 comentário em “#02 – [Projeto Data Pipeline] – Azure Server SFTP

Comente sobre isso: