Segurança no Serviço de Aplicativo do Azure
Este artigo mostra como o Serviço de Aplicativo do Azure ajuda a proteger o aplicativo Web, back-end de aplicativo móvel, aplicativo de API e aplicativo de funções. Ele também mostra como é possível proteger ainda mais o aplicativo com os recursos internos do Serviço de Aplicativo.
Os componentes de plataforma do Serviço de Aplicativo, incluindo VMs do Azure, armazenamento, conexões de rede, estruturas da Web, recursos de integração e gerenciamento, são ativamente seguros e protegidos. O Serviço de Aplicativo passa por verificações de conformidade rigorosas continuamente para garantir que:
- Os recursos do aplicativo estejam protegidos dos recursos do Azure de outros clientes.
- Instâncias de VM e software de runtime são atualizados regularmente para tratar vulnerabilidades recentemente descobertas.
- A comunicação de segredos (como cadeias de conexão) entre o aplicativo e outros recursos do Azure (como Banco de Dados SQL) permanece no Azure e não ultrapassa limites de rede. Segredos sempre são criptografados quando armazenados.
- Toda a comunicação sobre os recursos de conectividade do Serviço de Aplicativo, como conexão híbrida, é criptografada.
- As conexões com ferramentas de gerenciamento remoto como Azure PowerShell, CLI do Azure, SDKs do Azure, APIs REST são todas criptografadas.
- O gerenciamento de ameaças 24 horas protege a infraestrutura e a plataforma contra malware, ataque de DDoS (negação de serviço distribuído), MITM (man-in-the-middle) e outras ameaças.
Para saber mais sobre segurança de plataforma e infraestrutura no Azure, confira Centro de Confiabilidade do Azure.
As seções a seguir mostram como proteger ainda mais o aplicativo do Serviço de Aplicativo contra ameaças.
HTTPS e certificados
O Serviço de Aplicativo permite que você proteja os aplicativos com HTTPS. Quando o aplicativo for criado, o nome do domínio padrão (<app_name>.azurewebsites.net) já estará acessível usando HTTPS. Se você configurar um domínio personalizado para o aplicativo, também deverá protegê-lo com um certificado TLS/SSL para que os navegadores do cliente possam estabelecer conexões HTTPS seguras com o domínio personalizado. Há vários tipos de certificados compatíveis com o Serviço de Aplicativo:
- Certificado gerenciado do Serviço de Aplicativo gratuito
- Certificado de Serviço de Aplicativo
- Certificado de terceiros
- Certificado importado do Azure Key Vault
Para obter mais informações, confira Adicionar um certificado TLS/SSL no Serviço de Aplicativo do Azure.
Protocolos não seguros (HTTP, TLS 1.0, FTP)
Para proteger o aplicativo contra todas as conexões não criptografadas (HTTP), o Serviço de Aplicativo fornece configuração com um clique para impor o HTTPS. As solicitações não seguras serão recusadas antes mesmo de alcançarem o código do aplicativo. Para mais informações, consulte Impor o HTTPS.
TLS 1.0 não é mais considerado seguro pelos padrões do setor, como PCI DSS. O Serviço de Aplicativo permite desabilitar os protocolos desatualizados impondo o TLS 1.1/1.2.
O Serviço de Aplicativo dá suporte ao FTP e FTPS para implantar os arquivos. No entanto, utilize FTPS em vez de FTP, se possível. Quando um ou ambos os protocolos não estiverem em uso será necessário desabilitá-los.
Restrições de IP estático
Por padrão, o aplicativo do Serviço de Aplicativo aceita solicitações de todos os endereços IP da Internet, mas é possível limitar esse acesso a um pequeno subconjunto de endereços IP. O Serviço de Aplicativo no Windows permite definir uma lista de endereços IP com permissão para acessar o aplicativo. A lista permitida pode incluir endereços IP individuais ou um intervalo de endereços IP definidos por uma máscara de sub-rede. Para obter mais informações, consulte Restrições de IP estático do Serviço de Aplicativo do Azure.
Para o Serviço de Aplicativo no Windows, também é possível restringir endereços IP dinamicamente, configurando o web.config. Para obter mais informações, confira Segurança de IP Dinâmico <dynamicIpSecurity>.
Autenticação e autorização do cliente
O Serviço de Aplicativo do Azure fornece autenticação e autorização imediata de usuários ou aplicativos clientes. Quando habilitado, ele pode entrar em usuários e aplicativos clientes com pouco ou nenhum código do aplicativo. É possível implementar sua própria solução de autorização e autenticação ou permitir que o Serviço de Aplicativo processa isso para você. O módulo de autenticação e autorização processa solicitações da Web antes de entregá-las ao código do aplicativo e nega solicitações não autorizadas antes que elas atinjam o código.
A autenticação e a autorização do Serviço de Aplicativo dão suporte a vários provedores de autenticação, incluindo o Microsoft Entra ID, contas da Microsoft, Facebook, Google e X. Para obter mais informações, confira Autenticação e autorização no Serviço de Aplicativo do Azure.
Autenticação serviço a serviço
Ao autenticar um serviço de back-end, o Serviço de Aplicativo fornece dois mecanismos diferentes, dependendo da necessidade:
- Serviço de identidade - Faça logon no recurso remoto usando a identidade do próprio aplicativo. O Serviço de Aplicativo permite criar facilmente uma identidade gerenciada, que pode ser usada para autenticação com outros serviços como o Banco de Dados SQL do Azure ou Azure Key Vault. Para obter um tutorial completo desta abordagem, confira Conexão segura do Banco de Dados SQL do Azure do Serviço de Aplicativo usando a identidade gerenciada.
- OBO (em nome de) - Faça acesso delegado a recursos remotos em nome do usuário. Com o Microsoft Entra ID como provedor de autenticação, seu aplicativo do Serviço de Aplicativo pode executar a entrada delegada em um serviço remoto, como o Microsoft Graph ou um aplicativo de API remoto no Serviço de Aplicativo. Para obter um tutorial de ponta a ponta dessa abordagem, consulte Autenticar e autorizar usuários de ponta a ponta no Serviço de Aplicativo do Azure .
Conectividade para recursos remotos
Há três tipos de recursos remotos que o aplicativo pode precisar acessar:
Em cada um desses casos, o Serviço de Aplicativo fornece uma maneira para fazer conexões seguras, no entanto, você ainda deve observar as melhores práticas de segurança. Por exemplo, sempre use conexões criptografadas mesmo se o recurso de back-end permitir conexões não criptografadas. Além disso, verifique se o serviço back-end do Azure permite o conjunto mínimo de endereços IP. É possível localizar os endereços IP de saída para aplicativo em Endereços IP de entrada e saída no Serviço de Aplicativo do Azure.
Recursos do Azure
Quando o aplicativo conecta os recursos do Azure, como Banco de Dados SQL e Armazenamento do Microsoft Azure, a conexão permanece no Azure e não ultrapassa limites de rede. No entanto, a conexão passa pela rede compartilhada no Azure e, portanto, sempre verifique se a conexão está criptografada.
Se o aplicativo estiver hospedado em um ambiente do Serviço de Aplicativo , você deverá conectar os serviços do Azure com suporte usando pontos de extremidade de serviço de Rede Virtual.
Recursos dentro de uma Rede Virtual do Microsoft Azure
O aplicativo pode acessar recursos em uma Rede Virtual do Microsoft Azure através da integração de Rede Virtual. A integração é estabelecida com uma Rede Virtual usando uma VPN ponto a site. O aplicativo pode acessar os recursos na rede virtual usando os endereços IP privados. A conexão ponto a site, no entanto, ainda ultrapassa as redes compartilhadas no Azure.
Para isolar completamente a conectividade de recursos das redes compartilhadas no Azure, crie o aplicativo em um ambiente do Serviço de Aplicativo. Como um ambiente do Serviço de Aplicativo é sempre implantado em uma Rede Virtual dedicada, a conectividade entre o aplicativo e os recursos dentro da Rede Virtual é totalmente isolada. Para outros aspectos da segurança de rede em um ambiente do Serviço de Aplicativo, consulte Isolamento de rede.
Recursos locais
É possível acessar os recursos locais com segurança, como bancos de dados, de três maneiras:
- Conexões híbridas - Estabelece uma conexão ponto a ponto com o recurso remoto por meio de um túnel TCP. O túnel TCP é estabelecido usando o TLS 1.2 com chaves de SAS (assinatura de acesso compartilhado).
- Integração de Rede Virtual com VPN site a site - Conforme descrito em Recursos dentro de uma Rede Virtual do Microsoft Azure, mas a Rede Virtual pode ser conectada à rede local por meio de um VPN site a site. Nesta topologia de rede, o aplicativo pode conectar recursos locais, como outros recursos na Rede Virtual.
- Ambiente do Serviço de Aplicativo com VPN site a site - Conforme descrito em Recursos dentro de uma Rede Virtual do Microsoft Azure, mas a Rede Virtual pode ser conectada à rede local por meio de um VPN site a site. Nesta topologia de rede, o aplicativo pode conectar recursos locais, como outros recursos na Rede Virtual.
Segredos do aplicativo
Não armazene segredos do aplicativo, como credenciais de banco de dados, tokens de API e chaves privadas nos arquivos de configuração ou código. A abordagem comumente aceita é acessá-los como variáveis de ambiente usando o padrão standard na linguagem de sua escolha. No Serviço de Aplicativo, a maneira de definir variáveis de ambiente é através de configurações de aplicativo (e, especialmente para aplicativo .NETs, cadeias de conexão). As configurações de aplicativo e as cadeias de conexão são armazenadas criptografadas no Azure e serão descriptografadas somente antes de serem injetadas na memória de processo do aplicativo quando o aplicativo for iniciado. As chaves de criptografia são giradas regularmente.
Como alternativa, é possível integrar o aplicativo do Serviço de Aplicativo ao Azure Key Vault para gerenciamento de segredos avançado. Ao acessar o Key Vault com uma identidade gerenciada, o aplicativo do Serviço de Aplicativo poderá acessar com segurança os segredos que você precisa.
Isolamento da rede
Exceto para tipo de preço Isolado todas as camadas executam os aplicativos na infraestrutura de rede compartilhada no Serviço de Aplicativo. Por exemplo, os endereços IP públicos e os balanceadores de carga front-end são compartilhados com outros locatários. A camada Isolado oferece isolamento de rede completo, executando os aplicativos em um Ambiente do Serviço de Aplicativo dedicado. Um ambiente do Serviço de Aplicativo é executado na própria instância da Rede Virtual do Microsoft Azure. Isso permite que você:
- Atenda os aplicativos por meio de um pondo de extremidade público dedicado, com front-ends dedicados.
- Atenda o aplicativo interno usando um ILB (balanceador de carga interno), que permite o acesso somente de dentro da Rede Virtual do Microsoft Azure. O ILB tem um endereço IP da sub-rede privada, que fornece isolamento total dos aplicativos da Internet.
- Use um ILB atrás de um WAF (firewall do aplicativo Web). O WAF oferece proteção de nível empresarial para aplicativos voltados ao público, como proteção contra DDoS, filtragem de URI e prevenção de injeção de SQL.
Proteção contra DDOS
Para cargas de trabalho da Web, é altamente recomendável utilizar a proteção contra DDoS do Azure e um firewall de aplicativo Web para proteger contra ataques de DDoS emergentes. Outra opção é implantar o Azure Front Door junto com um firewall de aplicativo Web. O Azure Front Door oferece proteção no nível da plataforma contra ataques de DDoS no nível da rede.
Para obter mais informações, consulte Introdução aos Ambientes do Serviço de Aplicativo do Azure.