Suporte ao protocolo SFTP para o Armazenamento de Blobs do Azure (versão prévia)
O Armazenamento de blobs agora dá suporte ao SFTP (Protocolo FTP SSH). Esse suporte possibilita a conexão segura a contas do Armazenamento de Blobs do Azure por meio de um ponto de extremidade SFTP, permitindo que você use o SFTP para acessar, transferir e gerenciar arquivos.
Importante
O suporte ao SFTP está atualmente em VERSÃO PRÉVIA e está disponível em contas de blob de blocos premium e v2 de uso geral. Conclua este formulário ANTES usando o recurso na versão prévia. O registro por meio de 'recursos de visualização' NÃO é necessário e o email de confirmação NÃO será enviado após o preenchimento do formulário. Você pode acessar IMEDIATAMENTE o recurso.
Depois de testar seus cenários de ponta a ponta com o SFTP, compartilhe sua experiência por meio desse formulário.
Veja os Termos de Uso Complementares para Versões Prévias do Microsoft Azure para obter termos legais que se aplicam aos recursos do Azure que estão em versão beta, versão prévia ou que, de outra forma, ainda não foram lançados em disponibilidade geral.
O Azure permite a transferência segura de dados para contas de Armazenamento de Blobs usando a API REST do serviço Blob do Azure, os SDKs do Azure e ferramentas como o AzCopy. No entanto, as cargas de trabalho herdadas geralmente usam protocolos de transferência de arquivos tradicionais, como o SFTP. Você pode até atualizar aplicativos personalizados para usar a API REST e os SDKs do Azure, mas só se fizer alterações significativas no código.
Antes do lançamento desse recurso, se você quisesse usar o SFTP para transferir dados para o Armazenamento de Blobs do Azure, seria preciso comprar um produto de terceiros ou orquestrar sua própria solução. Para soluções personalizadas, você teria que criar VMs (máquinas virtuais) no Azure para hospedar um servidor SFTP e, em seguida, atualizar, corrigir, gerenciar, dimensionar e manter uma arquitetura complexa.
Agora, com o suporte do SFTP para o Armazenamento de Blobs do Azure, você pode habilitar um ponto de extremidade SFTP para contas de Armazenamento de Blobs com uma único clique. Em seguida, você pode configurar identidades de usuário locais para autenticação para se conectar à sua conta de armazenamento com o SFTP por meio da porta 22.
Este artigo descreve o suporte do SFTP para o Armazenamento de Blobs do Azure. Saiba como habilitar o SFTP em sua conta de armazenamento em Conectar-se ao Armazenamento de Blobs do Azure usando o SFTP (protocolo FTP SSH) (versão prévia).
SFTP e o namespace hierárquico
O suporte ao SFTP requer que o namespace hierárquico seja habilitado. O namespace hierárquico organiza os objetos (arquivos) em uma hierarquia de diretórios e subdiretórios da mesma forma que o sistema de arquivos no seu computador é organizado. O namespace hierárquico dimensiona linearmente e não prejudica a capacidade ou o desempenho dos dados.
Protocolos diferentes têm suporte no namespace hierárquico. O SFTP é um desses protocolos disponíveis.
Modelo de permissão SFTP
O Armazenamento de Blobs do Azure não dá suporte à autenticação ou autorização do Azure AD (Azure Active Directory) por SFTP. Em vez disso, o SFTP utiliza uma nova forma de gerenciamento de identidade chamada usuários locais.
Os usuários locais devem usar uma senha ou uma credencial de chave privada SSH (Secure Shell) para autenticação. É possível ter no máximo 1.000 usuários locais para uma conta de armazenamento.
Para configurar permissões de acesso, crie um usuário local e escolha os métodos de autenticação. Em seguida, para cada contêiner em sua conta, você pode especificar o nível de acesso que deseja dar a esse usuário.
Cuidado
Os usuários locais não interoperam com outros modelos de permissão de armazenamento do Azure, como RBAC (controle de acesso baseado em função), ABAC (controle de acesso baseado em atributo) e ACLs (listas de controle de acesso).
Por exemplo, Jeff tem permissão somente leitura (pode ser controlada por meio de RBAC, ABAC ou ACLs) por meio de sua identidade Azure AD para arquivo foo.txt armazenado em contêiner con1. Se Jeff estiver acessando a conta de armazenamento por meio do NFS (quando não estiver montado como raiz/superusuário), o REST do Blob ou Data Lake Storage Gen2 REST, essas permissões serão impostas. No entanto, se Jeff também tiver uma identidade de usuário local com permissão de exclusão para dados no contêiner con1, ele poderá excluir foo.txt via SFTP usando a identidade do usuário local.
Para contas de armazenamento habilitadas para SFTP, você pode usar toda a amplitude das configurações de segurança do Armazenamento de Blobs do Azure para autenticar e autorizar usuários que acessam o Armazenamento de Blobs por meio do portal do Azure, da CLI do Azure, de comandos do Azure PowerShell, AzCopy, bem como SDKs do Azure e APIs REST do Azure. Para obter mais informações, consulte Modelo de controle de acesso no Azure Data Lake Storage Gen2.
Métodos de autenticação
Você pode autenticar usuários locais que se conectam via SFTP usando uma senha ou um par de chaves público-privadas SSH (Secure Shell). É possível configurar ambas as formas de autenticação e permitir que os usuários locais conectados escolham qual usar. No entanto, não há suporte para a autenticação multifator, em que uma senha válida e um par de chaves públicas/privadas válido são necessários para uma autenticação bem-sucedida.
Senhas
Você não pode definir senhas personalizadas, em vez disso, o Azure gera uma para você. Se você escolher a autenticação de senha, sua senha será fornecida depois de concluir a configuração de um usuário local. Copie essa senha e salve-a em um local em que você possa encontrá-la posteriormente. Não será possível recuperar essa senha do Azure novamente. Se você perder a senha, será preciso gerar uma nova. Por motivos de segurança, você não pode definir a senha por conta própria.
Pares de chaves SSH
Um par de chaves públicas/privadas é a forma de autenticação SSH (Secure Shell) mais comum. A chave privada é secreta e deve ser conhecida apenas pelo usuário local. A chave pública é armazenada no Azure. Quando um cliente SSH se conecta à conta de armazenamento usando uma identidade de usuário local, ele envia uma mensagem com a chave privada e a assinatura. O Azure valida a mensagem e verifica se o usuário e a chave são reconhecidos pela conta de armazenamento. Saiba mais em Visão geral sobre SSH e chaves.
Se você optar pela autenticação com um par de chaves públicas/privadas, poderá gerar uma, usar uma já armazenada no Azure ou fornecer a chave pública ao Azure de um par de chaves públicas/privadas existente.
Permissões do contêiner
Na versão atual, você pode especificar apenas permissões no nível do contêiner. Não há suporte para permissões no nível do diretório. Você pode escolher a quais contêineres deseja conceder acesso e que nível de acesso deseja fornecer (Ler, Gravar, Listar, Excluir e Criar). Essas permissões se aplicam a todos os diretórios e subdiretórios no contêiner. Você pode conceder acesso a até 100 contêineres para cada usuário local. As permissões de contêiner também podem ser atualizadas após a criação de um usuário local. A tabela a seguir descreve cada permissão mais detalhadamente.
Permissão | Símbolo | Descrição |
---|---|---|
Ler | r | |
Gravar | w | |
Lista | l | |
Excluir | d | |
Criar | c |
Ao executar operações de gravação em blobs em subdiretórios, a permissão de leitura é necessária para abrir o diretório e acessar as propriedades do blob.
Diretório base
Ao configurar permissões, você tem a opção de definir um diretório base para o usuário local. Se nenhum outro contêiner for especificado em uma solicitação de conexão SFTP, esse será o diretório ao qual o usuário se conectará por padrão. Por exemplo, considere a solicitação a seguir feita usando o Open SSH. Essa solicitação não especifica um nome de contêiner ou diretório como parte do comando sftp
.
sftp myaccount.myusername@myaccount.blob.core.windows.net
put logfile.txt
Se você definir o diretório inicial de um usuário como mycontainer/mydirectory
, ele se conectará a esse diretório. Em seguida, o arquivo logfile.txt
seria carregado em mycontainer/mydirectory
. Se você não tiver definido o diretório base, a tentativa de conexão falhará. Em vez disso, os usuários conectados teriam que especificar um contêiner junto com a solicitação e usar comandos SFTP para navegar até o diretório de destino antes de carregar um arquivo. O seguinte exemplo mostra isso:
sftp myaccount.mycontainer.myusername@myaccount.blob.core.windows.net
cd mydirectory
put logfile.txt
Observação
O diretório inicial é apenas o diretório inicial em que o usuário local conectado é colocado. Os usuários locais podem navegar para qualquer outro caminho no contêiner ao qual estão conectados se tiverem as permissões de contêiner apropriadas.
Algoritmos compatíveis
É possível usar muitos clientes SFTP diferentes para conectar e transferir arquivos com segurança. Os clientes de conexão devem usar algoritmos especificados na tabela abaixo.
Chave de host 1 | Troca de chaves | Criptografias/criptografia | Integridade/MAC | Chave pública |
---|---|---|---|---|
rsa-sha2-256 2 | ecdh-sha2-nistp384 | aes128-gcm@openssh.com | hmac-sha2-256 | ssh-rsa 2 |
rsa-sha2-512 2 | ecdh-sha2-nistp256 | aes256-gcm@openssh.com | hmac-sha2-512 | ecdsa-sha2-nistp256 |
ecdsa-sha2-nistp256 | diffie-hellman-group14-sha256 | aes128-cbc | hmac-sha2-256-etm@openssh.com | ecdsa-sha2-nistp384 |
ecdsa-sha2-nistp384 | diffie-hellman-group16-sha512 | aes192-cbc | hmac-sha2-512-etm@openssh.com | |
diffie-hellman-group-exchange-sha256 | aes256-cbc | |||
aes128-ctr | ||||
aes192-ctr | ||||
aes256-ctr |
As chaves de host 1 são publicadas aqui. As chaves RSA 2 devem ter pelo menos 2048 bits.
Atualmente, o suporte SFTP para o Armazenamento de Blobs do Azure limita o suporte a algoritmos criptográficos com base em considerações de segurança. É altamente recomendável que os clientes utilizem algoritmos aprovados pelo SDL (Microsoft Security Development Lifecycle) para acessar seus dados com segurança.
No momento, de acordo com o SDL de Segurança da Microsoft, não planejamos dar suporte ao seguinte: ssh-dss
, diffie-hellman-group14-sha1
, diffie-hellman-group1-sha1
, hmac-sha1
, hmac-sha1-96
. O suporte a algoritmos está sujeito a alterações no futuro.
Conectar-se ao SFTP
Para começar, habilite o suporte a SFTP, crie um usuário local e atribua permissões a esse usuário local. Em seguida, é possível usar qualquer cliente SFTP para se conectar e transferir arquivos com segurança. Para diretrizes passo a passo, consulte Conectar-se ao Armazenamento de Blobs do Azure usando o SFTP (protocolo FTP SSH)
Clientes conhecidos com suporte
Os clientes a seguir têm suporte a algoritmos compatíveis com o SFTP para Armazenamento de Blobs do Azure (versão prévia). Consulte Limitações e problemas conhecidos com o suporte para protocolo SFTP (protocolo FTP SSH) no Armazenamento de Blobs do Azure (versão prévia) se estiver com problemas de conexão.
- AsyncSSH 2.1.0 ou superior
- Axway
- Cyberduck 7.8.2 ou superior
- edtFTPjPRO 7.0.0 ou superior
- FileZilla 3.53.0 ou superior
- libssh 0.9.5 ou superior
- Maverick Legacy 1.7.15 ou superior
- Moveit 12.7
- OpenSSH 7.4 ou superior
- paramiko 2.8.1 ou superior
- PuTTY 0.74 ou superior
- QualysML 12.3.41.1 ou superior
- RebexSSH 5.0.7119.0 ou superior
- Salesforce
- ssh2js 0.1.20 ou superior
- sshj 0.27.0 ou superior
- SSH.NET 2020.0.0 ou superior
- WinSCP 5.10 ou superior
- Workday
- XFB.Gateway
A lista de clientes com suporte acima não é exaustiva e pode ser alterada ao longo do tempo.
Limitações e problemas conhecidos
Confira o artigo de limitações e problemas conhecidos para ver uma lista completa de limitações e problemas com o suporte do SFTP para o Armazenamento de Blobs do Azure.
Preços e cobrança
Importante
Durante a visualização pública, o uso do SFTP não incorre em encargos adicionais. No entanto, ainda se aplicam os preços da transação padrão, de rede e do armazenamento para a conta subjacente do Azure Data Lake Store Gen2. O SFTP pode incorrer em encargos adicionais quando o recurso entrar em disponibilidade geral.
Os custos de transação e de armazenamento se baseiam em fatores como o tipo de conta de armazenamento e o ponto de extremidade usado para transferir dados para a conta de armazenamento. Saiba mais em Entender o modelo de cobrança completo do Armazenamento de Blobs do Azure.
Confira também
- Conectar-se ao Armazenamento de Blobs do Azure usando o SFTP (protocolo FTP SSH)
- Limitações e problemas conhecidos com o suporte para protocolo SFTP SSH no Armazenamento de Blobs do Azure
- Chaves de Host para suporte ao SFTP (Protocolo FTP SSH) no Armazenamento de Blobs do Azure
- Considerações sobre desempenho do protocolo SFTP do SSH no Armazenamento de Blobs do Azure