CodeGym /Các khóa học /Docker SELF /Cơ bản về bảo mật mạng Docker

Cơ bản về bảo mật mạng Docker

Docker SELF
Mức độ , Bài học
Có sẵn

9.1 Những khía cạnh chính của bảo mật mạng Docker

Trong bài giảng này, tụi mình sẽ xem qua những khía cạnh chính của bảo mật mạng Docker, các khuyến nghị và thực hành tốt nhất để bảo vệ container và dữ liệu của bạn.

Những khía cạnh chính của bảo mật mạng Docker

  1. Cách ly container
  2. Kiểm soát truy cập
  3. Mã hóa dữ liệu
  4. Giám sát và kiểm tra
  5. Cập nhật và vá lỗi

9.2 Cách ly container

Cách ly container là bước đầu tiên để đảm bảo bảo mật mạng Docker. Điều này giúp giảm thiểu tác động từ các lỗ hổng tiềm ẩn và ngăn chặn truy cập trái phép giữa các container.

Sử dụng mạng tùy chỉnh

Tạo các mạng tùy chỉnh để cách ly container, giới hạn tương tác của chúng chỉ với các dịch vụ cần thiết.

Terminal

docker network create --driver bridge my_secure_network

Trong Docker Compose, bạn có thể định nghĩa mạng tùy chỉnh cho từng dịch vụ.

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

Sử dụng quy tắc giữa container

Docker cho phép đặt các quy tắc giữa container để quản lý tương tác giữa các container ở cấp độ mạng.

Terminal

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

Ví dụ:

Terminal

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

9.3 Kiểm soát truy cập

Kiểm soát truy cập quan trọng để ngăn chặn truy cập trái phép vào container và mạng.

Giới hạn truy cập vào cổng

Hãy giới hạn truy cập vào các cổng được công bố, sử dụng địa chỉ IP và các quy tắc firewall.

Terminal

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

Sử dụng vai trò và chính sách

Sử dụng vai trò và chính sách truy cập để hạn chế quyền của người dùng quản lý container và mạng.

Terminal

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

9.4 Mã hóa dữ liệu

Mã hóa dữ liệu giúp bảo vệ thông tin nhạy cảm cả khi dữ liệu ở trạng thái tĩnh và khi truyền tải.

Mã hóa dữ liệu ở trạng thái tĩnh

Sử dụng mã hóa hệ thống tệp cho các volume được container sử dụng.

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

Mã hóa dữ liệu khi truyền tải

Sử dụng TLS để mã hóa dữ liệu truyền giữa các container và các dịch vụ bên ngoài.

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 Giám sát và kiểm toán

Giám sát và kiểm toán cho phép theo dõi hoạt động của container và mạng, phát hiện các mối đe dọa tiềm tàng và phản hồi kịp thời.

Log và metric

Thu thập log và metric của container để phân tích và giám sát.

Terminal

docker logs <container_name>

Sử dụng các công cụ giám sát như Prometheus và Grafana để theo dõi trạng thái của container và mạng.

Kiểm toán

Bật kiểm toán để theo dõi hành động của người dùng và các thay đổi cấu hình của container và mạng.

Terminal

docker events

9.6 Cập nhật và bản vá

Các bản cập nhật và bản vá thường xuyên giúp bảo vệ container và mạng khỏi những lỗ hổng đã biết.

Cập nhật Docker

Theo dõi các bản cập nhật của Docker và cài đặt phiên bản mới kịp thời.

Terminal

sudo apt-get update

sudo apt-get install docker-ce

Cập nhật image

Thường xuyên cập nhật image của container lên các phiên bản mới nhất có chứa bản vá bảo mật.

Terminal

docker pull nginx:latest

9.7 Ví dụ về các thực hành tốt nhất

Ví dụ 1: Tạo các mạng biệt lập

Tạo các mạng biệt lập cho từng thành phần của ứng dụng của bạn.

Terminal

docker network create --driver bridge frontend_network

docker network create --driver bridge backend_network

Chạy các container trong các mạng tương ứng.

Terminal

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

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

Ví dụ 2: Giới hạn truy cập vào các cổng

Hạn chế truy cập vào các cổng của container chỉ cho các địa chỉ IP cần thiết và các host cần thiết.

Terminal

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

Ví dụ 3: Sử dụng TLS để mã hóa

Cấu hình các container để sử dụng TLS nhằm bảo vệ dữ liệu khi truyền tải.

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
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION