CodeGym /Cursos /Docker SELF /Fundamentos da segurança de redes Docker

Fundamentos da segurança de redes Docker

Docker SELF
Nível 18 , Lição 3
Disponível

9.1 Aspectos principais de segurança de redes Docker

Nesta aula, vamos dar uma olhada nos principais aspectos de segurança de redes Docker, recomendações e melhores práticas pra garantir a proteção dos seus containers e dados.

Aspectos principais de segurança de redes Docker

  1. Isolamento de containers
  2. Controle de acesso
  3. Criptografia de dados
  4. Monitoramento e auditoria
  5. Atualizações e patches

9.2 Isolamento de containers

O isolamento de containers é o primeiro passo pra garantir a segurança de redes Docker. Ele ajuda a minimizar os impactos de vulnerabilidades potenciais e evita o acesso não autorizado entre containers.

Usando redes personalizadas

Crie redes personalizadas pra isolar containers, limitando a interação deles apenas aos serviços necessários.

Terminal

docker network create --driver bridge my_secure_network

No Docker Compose, você pode definir uma rede personalizada para cada serviço.

Yaml

version: '3.8'

services:
  web:
    image: nginx:latest
    networks:
      - my_secure_network
        
  app:
    image: myapp:latest
    networks:
      - my_secure_network
        
networks:
  my_secure_network:
    driver: bridge

Usando regras entre containers

O Docker permite definir regras entre containers pra gerenciar a interação entre eles no nível da rede.

Terminal

docker network connect --link <source_container>:<alias> <target_network> <container_name>

Exemplo:

Terminal

docker network connect --link container1:c1 multi-host-network container2

9.3 Controle de Acesso

O controle de acesso é importante pra evitar acesso não autorizado aos containers e redes.

Restrição de acesso às portas

Restrinja o acesso às portas publicadas usando endereços IP e regras de firewall.

Terminal

docker run -d -p 127.0.0.1:8080:80 --name my_secure_container nginx

Uso de roles e políticas

Use roles e políticas de acesso pra limitar os direitos dos usuários que gerenciam os containers e redes.

Terminal

docker run -d --user <uid>:<gid> my_secure_container

9.4 Criptografia de dados

Criptografia de dados ajuda a proteger dados confidenciais tanto em repouso quanto durante a transmissão.

Criptografia de dados em repouso

Use criptografia do sistema de arquivos para volumes usados pelos containers.

Terminal

docker run -d --name my_secure_container --mount 
type=volume,source=my_volume,destination=/data,volume-driver=local,volume-opt=o=bind,volume-opt=device=/mnt/secure_data nginx

Criptografia de dados durante a transmissão

Use TLS para criptografar dados transmitidos entre containers e serviços externos.

Terminal

docker run -d -p 443:443 --name my_secure_container -v /path/to/cert.pem:/etc/nginx/cert.pem -v 
/path/to/key.pem:/etc/nginx/key.pem nginx

9.5 Monitoramento e auditoria

O monitoramento e a auditoria permitem rastrear a atividade dos containers e das redes, identificar possíveis ameaças e reagir a elas.

Logs e métricas

Recolha logs e métricas dos containers para análise e monitoramento.

Terminal

docker logs <container_name>

Use ferramentas de monitoramento, como Prometheus e Grafana, para rastrear o estado dos containers e das redes.

Auditoria

Ative a auditoria para rastrear ações dos usuários e alterações na configuração de containers e redes.

Terminal

docker events

9.6 Atualizações e patches

Atualizações e patches regulares ajudam a proteger os containers e redes contra vulnerabilidades conhecidas.

Atualização do Docker

Fique de olho nas atualizações do Docker e instale as novas versões no tempo certo.

Terminal

sudo apt-get update

sudo apt-get install docker-ce

Atualização das imagens

Atualize regularmente as imagens dos containers para as versões mais recentes, que incluem correções de segurança.

Terminal

docker pull nginx:latest

9.7 Exemplos de Melhores Práticas

Exemplo 1: Criando redes isoladas

Crie redes isoladas para cada componente do seu aplicativo.

Terminal

docker network create --driver bridge frontend_network

docker network create --driver bridge backend_network

Execute os containers nas respectivas redes.

Terminal

docker run -d --name frontend --network frontend_network nginx

docker run -d --name backend --network backend_network myapp

Exemplo 2: Restringindo o acesso às portas

Restrinja o acesso às portas dos containers apenas para os endereços IP e hosts necessários.

Terminal

docker run -d -p 192.168.1.100:8080:80 --name restricted_container nginx

Exemplo 3: Usando TLS para criptografia

Configure os containers para usar TLS para proteger os dados durante a transmissão.

Terminal

docker run -d -p 443:443 --name tls_container -v /path/to/cert.pem:/etc/nginx/cert.pem -v 
/path/to/key.pem:/etc/nginx/key.pem nginx
1
Опрос
Docker Swarm,  18 уровень,  3 лекция
недоступен
Docker Swarm
Docker Swarm
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION