Segurança no Serviço de Aplicações do Azure
Este artigo mostra como o Serviço de Aplicativo do Azure ajuda a proteger seu aplicativo Web, back-end de aplicativo móvel, aplicativo de API e aplicativo de função. Ele também mostra como você pode proteger ainda mais seu aplicativo com os recursos internos do Serviço de Aplicativo.
Os componentes da plataforma do Serviço de Aplicações, incluindo VMs do Azure, armazenamento, ligações de rede, arquiteturas Web, funcionalidades de gestão e integração, são protegidos ativamente. O Serviço de Aplicativo passa por verificações de conformidade vigorosas continuamente para garantir que:
- Os recursos do seu aplicativo são protegidos dos recursos do Azure de outros clientes.
- As instâncias de VM e o software de tempo de execução são atualizados regularmente para resolver vulnerabilidades recém-descobertas.
- A comunicação de segredos (como cadeias de conexão) entre seu aplicativo e outros recursos do Azure (como o Banco de Dados SQL) permanece no Azure e não cruza nenhum limite de rede. Os segredos são sempre encriptados quando armazenados.
- Toda a comunicação através dos 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, negação de serviço distribuída (DDoS), man-in-the-middle (MITM) e outras ameaças.
Para obter mais informações sobre segurança de infraestrutura e plataforma no Azure, consulte Central de Confiabilidade do Azure.
As seções a seguir mostram como proteger ainda mais seu aplicativo do Serviço de Aplicativo contra ameaças.
HTTPS e Certificados
O Serviço de Aplicativo permite que você proteja seus aplicativos com HTTPS. Quando seu aplicativo é criado, seu nome de domínio padrão (<app_name.azurewebsites.net>) já está acessível usando HTTPS. Se você configurar um domínio personalizado para seu aplicativo, também deverá protegê-lo com um certificado TLS/SSL para que os navegadores cliente possam fazer conexões HTTPS seguras com seu domínio personalizado. Há vários tipos de certificados suportados pelo Serviço de Aplicativo:
- Certificado Gerenciado do Serviço de Aplicativo Gratuito
- Certificado do Serviço de Aplicativo
- Certificado de terceiros
- Certificado importado do Azure Key Vault
Para obter mais informações, consulte Adicionar um certificado TLS/SSL no Serviço de Aplicativo do Azure.
Protocolos inseguros (HTTP, TLS 1.0, FTP)
Para proteger seu aplicativo contra todas as conexões não criptografadas (HTTP), o Serviço de Aplicativo fornece configuração de um clique para impor HTTPS. As solicitações não seguras são recusadas antes mesmo de chegarem ao código do seu aplicativo. Para obter mais informações, consulte Impor HTTPS.
O TLS 1.0 não é mais considerado seguro pelos padrões da indústria, como o PCI DSS. O Serviço de Aplicativo permite desabilitar protocolos desatualizados aplicando o TLS 1.1/1.2.
O Serviço de Aplicativo suporta FTP e FTPS para implantar seus arquivos. No entanto, FTPS deve ser usado em vez de FTP, se possível. Quando um ou ambos os protocolos não estiverem em uso, você deve desativá-los.
Restrições de IP estático
Por padrão, seu aplicativo do Serviço de Aplicativo aceita solicitações de todos os endereços IP da Internet, mas você pode 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 que têm permissão para acessar seu aplicativo. A lista permitida pode incluir endereços IP individuais ou um intervalo de endereços IP definido 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, você também pode restringir endereços IP dinamicamente configurando o web.config. Para obter mais informações, consulte Dynamic IP Security <dynamicIpSecurity>.
Autenticação e autorização do cliente
O Serviço de Aplicativo do Azure fornece autenticação turn-key e autorização de usuários ou aplicativos cliente. Quando habilitado, ele pode entrar em usuários e aplicativos cliente com pouco ou nenhum código de aplicativo. Você pode implementar sua própria solução de autenticação e autorização ou permitir que o Serviço de Aplicativo a trate por você. O módulo de autenticação e autorização lida com solicitações da Web antes de entregá-las ao código do seu aplicativo e nega solicitações não autorizadas antes que elas cheguem ao seu código.
A autenticação e autorização do Serviço de Aplicativo oferece suporte a vários provedores de autenticação, incluindo Microsoft Entra ID, contas da Microsoft, Facebook, Google e X. Para obter mais informações, consulte Autenticação e autorização no Serviço de Aplicativo do Azure.
Autenticação serviço a serviço
Ao autenticar em um serviço back-end, o Serviço de Aplicativo fornece dois mecanismos diferentes, dependendo da sua necessidade:
- Identidade do serviço - Entre no recurso remoto usando a identidade do próprio aplicativo. O Serviço de Aplicativo permite criar facilmente uma identidade gerenciada, que você pode usar para autenticar com outros serviços, como o Banco de Dados SQL do Azure ou o Cofre de Chaves do Azure. Para obter um tutorial completo dessa abordagem, consulte Proteger a conexão do Banco de Dados SQL do Azure do Serviço de Aplicativo usando uma identidade gerenciada.
- On-behalf-of (OBO) - Faça acesso delegado a recursos remotos em nome do usuário. Com o Microsoft Entra ID como o 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 completo dessa abordagem, consulte Autenticar e autorizar usuários de ponta a ponta no Serviço de Aplicativo do Azure.
Conectividade com recursos remotos
Há três tipos de recursos remotos que seu aplicativo pode precisar acessar:
Em cada um desses casos, o Serviço de Aplicativo fornece uma maneira de fazer conexões seguras, mas você ainda deve observar as práticas recomendadas de segurança. Por exemplo, sempre use conexões criptografadas, mesmo que o recurso de back-end permita conexões não criptografadas. Além disso, certifique-se de que seu serviço back-end do Azure permite o conjunto mínimo de endereços IP. Você pode encontrar os endereços IP de saída para seu aplicativo em Endereços IP de entrada e saída no Serviço de Aplicativo do Azure.
Recursos do Azure
Quando seu aplicativo se conecta aos recursos do Azure, como o Banco de Dados SQL e o Armazenamento do Azure, a conexão permanece no Azure e não cruza nenhum limite de rede. No entanto, a conexão passa pela rede compartilhada no Azure, portanto, sempre certifique-se de que sua conexão esteja criptografada.
Se seu aplicativo estiver hospedado em um ambiente do Serviço de Aplicativo, você deverá se conectar aos serviços do Azure com suporte usando pontos de extremidade de serviço de Rede Virtual.
Recursos dentro de uma Rede Virtual do Azure
Seu aplicativo pode acessar recursos em uma Rede Virtual do Azure por meio da integração de Rede Virtual. A integração é estabelecida com uma Rede Virtual usando uma VPN ponto-a-site. O aplicativo pode então acessar os recursos na Rede Virtual usando seus endereços IP privados. A conexão ponto a site, no entanto, ainda atravessa as redes compartilhadas no Azure.
Para isolar completamente sua conectividade de recursos das redes compartilhadas no Azure, crie seu 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 seu aplicativo e os recursos dentro da Rede Virtual é totalmente isolada. Para outros aspetos da segurança de rede em um ambiente do Serviço de Aplicativo, consulte Isolamento de rede.
Recursos no local
Você pode acessar 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 seu recurso remoto através de um túnel TCP. O túnel TCP é estabelecido usando TLS 1.2 com chaves de assinatura de acesso compartilhado (SAS).
- Integração da Rede Virtual com VPN site a site - Conforme descrito em Recursos dentro de uma Rede Virtual do Azure, mas a Rede Virtual pode ser conectada à sua rede local por meio de uma VPN site a site. Nessa topologia de rede, seu aplicativo pode se conectar a 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 Azure, mas a Rede Virtual pode ser conectada à sua rede local por meio de uma VPN site a site. Nessa topologia de rede, seu aplicativo pode se conectar a recursos locais como outros recursos na Rede Virtual.
Segredos da aplicação
Não armazene segredos de aplicativos, como credenciais de banco de dados, tokens de API e chaves privadas em seu código ou arquivos de configuração. A abordagem comumente aceita é acessá-los como variáveis de ambiente usando o padrão padrão em seu idioma de escolha. No Serviço de Aplicativo, a maneira de definir variáveis de ambiente é por meio de configurações de aplicativo (e, especialmente para aplicativos .NET, cadeias de conexão). As configurações do aplicativo e as cadeias de conexão são armazenadas criptografadas no Azure e são descriptografadas somente antes de serem injetadas na memória de processo do seu aplicativo quando o aplicativo é iniciado. As chaves de encriptação são alternadas regularmente.
Como alternativa, você pode integrar seu aplicativo do Serviço de Aplicativo ao Cofre da Chave do Azure para gerenciamento avançado de segredos. Ao acessar o Cofre da Chave com uma identidade gerenciada, seu aplicativo do Serviço de Aplicativo pode acessar com segurança os segredos de que você precisa.
Isolamento da rede
Com exceção do nível de preço Isolado , todos os níveis executam seus 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 seus aplicativos dentro de um ambiente dedicado do Serviço de Aplicativo. Um ambiente do Serviço de Aplicativo é executado em sua própria instância da Rede Virtual do Azure. Permite-lhe:
- Sirva as suas aplicações através de um ponto de extremidade público dedicado, com front-ends dedicados.
- Sirva a aplicação interna utilizando um balanceador de carga interno (ILB), que permite o acesso apenas a partir da sua Rede Virtual do Azure. O ILB tem um endereço IP da sua sub-rede privada, que fornece isolamento total dos seus aplicativos da Internet.
- Use um ILB por trás de um firewall de aplicativo da Web (WAF). O WAF oferece proteção de nível empresarial para seus aplicativos voltados para o 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 se proteger contra ataques 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 DDoS no nível da rede.
Para obter mais informações, consulte Introdução aos ambientes do Serviço de Aplicativo do Azure.