Windows Azure: Compreendendo o gerenciamento da conta de segurança no Windows Azure

A computação em nuvem traz certo alívio na carga de segurança, mas você continua com uma função ativa no gerenciamento do acesso, na proteção das comunicações e na garantia de proteção dos dados.

Joshua Hoffman

A computação em nuvem é o que mais se aproxima de uma importante mudança de paradigma já vista pelo setor de TI desde a própria Internet. Largura de banda mais rápida, armazenamento mais barato e tecnologia de virtualização robusta transformaram em realidade a visão do Software como um serviço. A nuvem entrega sistemas escalonáveis, flexíveis e pré-pagos que atendem às demandas da geração “fazer mais com menos”.

Enquanto a computação em nuvem diminui grande parte da responsabilidade com o gerenciamento de infraestrutura, a segurança continua sendo uma preocupação crítica. A segurança ainda requer o mesmo grau de reflexão e atenção que um data center físico. À medida que os aplicativos e serviços migram para as plataformas de computação em nuvem como o Windows Azure, você deve continuar exercendo uma função ativa no gerenciamento do acesso, na proteção das comunicações e na garantia de proteção de dados corporativos críticos.

Existem várias abordagens recomendáveis para o gerenciamento de segurança de aplicativos e serviços hospedados no Windows Azure. Também existem práticas recomendadas para criar e gerenciar contas administrativas, usar certificados para autenticação e lidar com transições quando os funcionários são admitidos ou demitidos.

Propriedade da conta

O Portal do Cliente do Microsoft Online Services (MOCP) manipula toda a administração de contas e cobrança do Windows Azure. Através do MOCP, você pode se inscrever em serviços do Windows Azure, adicionar outros serviços como SQL Azure e criar novas instâncias de serviços existentes (chamados assinaturas).

As assinaturas são realmente o “limite de cobrança” dos serviços do Windows Azure. Você desejará manter assinaturas separadas para cada aplicativo (ou coleção de aplicativos) que requerem uma estrutura de cobrança diferente. Por exemplo, é possível criar assinaturas separadas com detalhes de cobrança individuais, caso existam diferentes departamentos, todos hospedando aplicativos no Windows Azure, mas que requerem cobrança separada.

Será necessário identificar uma conta do “proprietário da conta” e uma conta do “administrador da conta” para cada assinatura. Cada uma dessas contas é associada a um Windows Live ID. O proprietário da conta é responsável por gerenciar a assinatura e a cobrança através do MOCP. O administrador da conta precisa gerenciar os aspectos técnicos da assinatura, inclusive a criação de serviços hospedados, por meio do Portal de Gerenciamento do Windows Azure.

A criação de contas exclusivas para cada uma dessas funções é altamente recomendável. Essas contas devem existir independentemente das contas individuais. Em outras palavras, não use o seu Windows Live ID pessoal como sua conta de proprietário da conta ou administrador do serviço em configurações baseadas em organização ou equipe. Em vez disso, crie contas exclusivas (talvez usando um esquema de nomeação como PC[ID exclusiva]@live.com para proprietários de conta e AC[ID exclusiva]@live.com para administradores de contas), com senhas que possam ser gerenciadas, e redefinidas se necessário, em um nível centralizado.

Depois que você criar uma assinatura, os administradores de contas poderão gerenciar os serviços hospedados usando o Portal de Gerenciamento do Windows Azure. Eles poderão acessá-lo usando as credenciais da conta de administrador de serviços. Depois de entrar, eles podem começar criando um novo Serviço hospedado (veja a Figura 1).

Figure 1 Creating a new Hosted Service in Windows Azure

Figura 1 Criando um novo Serviço Hospedado no Windows Azure

Ao criar um novo Serviço hospedado, será solicitado que você especifique um nome para o serviço. Também será necessário fornecer um prefixo de URL e opções de implantação. Você também pode escolher um pacote (.cspkg) e um arquivo de configuração (.cscfg) já existentes de um ambiente de desenvolvimento como o Visual Studio (se já tiver aplicativos empacotados).

