Os grupos de segurança atuam como firewalls virtuais para pods executados como Elastic Container Instances (ECI) no Container Service for Kubernetes (ACK). Eles usam Stateful Packet Inspection (SPI) e filtragem de pacotes para controlar o tráfego de entrada e saída no nível do pod. Utilize grupos de segurança para definir domínios de segurança na nuvem.
Aplica-se a: Clusters ACK com Virtual Node (Virtual Kubelet) ativado
Antes de começar
Antes de atribuir grupos de segurança, verifique se você tem:
Um cluster ACK com o componente Virtual Node (Virtual Kubelet) instalado
Pelo menos um grupo de segurança criado na mesma Virtual Private Cloud (VPC) do cluster. Para criar um, consulte Criar um grupo de segurança
Virtual Kubelet v2.0.0.90-15deb126e-aliyun ou posterior, caso precise aplicar alterações de configuração no nível do cluster sem reiniciar os pods (atualização a quente). Para verificar a versão e atualizar se necessário, consulte as notas de lançamento do Virtual Kubelet
Limitações
Analise estas restrições antes de prosseguir:
|
Restrição |
Detalhe |
|
Associação obrigatória |
Cada elastic container instance deve pertencer a um grupo de segurança. |
|
Imutabilidade |
Não é possível alterar grupos de segurança em um pod em execução. Para mover um pod para outro grupo de segurança, crie um pod idêntico nesse novo grupo. |
|
Limite por pod |
Um pod pode pertencer a até cinco grupos de segurança. |
|
Mesma VPC |
Todos os grupos de segurança atribuídos a um pod devem estar na mesma VPC. |
|
Mesmo tipo |
Os grupos de segurança atribuídos a um pod devem ser do mesmo tipo: todos básicos ou todos avançados. |
|
Momento da anotação |
A anotação |
Tipos de grupo de segurança
O ECI oferece suporte a dois tipos de grupo de segurança:
|
Tipo |
Descrição |
Recomendado quando |
|
Grupo de segurança básico |
Grupo padrão com controle de tráfego baseado em regras |
Cargas de trabalho gerais |
|
Grupo de segurança avançado |
Maior capacidade de instâncias e gerenciamento simplificado de regras |
Implantações ECI em grande escala que exigem alta eficiência operacional |
Todas as instâncias em um grupo de segurança têm confiança mútua e proteção sob as mesmas regras. Essas regras controlam o acesso de ou para a Internet e a rede interna das elastic container instances associadas ao grupo.
Para uma comparação detalhada, consulte Grupos de segurança básicos e avançados.
Atribuir um grupo de segurança no nível do cluster
Por padrão, todos os pods baseados em ECI em um cluster ACK usam o grupo de segurança especificado no ConfigMap eci-profile. Para alterar o grupo de segurança padrão de todos os pods no cluster, edite este ConfigMap.
-
Abra o ConfigMap
eci-profilepara edição:kubectl edit configmap eci-profile -n kube-system -
Atualize
securityGroupIdna seçãodatacom o ID do seu grupo de segurança. O nível do cluster aceita apenas um ID de grupo de segurança.data: enableClusterIp: "true" enableHybridMode: "false" enablePrivateZone: "false" resourceGroupId: "" securityGroupId: sg-2ze0b9o8pjjzts4h**** # Specify a single security group ID. selectors: "" vSwitchIds: vsw-2zeet2ksvw7f14ryz****,vsw-2ze94pjtfuj9vaymf**** vpcId: vpc-2zeghwzptn5zii0w7**** Salve o arquivo. Se o Virtual Kubelet for da versão v2.0.0.90-15deb126e-aliyun ou posterior, a alteração entrará em vigor imediatamente, sem necessidade de reiniciar os pods existentes.
Atribuir grupos de segurança a um pod específico
Para substituir o padrão do cluster para pods individuais, adicione a anotação k8s.aliyun.com/eci-security-group à especificação do pod. Esse recurso é útil quando cargas de trabalho específicas exigem políticas de rede mais restritivas ou permissivas.
Adicione as anotações em spec.template.metadata para Deployments — e não no metadata de nível superior. As anotações só entram em vigor no momento da criação do pod.
O exemplo a seguir atribui dois grupos de segurança a todos os pods criados pelo Deployment test:
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
labels:
app: test
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
name: nginx-test
labels:
app: nginx
alibabacloud.com/eci: "true"
annotations:
k8s.aliyun.com/eci-security-group: "sg-bp1dktddjsg5nktv****,sg-2ze0b9o8pjjzts4h****" # Up to 5 IDs, comma-separated.
spec:
containers:
- name: nginx
image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
ports:
- containerPort: 80
Adicionar uma regra de grupo de segurança
As regras de grupo de segurança determinam qual tráfego pode alcançar seus pods. Casos de uso comuns:
Habilitar comunicação entre grupos de segurança: Adicione uma regra para permitir tráfego de serviços externos ao grupo de segurança do pod.
Bloquear origens maliciosas: Adicione uma regra para impedir acessos de fontes específicas ao detectar ataques.
Para adicionar uma regra, consulte Adicionar uma regra de grupo de segurança.
Próximos passos
Visão geral dos grupos de segurança — Entenda o funcionamento dos grupos de segurança e a avaliação das regras
Grupos de segurança básicos e avançados — Compare os dois tipos para escolher a opção ideal para sua carga de trabalho