Melhores práticas para proteger aplicações Web e móveis PaaS com o Armazenamento do Azure

Neste artigo, vamos abordar uma coleção de melhores práticas de segurança do Armazenamento do Microsoft Azure para proteger as suas aplicações móveis e Web de plataforma como serviço (PaaS). Estas melhores práticas derivam da nossa experiência com o Azure e das experiências de clientes como você.

O Azure permite implementar e utilizar o armazenamento de formas não facilmente alcançáveis no local. Com o armazenamento do Azure, pode atingir níveis elevados de escalabilidade e disponibilidade com relativamente pouco esforço. O Armazenamento do Microsoft Azure não só é a base do Windows e do Linux Azure Máquinas Virtuais, como também pode suportar aplicações distribuídas de grandes dimensões.

O Armazenamento do Azure fornece os seguintes quatro serviços: Armazenamento de blobs, Armazenamento de tabelas, Armazenamento de filas e Armazenamento de ficheiros. Para saber mais, consulte Introdução ao Armazenamento do Microsoft Azure.

Este artigo aborda as seguintes melhores práticas:

  • Assinaturas de acesso partilhado (SAS)
  • Controlo de acesso baseado em funções do Azure (RBAC do Azure)
  • Encriptação do lado do cliente para dados de valor elevado
  • Encriptação do Serviço de Armazenamento

Utilizar uma assinatura de acesso partilhado em vez de uma chave de conta de armazenamento

O controlo de acesso é crítico. Para o ajudar a controlar o acesso ao Armazenamento do Azure, o Azure gera duas chaves de conta de armazenamento de 512 bits (SAKs) quando cria uma conta de armazenamento. O nível de redundância de chaves permite-lhe evitar interrupções de serviço durante a rotação de chave de rotina.

As chaves de acesso ao armazenamento são segredos de alta prioridade e só devem estar acessíveis às pessoas responsáveis pelo controlo de acesso ao armazenamento. Se as pessoas erradas tiverem acesso a estas chaves, terão controlo total do armazenamento e poderão substituir, eliminar ou adicionar ficheiros ao armazenamento. Isto inclui software maligno e outros tipos de conteúdo que podem potencialmente comprometer a sua organização ou os seus clientes.

Ainda precisa de uma forma de fornecer acesso a objetos no armazenamento. Para fornecer acesso mais granular, pode tirar partido da assinatura de acesso partilhado (SAS). A SAS permite-lhe partilhar objetos específicos no armazenamento para um intervalo de tempo predefinido e com permissões específicas. Uma assinatura de acesso partilhado permite-lhe definir:

  • O intervalo sobre o qual a SAS é válida, incluindo a hora de início e a hora de expiração.
  • As permissões concedidas pela SAS. Por exemplo, uma SAS num blob pode conceder a um utilizador permissões de leitura e escrita para esse blob, mas não eliminar permissões.
  • Um endereço IP opcional ou um intervalo de endereços IP a partir do qual o Armazenamento do Azure aceita a SAS. Por exemplo, pode especificar um intervalo de endereços IP pertencentes à sua organização. Isto fornece outra medida de segurança para a sua SAS.
  • O protocolo sobre o qual o Armazenamento do Azure aceita a SAS. Pode utilizar este parâmetro opcional para restringir o acesso a clientes através de HTTPS.

A SAS permite-lhe partilhar conteúdos da forma que pretende partilhar sem dar as chaves da conta de armazenamento. Utilizar sempre SAS na sua aplicação é uma forma segura de partilhar os seus recursos de armazenamento sem comprometer as chaves da conta de armazenamento.

Para saber mais sobre a assinatura de acesso partilhado, consulte Utilizar assinaturas de acesso partilhado.

Utilizar o controlo de acesso baseado em funções do Azure

Outra forma de gerir o acesso é utilizar o controlo de acesso baseado em funções do Azure (RBAC do Azure). Com o RBAC do Azure, concentra-se em dar aos colaboradores as permissões exatas de que precisam, com base na necessidade de conhecer e no mínimo privilégio de princípios de segurança. Demasiadas permissões podem expor uma conta a atacantes. Poucas permissões significa que os funcionários não conseguem realizar o seu trabalho de forma eficiente. O RBAC do Azure ajuda a resolver este problema ao oferecer uma gestão de acesso detalhada para o Azure. O controlo de acesso é imperativo para as organizações que pretendem impor políticas de segurança para acesso a dados.

Pode utilizar funções incorporadas do Azure no Azure para atribuir privilégios aos utilizadores. Por exemplo, utilize o Contribuidor da Conta de Armazenamento para operadores da cloud que precisam de gerir contas de armazenamento e a função Contribuidor da Conta de Armazenamento Clássica para gerir contas de armazenamento clássicas. Para operadores da cloud que precisam de gerir VMs, mas não a rede virtual ou conta de armazenamento à qual estão ligadas, pode adicioná-las à função Contribuidor de Máquina Virtual.

As organizações que não impõem o controlo de acesso a dados através de capacidades como o RBAC do Azure podem estar a dar mais privilégios do que o necessário para os seus utilizadores. Mais privilégios do que o necessário podem levar a um comprometimento de dados ao permitir que alguns utilizadores acedam aos dados que não deveriam ter em primeiro lugar.

Para saber mais sobre o RBAC do Azure, veja:

Utilizar a encriptação do lado do cliente para dados de valor elevado

A encriptação do lado do cliente permite-lhe encriptar programaticamente dados em trânsito antes de carregar para o Armazenamento do Azure e desencriptar dados programaticamente ao recuperá-lo. A encriptação do lado do cliente fornece encriptação de dados em trânsito, mas também fornece encriptação de dados inativos. A encriptação do lado do cliente é o método mais seguro para encriptar os seus dados, mas requer que faça alterações programáticas à sua aplicação e coloque os processos de gestão de chaves em vigor.

A encriptação do lado do cliente também lhe permite ter controlo exclusivo sobre as chaves de encriptação. Pode gerar e gerir as suas próprias chaves de encriptação. Utiliza uma técnica de envelope onde a biblioteca de cliente de armazenamento do Azure gera uma chave de encriptação de conteúdo (CEK) que é encapsulada (encriptada) com a chave de encriptação de chave (KEK). A KEK é identificada por um identificador de chave e pode ser um par de chaves assimétricas ou uma chave simétrica e pode ser gerida localmente ou armazenada no Azure Key Vault.

A encriptação do lado do cliente está incorporada nas bibliotecas de cliente de armazenamento Java e .NET. Veja Encriptação do lado do cliente e Key Vault do Azure para obter Armazenamento do Microsoft Azure para obter informações sobre como encriptar dados em aplicações cliente e gerar e gerir as suas próprias chaves de encriptação.

Ativar a Encriptação do Serviço de Armazenamento para dados inativos

Quando a Encriptação do Serviço de Armazenamento para armazenamento de Ficheiros está ativada, os dados são encriptados automaticamente através da encriptação AES-256. A Microsoft processa toda a encriptação, desencriptação e gestão de chaves. Esta funcionalidade está disponível para tipos de redundância LRS e GRS.

Passos seguintes

Este artigo apresentou-lhe uma coleção de melhores práticas de segurança do Armazenamento do Azure para proteger as suas aplicações Web e móveis PaaS. Para saber mais sobre como proteger as suas implementações PaaS, veja: