Conectar-se ao Armazenamento de Blobs do Azure usando o SFTP (protocolo FTP SSH)

É possível se conectar com segurança ao ponto de extremidade do Armazenamento de Blobs de uma conta de Armazenamento do Microsoft Azure usando um cliente SFTP e, em seguida, carregar e baixar arquivos. Este artigo mostra como habilitar o SFTP e se conectar ao Armazenamento de Blobs usando um cliente SFTP.

Para saber mais sobre o suporte ao SFTP para Armazenamento de Blobs do Azure, confira Protocolo SFTP no Armazenamento de Blobs do Azure.

Pré-requisitos

Habilitar suporte a SFTP

Esta seção mostra como habilitar o suporte a SFTP para uma conta de armazenamento existente. Para exibir um modelo do ARM que habilita o suporte a SFTP como parte da criação da conta, confira Criar uma Conta de Armazenamento do Microsoft Azure e um Contêiner de Blobs acessíveis usando o protocolo SFTP no Azure. Para ver as APIs REST do usuário local e as referências do .NET, confira Usuários Locais e Classe LocalUser.

  1. No Portal do Azure, navegue até sua conta de armazenamento.

  2. Em Configurações, selecione SFTP.

    Observação

    Essa opção será exibida somente se o recurso de namespace hierárquico da conta tiver sido habilitado. Para habilitar o recurso de namespace hierárquico, consulte Atualizar o Armazenamento de Blobs do Azure com recursos de Azure Data Lake Storage Gen2.

  3. Selecione Habilitar SFTP.

    Enable SFTP button

    Observação

    Se nenhum usuário local aparecer na página de configuração do SFTP, você precisará adicionar pelo menos um deles. Para adicionar usuários locais, consulte a próxima seção.

Desabilitar o suporte ao SFTP

Esta seção mostra como desativar o suporte ao SFTP de uma conta de armazenamento existente. Como o suporte ao SFTP tem um custo por hora, considere desabilitar o suporte ao SFTP quando os clientes não estiverem usando ativamente o SFTP para transferir dados.

  1. No Portal do Azure, navegue até sua conta de armazenamento.

  2. Em Configurações, selecione SFTP.

  3. Selecione Desabilitar SFTP.

    Screenshot of the disable SFTP button.

Configurar permissões

O Armazenamento do Microsoft Azure não dá suporte à assinatura de acesso compartilhado (SAS) ou à autenticação do Microsoft Entra para acessar o ponto de extremidade SFTP. Em vez disso, você deve usar uma identidade chamada usuário local que pode ser protegida com uma senha gerada pelo Azure ou um par de chaves SSH (Secure Shell). Para conceder acesso a um cliente que se conecta, a conta de armazenamento deve ter uma identidade associada à senha ou ao par de chaves. Essa identidade é chamada de usuário local.

Nesta seção, você aprenderá a criar um usuário local, escolher um método de autenticação e atribuir permissões para esse usuário local.

Para saber mais sobre o modelo de permissões do SFTP, consulte Modelo de permissões do SFTP.

Dica

Esta seção mostra como configurar usuários locais para uma conta de armazenamento existente. Para exibir um modelo do ARM que configura um usuário local como parte da criação de uma conta, confira Criar uma Conta de Armazenamento do Microsoft Azure e um Contêiner de Blobs acessíveis usando o protocolo SFTP no Azure.

  1. No Portal do Azure, navegue até sua conta de armazenamento.

  2. Em Configurações, selecione SFTP e depois clique em Adicionar usuário local .

    Add local users button

  3. No painel de configuração Adicionar usuário local, adicione o nome de um usuário e, em seguida, selecione quais métodos de autenticação você deseja associar a esse usuário local. Você pode associar uma senha e/ou uma chave SSH.

    Importante

    Embora seja possível habilitar ambas as formas de autenticação, os clientes do SFTP podem se conectar usando apenas um deles. Não há suporte para a autenticação multifator, em que uma senha válida e um par de chaves públicas e privadas válido são necessários para uma autenticação bem-sucedida.

    Se você selecionar Senha SSH, sua senha será exibida quando você concluir todas as etapas no painel de configuração Adicionar usuário local. As senhas SSH são geradas pelo Azure e têm pelo menos 32 caracteres.

    Se você selecionar Par de chave SSH, selecione Origem de chave pública para especificar a fonte da chave.

    Local user configuration pane

    A tabela a seguir descreve cada opção de origem de chave:

    Opção Orientação
    Gerar um novo par de chaves Use esta opção para criar um novo par de chaves pública/privada. A chave pública é armazenada no Azure com o nome da chave que você fornece. A chave privada pode ser baixada depois que o usuário local tiver sido adicionado com êxito.
    Usar a chave existente armazenada no Azure Use esta opção se você quiser usar uma chave pública que já esteja armazenada no Azure. Para localizar as chaves existentes no Azure, consulte Listar chaves. Quando os clientes SFTP se conectam ao Armazenamento de Blobs do Azure, esses clientes precisam fornecer a chave privada associada a essa chave pública.
    Usar a chave pública existente Use esta opção se você quiser carregar uma chave pública que é armazenada fora do Azure. Se você não tiver uma chave pública, mas quiser gerar uma fora do Azure, consulte Gerar chaves com ssh-keygen.

    Observação

    A opção de chave pública existente atualmente dar suporta apenas às chaves públicas formatadas para OpenSSH. A chave fornecida precisa seguir este formato: <key type> <key data>. Por exemplo, as chaves RSA precisam ser semelhantes a esta: ssh-rsa AAAAB3N.... Se a chave estiver em outro formato, uma ferramenta como esta ssh-keygen pode ser usada para convertê-la para o formato OpenSSH.

  4. Selecione Avançar para abrir a guia Permissões do contêiner do painel de configuração.

  5. Na guia Permissões do contêiner, selecione os contêineres que você deseja disponibilizar para esse usuário local. Em seguida, selecione quais tipos de operações você deseja permitir que esse usuário local execute.

    Container permissions tab

    Importante

    O usuário local deve ter pelo menos uma permissão de contêiner do contêiner ao qual está se conectando, caso contrário, a tentativa de conexão falhará.

  6. Na caixa de edição Diretório base, digite o nome do contêiner ou o caminho do diretório (incluindo o nome do contêiner) que será o local padrão associado a esse usuário local.

    Para saber mais sobre o diretório base, consulte Diretório Base.

  7. Selecione o botão Adicionar para adicionar o usuário local.

    Se você habilitou a autenticação de senha, a senha gerada pelo Azure aparecerá em uma caixa de diálogo depois que o usuário local tiver sido adicionado.

    Importante

    Você não pode recuperar essa senha mais tarde, portanto, certifique-se de copiar a senha e, em seguida, armazená-la em um local onde você possa encontrá-la.

    Se optar por gerar um novo par de chaves, será solicitado que você baixe a chave privada desse par de chaves depois que o usuário local tiver sido adicionado.

    Observação

    Os usuários locais têm uma propriedade sharedKey usada somente para autenticação SMB.

