Práticas recomendadas para proteger aplicativos Web e móveis PaaS usando o Armazenamento do Azure
Neste artigo, discutimos uma coleção de práticas recomendadas de segurança do Armazenamento do Azure para proteger seus aplicativos Web e móveis de plataforma como serviço (PaaS). Essas práticas recomendadas são derivadas de nossa experiência com o Azure e das experiências de clientes como você.
O Azure torna possível implantar e usar o armazenamento de maneiras que não são facilmente alcançáveis localmente. Com o armazenamento do Azure, você pode alcançar altos níveis de escalabilidade e disponibilidade com relativamente pouco esforço. O Armazenamento do Azure não é apenas a base para as Máquinas Virtuais do Azure Windows e Linux, mas também pode dar suporte a grandes aplicativos distribuídos.
O Armazenamento do Azure fornece os quatro serviços a seguir: armazenamento de Blob, armazenamento de tabela, armazenamento de fila e armazenamento de arquivos. Para saber mais, consulte Introdução ao Armazenamento do Microsoft Azure.
Este artigo aborda as seguintes práticas recomendadas:
- Assinaturas de acesso partilhado (SAS)
- Controlo de acesso baseado em funções do Azure (RBAC do Azure)
- Criptografia do lado do cliente para dados de alto valor
- Encriptação do Serviço de Armazenamento
Usar uma assinatura de acesso compartilhado em vez de uma chave de conta de armazenamento
O controle de acesso é fundamental. Para ajudá-lo a controlar o acesso ao Armazenamento do Azure, o Azure gera duas chaves de conta de armazenamento (SAKs) de 512 bits quando você cria uma conta de armazenamento. O nível de redundância de chaves possibilita que você evite interrupções de serviço durante a rotação de chaves de rotina.
As chaves de acesso de armazenamento são segredos de alta prioridade e só devem ser acessíveis a pessoas responsáveis pelo controle de acesso ao armazenamento. Se as pessoas erradas tiverem acesso a essas chaves, elas terão controle total do armazenamento e poderão substituir, excluir ou adicionar arquivos ao armazenamento. Isso inclui malware e outros tipos de conteúdo que podem comprometer sua organização ou seus clientes.
Você ainda precisa de uma maneira de fornecer acesso a objetos no armazenamento. Para fornecer acesso mais granular, você pode aproveitar a assinatura de acesso compartilhado (SAS). O SAS possibilita que você compartilhe objetos específicos no armazenamento por um intervalo de tempo predefinido e com permissões específicas. Uma assinatura de acesso compartilhado permite definir:
- O intervalo durante o qual o SAS é válido, incluindo a hora de início e a hora de expiração.
- As permissões concedidas pelo SAS. Por exemplo, uma SAS em um blob pode conceder a um usuário permissões de leitura e gravação para esse blob, mas não permissões de exclusão.
- Um endereço IP opcional ou um intervalo de endereços IP do qual o Armazenamento do Azure aceita a SAS. Por exemplo, você pode especificar um intervalo de endereços IP pertencentes à sua organização. Isso fornece outra medida de segurança para o seu SAS.
- O protocolo sobre o qual o Armazenamento do Azure aceita a SAS. Você pode usar esse parâmetro opcional para restringir o acesso a clientes usando HTTPS.
O SAS permite que você compartilhe conteúdo da maneira que quiser sem fornecer as chaves da sua conta de armazenamento. Usar sempre o SAS em seu aplicativo é uma maneira segura de compartilhar seus recursos de armazenamento sem comprometer as chaves da conta de armazenamento.
Para saber mais sobre assinatura de acesso compartilhado, consulte Usando assinaturas de acesso compartilhado.
utilizar o controlo de acesso baseado em funções do Azure
Outra maneira de gerenciar o acesso é usar o controle de acesso baseado em função do Azure (Azure RBAC). Com o RBAC do Azure, você se concentra em dar aos funcionários as permissões exatas de que eles precisam, com base na necessidade de conhecer e minimizar os princípios de segurança. Muitas permissões podem expor uma conta a invasores. Poucas permissões significam que os funcionários não podem fazer seu trabalho de forma eficiente. O RBAC do Azure ajuda a resolver esse problema oferecendo gerenciamento de acesso refinado para o Azure. O controle de acesso é imperativo para organizações que desejam aplicar políticas de segurança para acesso a dados.
Você pode usar funções internas do Azure no Azure para atribuir privilégios aos usuários. Por exemplo, use o Colaborador da Conta de Armazenamento para operadores de nuvem que precisam gerenciar contas de armazenamento e a função de Colaborador da Conta de Armazenamento Clássica para gerenciar contas de armazenamento clássicas. Para operadores de nuvem que precisam gerenciar VMs, mas não a rede virtual ou a conta de armazenamento à qual estão conectadas, você pode adicioná-las à função de Colaborador de Máquina Virtual.
As organizações que não impõem o controle de acesso a dados usando recursos como o Azure RBAC podem estar concedendo mais privilégios do que o necessário para seus usuários. Mais privilégios do que o necessário podem levar ao comprometimento de dados, permitindo que alguns usuários acessem dados que não deveriam ter em primeiro lugar.
Para saber mais sobre o Azure RBAC, consulte:
- Atribuir funções do Azure com o portal do Azure
- Funções incorporadas do Azure
- Recomendações de segurança para armazenamento de Blob
Use criptografia do lado do cliente para dados de alto valor
A criptografia do lado do cliente permite criptografar programaticamente dados em trânsito antes de carregar no Armazenamento do Azure e descriptografar dados programaticamente ao recuperá-los. A criptografia do lado do cliente fornece criptografia de dados em trânsito, mas também fornece criptografia de dados em repouso. A criptografia do lado do cliente é o método mais seguro de criptografar seus dados, mas exige que você faça alterações programáticas em seu aplicativo e coloque processos de gerenciamento de chaves no lugar.
A criptografia do lado do cliente também permite que você tenha controle exclusivo sobre suas chaves de criptografia. Pode gerar e gerir as suas próprias chaves de encriptação. Ele usa uma técnica de envelope em que a biblioteca de cliente de armazenamento do Azure gera uma chave de criptografia de conteúdo (CEK) que é encapsulada (criptografada) usando a chave de criptografia de chave (KEK). O KEK é identificado por um identificador de chave e pode ser um par de chaves assimétricas ou uma chave simétrica e pode ser gerenciado localmente ou armazenado no Cofre de Chaves do Azure.
A criptografia do lado do cliente é incorporada às bibliotecas de cliente de armazenamento Java e .NET. Consulte Criptografia do lado do cliente e Azure Key Vault for Microsoft Azure Storage para obter informações sobre como criptografar dados em aplicativos cliente e gerar e gerenciar suas próprias chaves de criptografia.
Habilitar a criptografia do serviço de armazenamento para dados em repouso
Quando a Criptografia do Serviço de Armazenamento para armazenamento de arquivos está habilitada, os dados são criptografados automaticamente usando a criptografia AES-256. A Microsoft lida com toda a encriptação, desencriptação e gestão de chaves. Este recurso está disponível para os tipos de redundância LRS e GRS.
Próximos passos
Este artigo apresentou uma coleção de práticas recomendadas de segurança do Armazenamento do Azure para proteger seus aplicativos Web e móveis PaaS. Para saber mais sobre como proteger suas implantações de PaaS, consulte: