SQL Azure: Protegendo o SQL Azure

A segurança é também essencial para as soluções hospedadas, embora as ferramentas e táticas sejam certamente diferentes.

Joshua Hoffman

Recentemente, a computação em nuvem tornou-se essencial para a natureza da infraestrutura de TI. Embora a computação local certamente ainda tenha um papel importante, as soluções hospedadas estão ganhando espaço graças à sua escalabilidade, elasticidade e economia de custos que se tornaram extremamente importantes às organizações ágeis. Tudo isso é particularmente verdadeiro quando o assunto é gerenciamento de dados.

O SQL Azure é um bom exemplo de uma plataforma em nuvem desse tipo. O SQL Azure é uma infraestrutura potente e conhecida de armazenamento, gerenciamento e análise de dados. Ele também oferece as vantagens da computação em nuvem. A infraestrutura compartilhada e hospedada ajuda a reduzir os custos diretos e indiretos, o modelo pré-pago ajuda a alcançar uma maior eficiência e a alta disponibilidade e a tolerância a falhas são incorporadas.

Apesar dos inúmeros benefícios da computação em nuvem, a migração dos seus dados para uma solução baseada na nuvem, como o SQL Azure, introduz alterações na maneira como você lida com conceitos de gerenciamento de TI, como a segurança. O modelo de segurança pode ser diferente, mas há ainda muitos fatores a serem considerados para garantir a segurança máxima dos seus dados, incluindo métodos de controle de acesso, autenticação e criptografia.

Introdução ao SQL Azure

Se você for um iniciante no SQL Azure, começar a usá-lo é muito simples. Isso é especialmente verdade se você já estiver familiarizado com as ferramentas tradicionais de gerenciamento do SQL Server, como o SQL Server Management Studio (que, a partir da versão SQL Server 2008 R2, também pode ser usado para gerenciar instâncias do SQL Azure).

A primeira etapa é configurar uma conta para a plataforma Windows Azure visitando o Portal do Cliente do Microsoft Online Services. Isso lhe concede acesso aos serviços do Windows Azure, incluindo o Windows Azure, o SQL Azure e o Windows Azure AppFabric (que fornece um meio de os desenvolvedores conectarem aplicativos e serviços entre os limites organizacionais e de rede).

Uma vez criada uma conta, você pode acessar o painel de controle do SQL Azure visitando sql.azure.com. Clique em New Database Server para criar uma nova instância do SQL Azure.

Controle de acesso à rede

Para proteger seus dados, o Firewall do SQL Azure impede todo o acesso aos seus bancos de dados até que você o conceda por meio de computadores específicos. O acesso via Firewall do SQL Azure é baseado no endereço IP de origem. Você pode gerenciar isso através do Portal de Gerenciamento da Plataforma Windows Azure (consulte a Figura 1) ou diretamente do banco de dados mestre com os procedimentos armazenados.

Configure as regras do Firewall do SQL Azure seguindo estas etapas:

  1. Entre no Portal de Gerenciamento da Plataforma Windows Azure.
  2. No painel à esquerda, clique em Database.
  3. No painel à esquerda, expanda sua assinatura e clique no servidor do SQL Azure para o qual deseja configurar as regras de firewall.
  4. Clique em Firewall Rules para listar as regras.
  5. Clique em Add para criar uma nova regra de firewall. Para permitir que outros serviços do Windows acessem esse servidor do SQL Azure, selecione “Allow other Windows Azure services to access this server”. Isso criará uma regra com o intervalo de IP “0.0.0.0 – 0.0.0.0”. Você pode usar o mesmo processo para atualizar e excluir regras.

Observação: cada regra de firewall deve ter um nome exclusivo (sem diferenciação de maiúsculas e minúsculas).

Figura 1 Configurando uma regra de firewall no SQL Azure.

Para obter mais detalhes sobre a configuração de regras de firewall via procedimentos armazenados do SQL, consulte Alterando as regras de firewall usando T-SQL.

O serviço SQL Azure está disponível pela porta TCP 1433. Dependendo de suas políticas existentes de firewall, talvez também seja necessário configurar os computadores cliente para permitir o acesso de saída através dessa porta. Consulte Configurando o firewall no lado do cliente para obter mais detalhes sobre este processo.

Autenticação SQL

O método de autenticação no SQL Azure é baseado na autenticação tradicional do SQL Server. Ele não oferece suporte à autenticação do Windows (segurança integrada). Você deve fornecer credenciais sempre que se conectar ao SQL Azure.

Quando você cria um novo servidor de banco de dados no SQL Azure, é promovido para ser capaz de criar um logon e uma senha principais no nível do servidor. Isso equivale à conta de administrador do sistema do SQL Server. Você pode criar logons adicionais usando T-SQL, pelo Gerenciador de Banco de Dados do SQL Azure ou pelo SQL Server Management Studio 2008 R2.

Você cria e descarta logons por meio do banco de dados mestre, usando o comando CREATE LOGIN. Por exemplo, conecte-se ao seu banco de dados mestre usando o Gerenciador de Banco de Dados do SQL Azure ou o SQL Server Management Studio e, em seguida, execute a seguinte consulta:

--create a login named "testlogin"
CREATE LOGIN testlogin WITH password='Passw0rd!';

Você pode consultar os logons existentes usando o comando mostrado na Figura 2.

Figura 2 Consultando logons do SQL Server usando o Gerenciador de Banco de Dados do SQL Azure.

Depois de criar seus logons, você pode criar usuários de banco de dados associados a esses logons e atribuir permissões específicas de banco de dados a cada usuário. Para criar um usuário para um banco de dados específico, conecte-se ao banco de dados apropriado e execute o seguinte comando:

CREATE USER testuser FROM LOGIN testlogin;

Então, você poderá atribuir as permissões usando o seguinte comando:

EXEC sp_addrolemember 'db_datareader', 'testuser';

Para obter uma lista completa de funções, consulte Funções de nível de banco de dados. Observe que, ao executar as instruções CREATE/ALTER/DROP LOGIN ou CREATE/ALTER/DROP USER (com a opção FOR/FROM LOGIN), cada uma dessas instruções deve ser única no lote do T-SQL. Caso contrário, ocorrerá um erro.

Criptografia da conexão

O SQL Azure transfere dados usando o protocolo TDS em uma conexão SSL. O SQL Azure não oferece suporte a conexões não criptografadas e possui um certificado assinado emitido por uma autoridade de certificação. Todos esses fatores ajudam a garantir uma transmissão de dados segura e podem ajudar a impedir ataques do tipo man-in-the-middle.

O handshake de criptografia acontece no fluxo PRELOGIN do protocolo TDS. Qualquer cliente que se comunique com o SQL Azure precisará disso, incluindo o SQL Server Management Studio e aplicativos via ADO.NET.

Para criptografar conexões a partir do SQL Server Management Studio, use as seguintes etapas:

  1. Abra o SQL Server Management Studio.
  2. A partir do Explorador de Objetos, clique em Conectar e, em seguida, em Mecanismo de Banco de Dados.
  3. Em Conectar ao Servidor, clique em Propriedades da Conexão.
  4. Selecione Criptografar Conexão (consulte a Figura 3).

Figura 3 Criptografando uma conexão com o SQL Azure no SQL Server Management Studio.

Para validar certificados com o código de aplicativo do ADO.NET, defina Encrypt=True e TrustServerCertificate=False na cadeia de caracteres de conexão do banco de dados.

Criptografia de dados

Atualmente, o SQL Azure não oferece suporte aos mecanismos padrão de criptografia de dados suportados pelo SQL Server. Isso inclui criptografia transparente de dados, chaves assimétricas, simétricas e funções do Transact-SQL, como ENCRYPTBYPASSPHRASE e DECRYPTBYPASSPHRASE, CREATE/ALTER/DROP DATABASE ENCRYPTION KEY ou CREATE/ALTER/DROP MASTER KEY.

Com o SQL Azure, você precisa criptografar ou descriptografar no nível do aplicativo. Em outras palavras, seu aplicativo é responsável pela criptografia e descriptografia de dados ao enviar ou recuperar dados do SQL Azure.

Quando você começar a hospedar determinados aplicativos e dados na nuvem, precisará considerar a segurança dos seus dados. Você precisará se envolver com sua arquitetura de segurança baseada na nuvem. A necessidade por segurança é algo sempre presente — com a plataforma de computação em nuvem, apenas as técnicas são diferentes. Para obter recursos adicionais sobre este tópico, consulte o artigo Orientações e limitações de segurança do SQL Azure.

Ao seguir as práticas recomendadas de gerenciamento de contas e de conexão, você poderá ter certeza de que poderá aproveitar todos os benefícios da migração dos seus dados para a nuvem. Você não tem que comprometer a segurança de suas informações críticas de negócios.

Joshua Hoffman

Joshua Hoffman é ex-editor-chefe da TechNet Magazine*. Agora, ele é autor e consultor independente, aconselha seus clientes sobre tecnologia e marketing seletivo. Hoffman também trabalha como editor-chefe do ResearchAccess.com, um site dedicado ao crescimento e aperfeiçoamento da comunidade de pesquisas de mercado. Ele mora na cidade de Nova York.*

Conteúdo relacionado