Na guia Hosted Services, no lado esquerdo do portal, selecione User Management. Lá você poderá adicionar outros coadministradores para a assinatura (veja a Figura 2). Isso permite mais flexibilidade no fornecimento de acesso à administração do aplicativo hospedado.

Figure 2 Adding new administrators to the subscription

Figura 2 Adicionando novos administradores à assinatura

Gerenciamento de certificados

Os certificados são componentes importantes da segurança do Windows Azure. Dois tipos de certificados têm uma função na proteção dos aplicativos ou serviços: certificados de serviços e certificados de gerenciamento.

Os certificados de serviços são certificados SSL tradicionais usados para proteger as comunicações do ponto de extremidade. Se você já configurou a segurança SSL para um site hospedado no IIS por exemplo, está familiarizado com esse tipo de certificado. Você precisa de certificados de serviços para implantações de produção emitidos por uma CA (autoridade de certificação) raiz confiável. Portanto, será necessário adquiri-los de terceiros, como a VeriSign ou a DigiCert.

A lista de CAs raiz confiáveis é mantida aqui (para o Microsoft Windows) e aqui (para o Microsoft Windows Phone 7). O nome do certificado SSL deve corresponder ao nome de domínio do site. Portanto, você precisará de uma entrada DNS CNAME para mapear yourapp.cloudapp.net (o nome de domínio do seu aplicativo fornecido pelo Windows Azure) para www.suaempresa.com. Por razões de segurança, não é possível comprar um mapeamento de certificado para o yourapp.cloudapp.net. Só a Microsoft pode emitir certificados para cloudapp.net, embora você possa criar o seu próprio certificado autoassinado para fins de desenvolvimento.

Os certificados autoassinados devem ser usados apenas para fins de teste, pois não serão confiáveis para os navegadores da Web dos usuários finais. Durante o teste, você observará que o seu próprio navegador identificará o certificado não confiável ou que as chamadas de API feitas com o uso do Windows Communications Foundation (WCF) irão falhar. Isso não significa que o certificado não esteja funcionando, mas que ele não é confiável para uma CA raiz. Em um navegador, isso geralmente é um aborrecimento aceitável durante o teste, mas certamente não é uma experiência que você deseja para seus usuários finais.

Para executar o teste com chamadas de API, será necessário adicionar código para ignorar a validação do certificado ou adicionar o certificado da CA raiz do certificado de serviço autoassinado ao repositório de certificados das Autoridades de Certificação Confiáveis, seja usando o MMC de Gerenciamento de certificados, os comandos em lotes ou código. David Hardin da Microsoft escreveu mais sobre esse problema em seu blog.

Você precisará fornecer certificados de serviço do Windows Azure no formato .pfx. Para criar o seu próprio certificado de serviço autoassinado com “senha” como a senha do espaço reservado (você pode alterá-la no comando final de acordo com suas preferências), abra um prompt de comando do Visual Studio e execute os seguintes comandos:

makecert -r -pe -n "CN=yourapp.cloudapp.net" -b 01/01/2000 -e 01/01/2036 -eku 1.3.6.1.5.5.7.3.1 -ss my -sky exchange 
-sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 -sv SSLDevCert.pvk SSLDevCert.cer

del SSLDevCert.pfx

pvk2pfx -pvk SSLDevCert.pvk -spc SSLDevCert.cer -pfx SSLDevCert.pfx -po password

Você pode carregar certificados de serviço SSL por meio da guia Hosted Services do Windows Azure Management Portal clicando em Add Certificate e especificando a senha (veja a Figura 3).

Figure 3 Adding a service certificate in Windows Azure

Figura 3 Adicionando um certificado de serviço no Windows Azure

Os certificados de gerenciamento são o outro tipo de certificado usado pelo Windows Azure. O Windows Azure Tools for Microsoft Visual Studio utiliza certificados de gerenciamento para autenticar desenvolvedores para a sua implantação do Windows Azure. A ferramenta de linha de comando CSUpload também utiliza certificados de gerenciamento para implantar imagens de funções de máquina virtual, assim como as solicitações da API REST do Windows Azure Service Management.

