9.1 Docker Şəbəkələrinin Təhlükəsizliyinin Əsas Aspektləri
Docker şəbəkələrinin təhlükəsizliyi, konteynerləşdirilmiş tətbiqləri potensial təhdidlərdən qorumaq üçün əsas rol oynayır. Bu mühazirədə biz Docker şəbəkələrinin təhlükəsizliyinin əsas aspektlərini, tövsiyələri və konteynerlərinizin və məlumatlarınızın qorunması üçün ən yaxşı təcrübələri nəzərdən keçirəcəyik.
Docker şəbəkələrinin təhlükəsizliyinin əsas aspektləri
- Konteynerlərin izolyasiyası
- Giriş nəzarəti
- Məlumatların şifrələnməsi
- Monitorinq və audit
- Yeniləmələr və patçlar
9.2 Konteynerlərin izolyasiyası
Konteynerlərin izolyasiyası — Docker şəbəkələrinin təhlükəsizliyini təmin etmək üçün ilk addımdır. Bu, potensial zəifliklərin təsirini minimuma endirməyə və konteynerlər arasında icazəsiz girişin qarşısını almağa kömək edir.
İstifadəçi şəbəkələrindən istifadə
Konteynerləri izolyasiya etmək, onların yalnız lazım olan servislərlə qarşılıqlı əlaqədə olmasını təmin etmək üçün istifadəçi şəbəkələri yaradın.
docker network create --driver bridge my_secure_network
Docker Compose-da hər bir servis üçün istifadəçi şəbəkəsini təyin edə bilərsiniz.
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
Konteynerlər arası qaydalardan istifadə
Docker şəbəkədə konteynerlər arasındakı qarşılıqlı əlaqəni idarə etmək üçün konteynerlər arası qaydalar təyin etməyə imkan verir.
docker network connect --link <source_container<:<alias< <target_network< <container_name<
Nümunə:
docker network connect --link container1:c1 multi-host-network container2
9.3 Girişə nəzarət
Girişə nəzarət, konteynerlərə və şəbəkələrə icazəsiz girişi qarşısını almaq üçün vacibdir.
Portlara girişin məhdudlaşdırılması
IP ünvanlarını və firewall qaydalarını istifadə edərək yayımlanmış portlara girişi məhdudlaşdırın.
docker run -d -p 127.0.0.1:8080:80 --name my_secure_container nginx
Rolların və siyasətlərin istifadəsi
İstifadəçilərin konteynerlərə və şəbəkələrə idarəetmə hüquqlarını məhdudlaşdırmaq üçün rolları və giriş siyasətlərini istifadə edin.
docker run -d --user <uid>:<gid> my_secure_container
9.4 Məlumatların şifrələnməsi
Məlumatların şifrələnməsi, məxfi məlumatları həm dayanma vəziyyətində, həm də ötürülmə zamanı qorumağa kömək edir.
Məlumatların dayanma vəziyyətində şifrələnməsi
Konteynerlərin istifadə etdiyi həcm üçün fayl sistemi şifrələməsindən istifadə edin.
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əlumatların ötürülmə zamanı şifrələnməsi
Konteynerlər və xarici servislər arasında ötürülən məlumatları şifrələmək üçün TLS istifadə edin.
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 Monitorinq və audit
Monitorinq və audit konteynerlərin və şəbəkələrin fəaliyyətini izləməyə, potensial təhlükələri müəyyənləşdirməyə və onlara reaksiya verməyə imkan verir.
Loglar və metrikalar
Konteynerlərdən loglar və metrikalar toplayın, analiz və monitorinq üçün istifadə edin.
docker logs <container_name>
Konteynerlərin və şəbəkələrin vəziyyətini izləmək üçün Prometheus və Grafana kimi monitorinq vasitələrindən istifadə edin.
Audit
İstifadəçilərin fəaliyyətini və konteynerlərin, şəbəkələrin konfiqurasiyasındakı dəyişiklikləri izləmək üçün auditi aktiv edin.
docker events
9.6 Yeniləmələr və patch-lər
Daimi yeniləmələr və patch-lər konteynerləri və şəbəkələri məlum zəifliklərdən qorumağa kömək edir.
Docker-i yeniləmə
Docker yeniləmələrini izləyin və yeni versiyaları vaxtında quraşdırın.
sudo apt-get update
sudo apt-get install docker-ce
İmage-lərin yenilənməsi
Daimi olaraq konteyner image-lərini təhlükəsizlik düzəlişlərini daxil edən sonuncu versiyalara qədər yeniləyin.
docker pull nginx:latest
9.7 Ən yaxşı təcrübələrin nümunələri
Nümunə 1: İzolyasiya olunmuş şəbəkələrin yaradılması
Ərizənizin hər bir komponenti üçün izolyasiya olunmuş şəbəkələr yaradın.
docker network create --driver bridge frontend_network
docker network create --driver bridge backend_network
Konteynerləri uyğun şəbəkələrdə başladın.
docker run -d --name frontend --network frontend_network nginx
docker run -d --name backend --network backend_network myapp
Nümunə 2: Portlara girişin məhdudlaşdırılması
Konteynerlərin portlarına girişi yalnız lazımlı IP ünvanlarına və hostlara məhdudlaşdırın.
docker run -d -p 192.168.1.100:8080:80 --name restricted_container nginx
Nümunə 3: Şifrələmə üçün TLS istifadəsi
Konteynerləri məlumatların ötürülməsi zamanı qorunması üçün TLS istifadə etmək üçün sazlayın.
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
GO TO FULL VERSION