Normalmente, quando você implanta um grupo de segurança de rede (NSG) ou é atribuído a um NIC ou a uma sub-rede (preferencial). Se você implantar esse NSG em uma sub-rede, então as regras se aplicam a todos os NICs, ou máquinas virtuais, nessa sub-rede. Isso é OK quando você está implantando um novo sistema onde você pode facilmente colocar máquinas virtuais em sub-redes e tratar cada sub-rede como sua própria zona de segurança. Mas no mundo real, as coisas nem sempre são tão limpas, e você pode precisar de algo que permita um meio mais dinâmico ou flexível de atribuir regras a algumas máquinas em uma sub-rede.
Os ASGs são usados dentro de um NSG para aplicar uma regra de segurança de rede a uma carga de trabalho ou grupo específico de VMs — definidos pelo ASG trabalhados como sendo o “objeto de rede” e endereços IP explícitos são adicionados a este objeto. Isso fornece a capacidade de agrupar VMs em grupos ou cargas de trabalho associadas, simplificando o processo de definição de regra do NSG. Outro grande uso disso é para escalabilidade, criar a máquina virtual e atribuir a máquina virtual recém-criada ao seu ASG fornecerá todas as regras do NSG em vigor para esse ASG específico — distribuição zero ao seu serviço!
Pontos-chave asg
- Os Grupos de Segurança do Azure permitem definir políticas de segurança de rede com base em cargas de trabalho, centralizadas em aplicativos, em vez de endereços IP explícitos.
- Os ASGs fornecem a capacidade de agrupar as VMs com apelidos e proteger nossas aplicações filtrando o tráfego.
- Implementando controles de tráfego de segurança granulares, podemos melhorar o isolamento das cargas de trabalho e protegê-las individualmente.
- Se ocorrer uma violação, esse método limita o impacto potencial da exploração lateral de nossas redes a partir de hackers.
- A definição de segurança é simplificada ao usar os ASGs.
- Podemos definir grupos de aplicativos fornecendo um nome descritivo que se encaixa em nossa arquitetura.
- Podemos usá-lo da maneira que quisermos, ou seja, para aplicativos, sistemas, ambientes, tipos de carga de trabalho, níveis ou até mesmo qualquer tipo de funções.
- Podemos definir uma única coleção de regras usando ASGs e NSGs. Só temos que aplicar um único NSG em toda a nossa rede virtual em todas as sub-redes.
- Dessa forma, a definição de um único NSG nos dá toda a visibilidade sobre todas as políticas de tráfego e um único lugar para a gestão. Assim, reduz o trabalho tedioso.
Benefícios do uso de ASGs:
- Podemos escalar em nosso próprio ritmo. Ao implantar os VMs, podemos torná-los membros dos ASGs apropriados.
- Se o VM estiver executando mais de uma carga de trabalho, podemos simplesmente atribuir vários ASGs.
- O acesso é sempre concedido com base em cargas de trabalho.
- Não precisamos nos preocupar com a definição de segurança nunca mais.
- O ponto mais importante a ser observado é que podemos implementar um modelo de confiança zero. Ou seja, podemos limitar o acesso aos fluxos de aplicativos que são explicitamente permitidos.
- Os ASGs introduzem a capacidade de implantar vários aplicativos na mesma sub-rede e também isolar o tráfego com base em ASGs.
- Com o uso de Grupos de Segurança do Azure, você pode reduzir o número de Grupos de Segurança de Rede em nossa assinatura.
- Em alguns casos, é tão útil que você pode usar um único NSG para várias sub-redes de sua rede virtual.
Passo a passo
Ambiente existente:
Em nosso ambiente temos duas máquinas virtuais com as seguintes funções:
- VM-SQL-EastUS-Dev – servidor com o Microsoft SQL Server 2019 instalado e regra de Inbound no Firewall do Windows liberando a porta 1433.
- VM-Cliente-SQL – servidor com o Microsoft SQL Server Management Studio instalado.
Criar Application security groups (ASG)
01 – Faça login no portal do azure.
02 – No portal do Azure pesquise por Application security groups.
03 – Na tela Application security groups clique em + Create.
04 – Na tela Create an application security group selecione a assinatura, grupo de recursos, nome para o recurso e região de provisionamento, em seguida clique em Review + create.
05 – Na tela Review + create clique em Create.
06 – Como podemos observar o recurso foi provisionado.
07 – No portal do Azure pesquise por Virtual machines, selecione a máquina virtual VM-SQL-EastUS-Dev.
08 – Após selecionar a máquina virtual em Settings clique em Networking.
09 – Na tela VM-SQL-EastUS-Dev | Networking clique em Application security groups.
10 – Em Application security groups clique em Configure the application security groups.
11 – Na tela Configure the application security groups em Application security groups selecione “ASG-SQL_Server” e clique em Save.
12 – Como podemos observar o Application security group “ASG-SQL_Server” foi associado a máquina virtual “VM-SQL-EastUS-Dev”.
Configurar regras NSG
13 – No portal pesquise por Network security groups.
14 – Na tela Network security groups selecione o nsg “NSG-VMs”.
15 – Na tela NSG-VMs em Settings clique em Inbound security rules.
16 – Na tela NSG-VMs | Inbound security rules percebam que temos a regra “Allow_RDP” liberando o acesso do meu endereço IP público a todas as máquinas virtuais da vnet na porta 3389.
17 – Observe que temos algumas regras criadas por padrão no Network Security Group, uma dessas regras é a AllowVnetInBound que permite a comunicação entre as subnets na mesma vnet, vamos criar uma regra que faça o bloqueio da comunicação entre as subnetes que estão na mesma vnet.
18 – Na tela Inbound security rules clique em + Add, a tela Add inbound security rule será aberta, em Source selecione Service Tag, para a opção Source service tag selecione VirtualNetwork, em Source port ranges vamos deixar o valor padrão que é qualquer porta “*”, para a opção Destination selecione VirtualNetwork, em Service deixe o valor Custom selecionado, para a opção Destination port ranges digite “*” que corresponde a qualquer porta, para a opção Protocol deixe selecionado Any, em Action selecione Deny, para a opção Priority vamos digitar o valor 600, Em Name selecione um nome para a regra, em Description digite um comentário para a regra e clique em Add.
19 – Nesse momento vamos criar a regra que libera o acesso do servidor VM-Cliente-SQL “192.168.1.5” ao Application security group que contém o servidor VM-SQL-EastUS-Dev “192.168.1.4” na porta 1433.
Na tela Inbound security rules clique em + Add, a tela Add inbound security rule será aberta, em Source selecione IP Address, para a opção Source IP adresses/CIDR ranges digite o endereço IP 192.168.1.5/32, em Source port ranges vamos deixar o valor padrão que é qualquer porta “*”, para a opção Destination selecione Application security group, para a opção Destination application security groups selecione “ASG-SQL_Server, para a opção Service selecione MS SQL, o Destination port ranges será preenchido automaticamente com o valor 1433, a opção Protocol será preenchido automaticamente como TCP, em Action selecione Allow, para a opção Priority vamos digitar o valor 510, Em Name selecione um nome para a regra “Allow_MS-SQL”, em Description digite um comentário para a regra e clique em Add.
20 – Como podemos observar a regra do NSG foi criada.
Conectando no SQL Server
21 – No servidor VM-Cliente-SQL “192.168.1.4” abra o Microsoft SQL Server Management Studio, na tela Connect to Server em Server name digite o endereço IP 192.168.1.4 (VM-SQL-EastUS-Dev), em Authentication selecione SQL Server Authentication, para a opção Login digite sa em Password digite a senha do banco de dados, em seguida clique em Connect.
22 – Como podemos observar conectamos no SQL Server instalado na máquina virtual VM-SQL-EastUS-Dev .
23 – Vamos conectar no servidor SQL Server VM-SQL-EastUS-Dev “192.168.1.4” de um servidor que não foi adicionado a regra do NSG “192.168.1.6”, liberando o acesso ao servidor VM-SQL-EastUS-Dev na porta 1433.
No servidor 192.168.1.6 abra o Microsoft SQL Server Management Studio, na tela Connect to Server em Server name digite o endereço IP 192.168.1.4, em Authentication selecione SQL Server Authentication, para a opção Login digite sa em Password digite a senha do banco de dados, em seguida clique em Connect.
Como podemos observar recebemos uma mensagem de erro informando que não conseguimos estabelecer uma conexão com o SQL Server.
Comente suas sugestões e observações!
Forte abraço, obrigado e até o próximo post.
Carreira desenvolvida na área de tecnologia da informação, com ampla experiência em Cloud
Computing e Cloud Security.
Forte atuação em projetos de Cloud Security no Microsoft Azure e com tecnologias de
segurança do Microsoft 365.
Tenho Experiência em Microsoft Azure, Microsoft 365, AWS e Windows Server.
Sou Microsoft MVP na categoria Microsoft Azure, AWS Communit Builder Security & Identity e
MCT.