Os cmdlets do Windows Azure Service Management utilizam certificados de gerenciamento para o Windows PowerShell. Você pode usar os cmdlets do Windows Azure PowerShell para executar e automatizar com facilidade a implantação, a configuração e o gerenciamento do sistema com base no Windows Azure.

É necessário fornecer certificados de gerenciamento do Windows Azure no formato X.509 (.cer). Para criar seus próprios certificados de gerenciamento autoassinados, abra um prompt de comando do Visual Studio e execute o seguinte comando:

makecert -r -pe -a sha1 -n "CN=Windows Azure Authentication Certificate" -ss my -len 2048 -sp "Microsoft Enhanced RSA and AES Cryptographic Provider" -sy 24 ManagementApiCert.cer

Carregue os certificados de gerenciamento que usam a Windows Azure Management Platform selecionando Management Certificates no painel esquerdo e escolhendo Add Certificate (veja a Figura 4). Para obter mais informações sobre como criar seus próprios certificados para o Windows Azure, consulte na biblioteca do MSDN o artigo “Como criar um certificado para uma função.”

Figure 4 Adding a management certificate in Windows Azure

Figura 4 Adicionando um certificado de gerenciamento no Windows Azure

Substituição de funcionários

Uma das principais vantagens de uma solução de computação em nuvem é que ela é hospedada externamente por terceiros. De imediato, isso proporciona uma camada de redundância física do seu próprio local. No entanto, também significa que, quando um funcionário deixa a sua organização, voluntariamente ou não, é mais difícil restringir o acesso aos seus recursos.

Como resultado, é especialmente importante seguir algumas etapas-chave sempre que houver uma alteração que afete o acesso aprovado aos recursos de computação em nuvem. A primeira etapa é redefinir as senhas de todas as contas de administrador de serviços às quais o antigo funcionário tinha acesso. Se você estabeleceu IDs exclusivas e independentes de proprietário de conta e administrador de serviços que você pode gerenciar centralmente, isso simplificará esse processo.

Se você não puder redefinir a senha da conta de administrador de serviços, poderá fazer logon no MOCP como proprietário da conta. Atualize a conta listada como administrador de serviços. Você também deve remover todas as contas listadas como coadministradores através do Windows Azure Management Portal.

A segunda etapa é emitir novamente quaisquer certificados de gerenciamento pertinentes. Esses certificados fornecem um meio de autenticação para o serviço hospedado, através das APIs do Visual Studio e do Windows Azure. Portanto, você não poderá mais confiar neles depois do desligamento de um funcionário. Mesmo que a máquina de trabalho do funcionário seja deixada, ele pode ter levado uma cópia do certificado utilizando-se de outros meios.

Para emitir novamente os certificados de gerenciamento, basta executar outra vez o comando especificado anteriormente e remover os antigos certificados de gerenciamento no Windows Azure Management Portal. Carregue os novos certificados de gerenciamento e distribua-os para todos os funcionários autorizados. Essas etapas só precisam ser seguidas para certificados de gerenciamento. Não é necessário emitir novamente os certificados de serviço, pois eles só fornecem criptografia e não autenticação.

Apesar de os seus aplicativos estarem hospedados na nuvem, você ainda precisa estar totalmente envolvido em sua arquitetura de segurança. (Para obter recursos adicionais sobre este tópico consulte na biblioteca do MSDN a página Recursos de segurança do Windows Azure.) Siga estas práticas recomendadas para gerenciamento de contas e de certificados. Isso ajudará a garantir que a sua organização possa se beneficiar totalmente da computação em nuvem, sem comprometer a segurança em geral e a segurança das informações comerciais críticas.

Agradecemos a David Hardin do setor de TI da Microsoft e a Daniel Odievich da Equipe de desenvolvedores e de divulgação da plataforma da Microsoft, juntamente com a parceria da Série de conversas sobre segurança, por sua assistência no desenvolvimento deste artigo.

Joshua Hoffman

Joshua Hoffmané o antigo editor-chefe da TechNet Magazine. Agora, ele é autor e consultor independente, aconselha seus clientes sobre tecnologia e marketing voltado ao público. 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 em Nova York.

 

Conteúdo relacionado