Planear e implementar Grupos de Segurança de Rede (NSGs) e Grupos de Segurança de Aplicações (ASGs)
Você pode usar um grupo de segurança de rede do Azure para filtrar o tráfego de rede entre os recursos do Azure em uma rede virtual do Azure. Um grupo de segurança de rede contém regras de segurança que permitem ou negam o tráfego de rede de entrada ou de saída de vários tipos de recursos do Azure. Para cada regra, você pode especificarde origem e de destino, de porta e de protocolo.
Grupos de Segurança de Rede (NSGs)
Regras de segurança
Um grupo de segurança de rede contém quantas regras desejar, dentro dos limites de assinatura do Azure. Cada regra especifica as seguintes propriedades:
| Propriedade | Explicação |
|---|---|
| Nome | Um nome exclusivo dentro do grupo de segurança de rede. O nome pode ter até 80 caracteres. Deve começar com um caractere de palavra, e deve terminar com um caractere de palavra ou com '_'. O nome pode conter caracteres de palavra ou '.', '-', '_'. |
| Prioridade | Um número entre 100 e 4096. As regras são processadas em ordem de prioridade, com números mais baixos processados antes de números maiores, porque números mais baixos têm prioridade maior. Quando o tráfego corresponde a uma regra, o processamento é interrompido. Como resultado, quaisquer regras que existam com prioridades mais baixas (números mais altos) que tenham os mesmos atributos que regras com prioridades mais altas não são processadas. As regras de segurança padrão do Azure recebem o maior número com a menor prioridade para garantir que as regras personalizadas sejam sempre processadas primeiro. |
| Origem ou destino | Qualquer ou um endereço IP individual, bloco de roteamento entre domínios sem classe (CIDR) (10.0.0.0/24, por exemplo), etiqueta de serviço ou grupo de segurança de aplicativo. Se você especificar um endereço para um recurso do Azure, especifique o endereço IP privado atribuído ao recurso. Os grupos de segurança de rede são processados depois que o Azure converte um endereço IP público em um endereço IP privado para tráfego de entrada e antes que o Azure converta um endereço IP privado para um endereço IP público para tráfego de saída. Menos regras de segurança são necessárias quando você especifica um intervalo, uma etiqueta de serviço ou um grupo de segurança de aplicativo. A capacidade de especificar vários endereços IP individuais e intervalos (não é possível especificar várias tags de serviço ou grupos de aplicativos) em uma regra é chamada de regras de segurança aumentada. As regras de segurança aumentada só podem ser criadas em grupos de segurança de rede criados através do modelo de implementação do Resource Manager. Não é possível especificar vários endereços IP e intervalos de endereços IP em grupos de segurança de rede criados por meio do modelo de implantação clássico. |
| Protocolo | TCP, UDP, ICMP, ESP, AH ou qualquer. Os protocolos ESP e AH não estão atualmente disponíveis através do portal do Azure, mas podem ser utilizados através de modelos do Azure Resource Manager. |
| Direção | Se a regra se aplica ao tráfego de entrada ou de saída. |
| Intervalo de portas | Você pode especificar uma porta individual ou um intervalo de portas. Por exemplo, você pode especificar 80 ou 10000-10005. Especificar intervalos permite-lhe criar menos regras de segurança. As regras de segurança aumentada só podem ser criadas em grupos de segurança de rede criados através do modelo de implementação do Resource Manager. Não é possível especificar várias portas ou intervalos de portas na mesma regra de segurança em grupos de segurança de rede criados por meio do modelo de implantação clássico. |
| Ação | Permitir ou negar |
As regras de segurança são avaliadas e aplicadas com base nas informações de cinco tuple (1. fonte, 2. porta de origem, 3. destino, 4. porta de destino e 5. protocolo). Não é possível criar duas regras de segurança com a mesma prioridade e direção. É criado um registo de fluxo para as ligações existentes. A comunicação é permitida ou negada com base no estado da conexão do registro de fluxo. O registo do fluxo permite que um grupo de segurança de rede tenha monitoração de estado. Se você especificar uma regra de segurança de saída para qualquer endereço na porta 80, por exemplo, não será necessário especificar uma regra de segurança de entrada para a resposta ao tráfego de saída. Você só precisará especificar uma regra de segurança de entrada se a comunicação for iniciada externamente. O contrário também é verdadeiro. Se o tráfego de entrada for permitido através de uma porta, não é necessário especificar uma regra de segurança de saída para responder ao tráfego através da porta.
As conexões existentes não podem ser interrompidas quando você remove uma regra de segurança que permitiu a conexão. Modificar as regras do grupo de segurança de rede afetará apenas novas conexões. Quando uma nova regra é criada ou uma regra existente é atualizada em um grupo de segurança de rede, ela só se aplica a novas conexões. As ligações existentes não são reavaliadas com as novas regras.
Como os grupos de segurança de rede filtram o tráfego de rede
Você pode implantar recursos de vários serviços do Azure em uma rede virtual do Azure. Você pode associar zero ou um grupo de segurança de rede a cada sub-rede de uma rede virtual e a cada interface de rede numa máquina virtual. O mesmo grupo de segurança de rede pode ser associado a quantas sub-redes e interfaces de rede você escolher. A imagem a seguir ilustra diferentes cenários de como os grupos de segurança de rede podem ser implantados para permitir tráfego de rede de e para a Internet pela porta TCP 80:
Consulte a imagem, juntamente com o texto a seguir, para entender como o Azure processa regras de entrada e saída para grupos de segurança de rede:
Tráfego de entrada
Para o tráfego de entrada, o Azure processa primeiro as regras em um grupo de segurança de rede associado a uma sub-rede, se houver, e, em seguida, as regras em um grupo de segurança de rede associado à interface de rede, se houver. Esse processo também inclui o tráfego intra-sub-rede.
- VM1: As regras de segurança em NSG1 são processadas, uma vez que está associada à Sub-rede 1 e VM1 está em Sub-rede 1. A menos que tenhas criado uma regra que permita a entrada pelo porto 80, a regra de segurança padrão DenyAllInbound nega o tráfego. O tráfego não é avaliado pelo NSG2 porque está associado à interface de rede. Se NSG1 permitir a porta 80 em sua regra de segurança, NSG2 processará o tráfego. Para permitir a porta 80 na máquina virtual, tanto NSG1, como NSG2, têm de ter uma regra que permite a porta 80 a partir da Internet.
- VM2: As regras em NSG1 são processadas porque VM2 também está em Sub-rede 1. Como o VM2 não tem um grupo de segurança de rede associado à sua interface de rede, ele recebe todo o tráfego permitido pelo NSG1 ou é negado todo o tráfego negado pelo NSG1. O tráfego é permitido ou negado a todos os recursos na mesma sub-rede quando um grupo de segurança de rede está associado a uma sub-rede.
- VM3: Como não há nenhum grupo de segurança de rede associado a Sub-rede 2, o tráfego é permitido na sub-rede e processado por NSG2, porque NSG2 está associado à interface de rede conectada a VM3.
- VM4: O tráfego tem permissão para VM4, porque um grupo de segurança de rede não está associado à Sub-rede 3 ou à interface de rede na máquina virtual. Todo o tráfego de rede é permitido através de uma sub-rede e interface de rede se eles não tiverem um grupo de segurança de rede associado a eles.
Tráfego de saída
Para o tráfego de saída, o Azure processa primeiro as regras em um grupo de segurança de rede associado a uma interface de rede, se houver, e depois as regras em um grupo de segurança de rede associado à sub-rede, se houver. Esse processo também inclui o tráfego intra-sub-rede.
- VM1: As regras de segurança no NSG2 foram processadas. A regra de segurança padrão AllowInternetOutbound tanto no NSG1 como no NSG2 permite o tráfego, a menos que se crie uma regra de segurança que negue a porta 80 de saída para a Internet. Se o NSG2 negar a porta 80 em sua regra de segurança, ele negará o tráfego e o NSG1 nunca o avaliará. Para negar a porta 80 da máquina virtual, um ou ambos os grupos de segurança de rede devem ter uma regra que negue a porta 80 para a Internet.
- VM2: Todo o tráfego é enviado através da interface de rede para a sub-rede, uma vez que a interface de rede ligada a VM2 não tem um grupo de segurança de rede associado a ela. As regras em NSG1 são processadas.
- VM3: Se NSG2 negar a porta 80 em sua regra de segurança, ele negará o tráfego. Se NSG2 não bloquear a porta 80, a regra de segurança padrão AllowInternetOutbound em NSG2 permitirá o tráfego porque não há nenhum grupo de segurança de rede associado a Subnet 2.
- VM4: Todo o tráfego de rede é permitido a partir de VM4, porque um grupo de segurança de rede não está associado à interface de rede conectada à máquina virtual ou a Sub-rede 3.
Tráfego intrasubrede
É importante observar que as regras de segurança em um NSG associado a uma sub-rede podem afetar a conectividade entre VMs dentro dela. Por padrão, as máquinas virtuais na mesma sub-rede podem se comunicar com base em uma regra NSG padrão que permite o tráfego intra-sub-rede. Se você adicionar uma regra ao NSG1 que negue todo o tráfego de entrada e saída, o VM1 e o VM2 não poderão se comunicar entre si.
Você pode visualizar facilmente as regras agregadas aplicadas a uma interface de rede visualizando as regras de segurança efetivas para uma interface de rede. Você também pode usar o recurso de verificação de fluxo de IP no Observador de Rede do Azure para determinar se a comunicação é permitida para ou a partir de uma interface de rede. Você pode usar a verificação de fluxo IP para determinar se uma comunicação é permitida ou negada. Além disso, Use a verificação de fluxo IP para revelar a identidade da regra de segurança de rede responsável por permitir ou negar o tráfego.
Os grupos de segurança de rede estão associados a sub-redes ou a máquinas virtuais e serviços de nuvem implantados no modelo de implantação clássico e a sub-redes ou interfaces de rede no modelo de implantação do Resource Manager.
A menos que você tenha um motivo específico, recomendamos que associe um grupo de segurança de rede a uma sub-rede ou a uma interface de rede, mas não a ambos. Uma vez que as regras num grupo de segurança de rede associado a uma sub-rede podem entrar em conflito com as regras num grupo associado a uma interface de rede, poderão ocorrer problemas de comunicação inesperados que exijam resolução.
Grupos de segurança de aplicativos (ASGs)
Os grupos de segurança de aplicativos permitem configurar a segurança de rede como uma extensão natural da estrutura de um aplicativo, permitindo agrupar máquinas virtuais e definir políticas de segurança de rede com base nesses grupos. Você pode reutilizar sua política de segurança em escala sem a manutenção manual de endereços IP explícitos. A plataforma lida com a complexidade de endereços IP explícitos e vários conjuntos de regras, permitindo que você se concentre em sua lógica de negócios. Para entender melhor os grupos de segurança de aplicativos, considere o seguinte exemplo:
Na imagem anterior, NIC1 e NIC2 são membros do grupo de segurança de aplicações AsgWeb. NIC3 é membro do grupo de segurança de aplicativos AsgLogic. NIC4 é membro do grupo de segurança de aplicativos AsgDb. Embora cada interface de rede (NIC) neste exemplo seja membro de apenas um grupo de segurança de rede, uma interface de rede pode ser membro de vários grupos de segurança de aplicativos, até os Limites do Azure. Nenhuma das interfaces de rede tem um grupo de segurança de rede associado. NSG1 está associado a ambas as sub-redes e contém as seguintes regras:
Permitir-HTTP-Entrada-Internet
Esta regra é necessária para permitir o tráfego da Internet para os servidores Web. Como o tráfego de entrada da Internet é negado pela regra de segurança padrão DenyAllInbound, nenhuma regra extra é necessária para o AsgLogic ou AsgDb grupos de segurança do aplicativo.
| Prioridade | Fonte | Portas de origem | Destino | Portos de destino | Protocolo | Acesso |
|---|---|---|---|---|---|---|
| 100 | Internet | * | AsgWeb | 80 | TCP | Permitir |
Negar-Database-All
Como a regra de segurança padrão AllowVNetInBound permite toda a comunicação entre recursos na mesma rede virtual, essa regra é necessária para negar o tráfego de todos os recursos.
| Prioridade | Fonte | Portas de origem | Destino | Portos de destino | Protocolo | Acesso |
|---|---|---|---|---|---|---|
| 120 | * | * | AsgDb | 1433 | Qualquer | Recusar |
Permitir-Database-BusinessLogic
Esta regra permite o tráfego do grupo de segurança de aplicações AsgLogic para o grupo de segurança de aplicações AsgDb. A prioridade desta regra é mais alta do que a da regra Deny-Database-All. Como resultado, esta regra é processada antes da regra Deny-Database-All, de modo a que o tráfego do grupo de segurança de aplicações AsgLogic seja permitido, ao passo que o restante tráfego é bloqueado.
| Prioridade | Fonte | Portas de origem | Destino | Portos de destino | Protocolo | Acesso |
|---|---|---|---|---|---|---|
| 110 | AsgLogic | * | AsgDb | 1433 | TCP | Permitir |
As interfaces de rede que são membros do grupo de segurança do aplicativo aplicam as regras que o especificam como origem ou destino. As regras não afetam outras interfaces de rede. Se a interface de rede não for membro de um grupo de segurança de aplicativo, a regra não será aplicada à interface de rede, mesmo que o grupo de segurança de rede esteja associado à sub-rede.
Os grupos de segurança de aplicativos têm as seguintes restrições:
Há limites para o número de grupos de segurança de aplicativos que você pode ter em uma assinatura e outros limites relacionados a grupos de segurança de aplicativos.
Todas as interfaces de rede atribuídas a um grupo de segurança de aplicativo devem existir na mesma rede virtual em que se encontra a primeira interface de rede atribuída ao grupo de segurança de aplicativo. Por exemplo, se a primeira interface de rede atribuída a um grupo de segurança de aplicações denominado AsgWeb estiver na rede virtual denominada VNet1, todas interfaces de rede subsequentes atribuídas aASGWeb têm de existir em VNet1. Não é possível adicionar interfaces de rede de redes virtuais diferentes ao mesmo grupo de segurança de aplicativos.
Se você especificar um grupo de segurança de aplicativo como origem e destino em uma regra de segurança, as interfaces de rede em ambos os grupos de segurança de aplicativo deverão existir na mesma rede virtual.
- Um exemplo seria se AsgLogic tivesse interfaces de rede de VNet1 e AsgDb tivesse interfaces de rede de VNet2. Neste caso, seria impossível atribuir AsgLogic como a origem e AsgDb como o destino em uma regra. Todas as interfaces de rede para os grupos de segurança de aplicativos de origem e destino precisam existir na mesma rede virtual.
Para minimizar o número de regras de segurança necessárias e a necessidade de alterar as regras, planeje os grupos de segurança de aplicativos necessários e crie regras usando tags de serviço ou grupos de segurança de aplicativos, em vez de endereços IP individuais ou intervalos de endereços IP, sempre que possível.