Use o NAT Gateway, o SLB ou o gerenciamento de sessões em vez de atribuir endereços IP públicos diretamente às instâncias ECS.
Riscos de segurança
Atribuir um endereço IP público, como um EIP ou um endereço IP público estático, diretamente a uma instância ECS expande a superfície de ataque e introduz os seguintes riscos:
Varredura e descoberta passivas: Portas de serviço expostas são descobertas por scanners, levando a ataques DDoS ou à exploração de vulnerabilidades remotas que podem comprometer o host.
Ataques a portas vulneráveis: Grupos de segurança mal configurados podem expor portas de gerenciamento, como SSH (porta 22), RDP (porta 3389) e SMB (porta 445), à Internet. Essas portas são altamente suscetíveis a ataques de força bruta, adivinhação de senhas e roubo de credenciais, resultando em hosts comprometidos e violações de dados.
Aumento da complexidade de gerenciamento: Gerenciar endereços IP públicos e políticas de controle de acesso por instância aumenta a complexidade de O&M, eleva o risco de erros de configuração e cria pontos únicos de falha.
Não conformidade com os requisitos de proteção classificada: Padrões como o MLPS 2.0 exigem que todo o acesso à rede pública seja seguro, controlável e auditável. Use o SLB, o NAT Gateway ou o Bastionhost para centralizar o controle de acesso à rede pública em vez de expor as instâncias diretamente.
Práticas recomendadas
Configurar grupos de segurança
Um grupo de segurança é um firewall virtual que controla o tráfego de entrada e saída para instâncias ECS. A configuração adequada do grupo de segurança é a base da defesa de rede do ECS.
Princípio fundamental: Menor privilégio. Siga o princípio do menor privilégio para todas as regras de entrada e saída:
Especificar objetos de autorização: Use endereços IP específicos ou blocos CIDR, como o IP de saída da sua empresa ou endereços IP privados de outros recursos de nuvem. Evite 0.0.0.0/0, a menos que o serviço precise ser acessível publicamente, como serviços web nas portas 80/443.
Especificar portas autorizadas: Abra apenas as portas necessárias. Nunca exponha portas de gerenciamento remoto ou de banco de dados à Internet.
Exemplo incorreto:
Um usuário anexou um endereço IP público a uma instância ECS e definiu o endereço de origem para SSH (22) e Redis (6379) como 0.0.0.0/0 no grupo de segurança. O usuário root tinha uma senha fraca e o Redis não tinha senha. Em 5 minutos, um scanner automatizado comprometeu o servidor e roubou dados.
Restringir a porta 22 ao endereço IP da empresa e a porta 6379 à rede interna da VPC teria bloqueado a exploração direta pela Internet, mesmo com uma senha fraca.
Portas vulneráveis comuns. Sempre restrinja o intervalo de endereços IP de origem para as seguintes portas:
Categoria da porta | Porta/Protocolo | Nome do serviço | Risco principal |
Gerenciamento remoto | 22/TCP, 3389/TCP | SSH, RDP | Ataques de força bruta, obtenção de controle total do servidor |
Banco de dados | 3306/TCP, 6379/TCP, 1433/TCP | MySQL, Redis, SQL Server | Acesso não autorizado, violação de dados, execução remota de código (RCE) |
Compartilhamento de arquivos | 445/TCP, 139/TCP | SMB, NetBIOS | Propagação de worms (como o EternalBlue), roubo de arquivos |
Gerenciamento de aplicações web | 7001/TCP, 8080/TCP | WebLogic, Tomcat | Senhas fracas de backend, vulnerabilidades de desserialização, levando a RCE |
Conectar-se a instâncias ECS com segurança
Expor o SSH (porta 22) ou o RDP (porta 3389) à Internet torna as instâncias vulneráveis a ataques de força bruta. Em vez disso, use as seguintes ferramentas de O&M do Alibaba Cloud.
Solução | Cenários |
Conexão de terminal do Workbench | Gerenciamento diário rápido e temporário, adequado para iniciantes |
Gerenciamento de sessões | Uso diário por desenvolvedores e engenheiros de O&M, com zero de exposição de portas |
Bastionhost | Uso em nível empresarial com requisitos rígidos de conformidade e auditoria |
Conectar-se com o Workbench
O Workbench abre um shell seguro ou uma sessão RDP no seu navegador. Recomendado para o gerenciamento diário.
Como funciona: As solicitações são autenticadas e retransmitidas pelo cluster de serviços do Workbench antes de chegarem à instância. O grupo de segurança precisa apenas permitir o intervalo de endereços IP do serviço Workbench na porta de gerenciamento, minimizando a superfície de ataque.
Como usar:
Conectar-se com o gerenciamento de sessões
O gerenciamento de sessões oferece zero de exposição de portas para um gerenciamento flexível de instâncias.
Como funciona: O Agente do Cloud Assistant estabelece uma conexão reversa criptografada com o serviço Cloud Assistant. Todas as operações de O&M passam por esse túnel, portanto, a instância não escuta em nenhuma porta de entrada.
Como usar:
Proteger o acesso de saída à Internet
As instâncias ECS frequentemente precisam de acesso de saída à Internet para baixar pacotes, atualizar sistemas ou chamar APIs de terceiros.
Usar um NAT Gateway
Como funciona:
As instâncias ECS dentro de uma VPC não possuem endereços IP públicos.
As rotas da VPC direcionam todo o tráfego de saída para o NAT Gateway.
O NAT Gateway traduz os endereços IP privados para o seu endereço IP público antes de enviar solicitações para a Internet.
Principais vantagens:
Ocultar instâncias de backend: Apenas o endereço IP público do NAT Gateway é visível na Internet. As instâncias ECS de backend não podem ser descobertas ou acessadas diretamente.
Gerenciamento centralizado: Gerencie o tráfego de saída por meio de um único ponto de saída da VPC.
Economizar endereços IP públicos: Várias instâncias ECS compartilham um ou mais endereços IP públicos.
Consulte Usar o recurso SNAT de um NAT Gateway de Internet para acessar a Internet.
Configurar regras de grupo de segurança de saída
Mesmo com acesso apenas de saída, uma instância comprometida pode se conectar a servidores externos de comando e controle (C&C). As regras de grupo de segurança de saída bloqueiam essas conexões maliciosas.
Defina uma política de negação padrão. Adicione uma regra de saída com a prioridade mais baixa (como 100): política "Negar", destino 0.0.0.0/0, intervalo de portas todas.
Permita os serviços necessários do Alibaba Cloud. Adicione regras de permissão de alta prioridade para endereços de serviços básicos do Alibaba Cloud. Por exemplo:
Agente do Security Center: 100.100.0.0/16, 106.11.0.0/16 e outros nas portas 80/443.
Agente do Cloud Assistant: 100.100.100.200:80 e os nomes de domínio do serviço Cloud Assistant para cada região.
Fonte de espelho do Alibaba Cloud/OSS/SLS: Resolva os nomes de domínio regionais e adicione seus endereços IP.
Permita destinos de negócios. Para acessar um domínio específico (como github.com), resolva seus endereços IP com
digounslookupe adicione-os às regras de permissão de saída.
Proteger o acesso de entrada à Internet
Quando as instâncias ECS servem sites, backends de aplicativos ou APIs para usuários da Internet, evite anexar endereços IP públicos diretamente.
Usar o SLB
Anexar um endereço IP público diretamente a uma instância ECS expõe o servidor de backend e não oferece alta disponibilidade. Use o Server Load Balancer (SLB), como o Application Load Balancer (ALB) ou o Network Load Balancer (NLB), em ambientes de produção.
Como funciona:
As solicitações do usuário chegam ao endpoint público do SLB.
O SLB distribui as solicitações para instâncias ECS de backend íntegras com base em regras de encaminhamento e verificações de integridade.
As instâncias ECS de backend se comunicam com o SLB apenas pela rede interna.
Principais vantagens:
Ocultar servidores de backend: A instância do SLB atua como o endpoint voltado para o usuário, ocultando os endereços IP das instâncias ECS de backend.
Alta disponibilidade: O SLB remove automaticamente instâncias não íntegras e executa o failover.
Distribuição de carga: O SLB distribui o tráfego entre várias instâncias ECS para dimensionamento horizontal.
Segurança integrada: Integre o SLB com o WAF e outros produtos de segurança para proteger contra ataques na camada de aplicação.
Consulte Implementar rapidamente o balanceamento de carga para serviços IPv4.
Configurar grupos de segurança para instâncias de backend
Configure os grupos de segurança para as instâncias ECS de backend da seguinte forma:
Nas regras de entrada, permita o tráfego do intervalo de endereços IP do serviço SLB para portas de serviço, como 80/443.
Negue todos os outros endereços IP de origem.
Usar o encaminhamento de porta do Cloud Assistant para acesso local
Use o encaminhamento de porta do Cloud Assistant para um pequeno número de instâncias ECS com acesso à rede privada ou testes temporários, onde os requisitos de qualidade de rede são baixos e os custos de largura de banda pública devem ser evitados. Adequado para testes em pequena escala ou chamadas de serviço remoto antes que um sistema completo de defesa de segurança esteja implementado.
Exemplo: Acessar um serviço PostgreSQL em uma instância ECS a partir de uma máquina local
Um serviço PostgreSQL em uma instância ECS escuta na porta 5432. Você pode acessá-lo localmente sem anexar um endereço IP público ou abrir a porta 5432 no grupo de segurança.
O encaminhamento de porta via CLI de gerenciamento de sessões mapeia uma porta remota (como 5432) para uma porta local (como 8080). O tráfego para 127.0.0.1:8080 é encaminhado por meio de um canal criptografado do Cloud Assistant para a instância ECS.
Mapeie a porta
5432da instância ECS de destino para a porta8080na sua máquina local:ali-instance-cli.exe portforward -i <instance_id> -r <target_port> -l <local_port>instance_id: O ID da instância.target_port: A porta da instância de destino.local_port: A porta local.Inicie o pgAdmin e conecte-se a
127.0.0.1:8080. As solicitações são encaminhadas para a porta5432na instância ECS por meio do canal do Cloud Assistant.
Recursos de conformidade
Verificar
Consultar instâncias ECS com endereços IP públicos
Acesse o console do Security Center.
No painel de navegação, escolha . Na aba Cloud Product Configuration Risk, encontre Usar pares de chaves SSH para login e clique em Scan na coluna Operation.
Um status Failed indica instâncias Linux que não usam autenticação por par de chaves. Clique em Details para visualizá-las.
Verificar grupos de segurança com portas vulneráveis expostas
Acesse o ECS Insight.
Na aba Security, clique em Unrestricted Access to Specific Security Group Ports para visualizar instâncias com acesso irrestrito a portas vulneráveis.
Bloquear
Proibir a anexação de endereços IP públicos a instâncias ECS
Para usuários empresariais:
Faça login no console do Resource Directory. No painel de navegação, clique em Control Policies. Crie uma política personalizada com o seguinte conteúdo JSON.
{ "Version": "1", "Statement": [ { "Effect": "Deny", "Action": [ "ecs:RunInstances", "ecs:CreateInstance", "ecs:ModifyInstanceSpec", "ecs:ModifyInstanceNetworkSpec" ], "Resource": "*", "Condition": { "Bool": { "ecs:AssociatePublicIpAddress": [ "true" ] } } }, { "Effect": "Deny", "Action": [ "vpc:AllocateEipAddress", "vpc:AllocateEipAddressPro", "vpc:AllocateEipSegmentAddress", "eipanycast:AllocateAnycastEipAddress" ], "Resource": "*" } ] }Anexe a política ao nó apropriado do diretório de recursos. A política bloqueia as operações especificadas para todas as contas sob esse nó.
Para usuários não empresariais:
Faça login no console do RAM. No painel de navegação, clique em Permission Policy e crie uma política personalizada com o mesmo conteúdo.
Use o gerenciamento de autorização de política de acesso para conceder a política a um usuário RAM, grupo de usuários RAM ou função RAM.
Restringir o acesso a portas vulneráveis a partir de qualquer endereço
Para usuários empresariais:
Faça login no console do Resource Directory. No painel de navegação, clique em Control Policies. Crie uma política personalizada com o seguinte conteúdo JSON.
{ "Version": "1", "Statement": [ { "Effect": "Deny", # Deny "Action": [ "ecs:AuthorizeSecurityGroup", # Add an inbound security group rule "ecs:ConfigureSecurityGroupPermissions", # Add or modify security group rules "ecs:ModifySecurityGroupRule" # Modify a security group rule ], "Resource": "acs:ecs:*:*:securitygroup/*", # For all security groups "Condition": { "StringEquals": { "ecs:SecurityGroupSourceCidrIps": [ # Source IP for access "0.0.0.0/0", "::/0" ] }, "ForAllValue:StringEquals": { "ecs:SecurityGroupPort" : [ # Includes the following destination port numbers "22", "3389", "445" ] } } } ] }Anexe a política ao nó apropriado do diretório de recursos. A política bloqueia as operações especificadas para todas as contas sob esse nó.
Para usuários não empresariais:
Faça login no console do RAM. No painel de navegação, clique em Permission Policy e crie uma política personalizada com o mesmo conteúdo.
Use o gerenciamento de autorização de política de acesso para conceder a política a um usuário RAM, grupo de usuários RAM ou função RAM.
Corrigir
Desanexar um endereço IP público estático: Defina a largura de banda para 0 Mbps para liberá-lo automaticamente. Consulte Modificar a largura de banda de uma instância por assinatura e Modificar a largura de banda de uma instância pós-paga.
Desanexar um EIP: Consulte Desassociar um EIP de uma instância ECS.