Conexão um cliente SFTP

É possível usar qualquer cliente SFTP para se conectar e, em seguida, transferir arquivos com segurança. A captura de tela a seguir mostra uma sessão Windows PowerShell que usa SSH aberta e autenticação de senha para se conectar e, em seguida, carregar um arquivo chamado logfile.txt.

Connect with Open SSH

Observação

O nome de usuário do SFTP é storage_account_name.username. No exemplo acima, storage_account_name é "contoso4" e username é "contosouser". O nome de usuário combinado se torna contoso4.contosouser para o comando SFTP.

Observação

Você pode ser solicitado a confiar em uma chave de host. As chaves de host válidas foram publicadas aqui.

Depois que a transferência for concluída, você poderá exibir e gerenciar o arquivo no portal do Azure.

Uploaded file appears in storage account

Observação

O portal do Azure usa a API REST do Blob e a API REST do Data Lake Storage Gen2. Poder interagir com um arquivo carregado no portal do Azure demonstra a interoperabilidade entre o SFTP e o REST.

Consulte a documentação do seu cliente SFTP para obter orientação sobre como conectar e transferir arquivos.

Conectar usando um domínio personalizado

Ao usar domínios personalizados, a cadeia de conexão é myaccount.myuser@customdomain.com. Se o diretório base não tiver sido especificado para o usuário, ele será myaccount.mycontainer.myuser@customdomain.com.

Importante

Verifique se o seu provedor DNS não faz solicitações de proxy. O proxy pode fazer com que a tentativa de conexão atinja o tempo limite.

Conectar usando um ponto de extremidade privado

Ao usar um ponto de extremidade privado, a cadeia de conexão é myaccount.myuser@myaccount.privatelink.blob.core.windows.net. Se o diretório base não tiver sido especificado para o usuário, ele será myaccount.mycontainer.myuser@myaccount.privatelink.blob.core.windows.net.

Observação

Verifique se você alterou a configuração de rede para "Habilitado de redes virtuais e endereços IP selecionadas" e selecione seu ponto de extremidade privado, caso contrário, o ponto de extremidade SFTP regular permanecerá publicamente acessível.

Considerações de rede

O SFTP é um serviço de nível de plataforma, portanto, a porta 22 será aberta mesmo se a opção de conta estiver desabilitada. Se o acesso SFTP não estiver configurado, todas as solicitações receberão uma desconexão do serviço. Ao usar o SFTP, convém limitar o acesso público configurando um firewall, uma rede virtual ou um ponto de extremidade privado. Essas configurações são impostas na camada do aplicativo, o que significa que não são específicas do SFTP e afetarão a conectividade com todos os Pontos de Extremidade do Armazenamento do Microsoft Azure. Para mais informações sobre firewalls e configuração de rede, consulte Configurar Redes Virtuais e Firewalls de Armazenamento do Azure.

Observação

As ferramentas de auditoria que tentam determinar o suporte a TLS na camada de protocolo podem retornar versões do TLS além da versão mínima necessária quando são executadas diretamente no ponto de extremidade da conta de armazenamento. Para mais informações, consulte Impor uma versão mínima necessária de Segurança da Camada de Transporte (TLS) para solicitações a uma conta de armazenamento.

Confira também