-
Controla o trafego entre os pods
-
A CNI precisa ser compatível com a network policy
-
O trafego é dividido em duas categorias:
- Ingress: O que entra
- Egress: O que sai
-
Por padrão todos os pod se comunicam entre sí sem nenhuma configuração adicional
-
Caso não seja mencionado, o PolicyType manterá o padrão. Ou seja, vai poder se comunicar com qualquer um
-
Quando é configurado um ingress, o egress daquela porta é configurado automaticamente
-
Por padrão, desde de que o podSelector do from case com o podlabel, vai funcionar para qualquer namespace
-
A porta que referenciada por ports é a targetPort do service. Ou seja, aporta do container
-
Para selecionar o pod que se conectará ao elemento restringido, é possível selecionar por:
networkpolicy.spec.ingress.from.ipBlock
networkpolicy.spec.ingress.from.namespaceSelector
networkpolicy.spec.ingress.from.podSelector
-
Para definir uma NetworkPolicy siga os seguintes passos:
- Defina qual o pod que receberá a regra usando `networkpolicy.spec.podSelector.matchLabels
- Defina qual tipo de regra que será aplicada
Egress
ouIngress
ou ambas - Caso seja ingress, defina o
networkpolicy.spec.ingress.from
bem como asnetworkpolicy.spec.ingress.ports
- Caso seja egress, defina o
networkpolicy.spec.ingress.to
bem como asnetworkpolicy.spec.ingress.ports
[!NOTE]- Criação de uma
Secret
filePath: "@/Attachments/Kubernetes/networkpolicy/netpol-ingress-test.yaml"
[!NOTE]- Criação de uma
Secret
filePath: "@/Attachments/Kubernetes/networkpolicy/netpol-egress-test.yaml"
[!NOTE]- Criação de uma
Secret
filePath: "@/Attachments/Kubernetes/networkpolicy/netpol-allow-all-test.yaml"
[!NOTE]- Criação de uma
Secret
filePath: "@/Attachments/Kubernetes/networkpolicy/netpol-deny-all-test.yaml"
Node metadata protection
- Dado que tenho uma aplicação comprometida na cloud e ela consegue fazer requisições para o endpoint de metadados, qualquer informação sensível estará exposta.
- O endereço padrão de metadado é
http://169.254.169.254/latest/meta-data
filePath: "@/Attachments/Kubernetes/networkpolicy/cks/default-deny.yaml"
filePath: "@/Attachments/Kubernetes/networkpolicy/cks/block-metadata-retrieval.yaml"
MUITO IMPORTANTE LEMBRAR QUE 0.0.0.0/0 LIBERA PRA TODOS E CIDR/32 'e um IP SO'