CodeGym /コース /Docker SELF /Dockerネットワークセキュリティの基礎

Dockerネットワークセキュリティの基礎

Docker SELF
レベル 18 , レッスン 3
使用可能

9.1 Dockerネットワークセキュリティの主要側面

この講義では、Dockerネットワークセキュリティの主要側面、推奨事項、そしてコンテナやデータを保護するためのベストプラクティスについて学びます。

Dockerネットワークセキュリティの主要側面

  1. コンテナの分離
  2. アクセス制御
  3. データの暗号化
  4. モニタリングと監査
  5. 更新とパッチ

9.2 コンテナの分離

コンテナの分離は、Dockerネットワークのセキュリティを確保するための最初のステップだよ。これによって、潜在的な脆弱性の影響を最小限に抑えたり、コンテナ間の無許可アクセスを防ぐことができる。

カスタムネットワークの使用

コンテナを分離するためにはカスタムネットワークを作成し、必要なサービスだけとやり取りするように制限しよう。

Terminal

docker network create --driver bridge my_secure_network

Docker Composeでは、各サービスごとにカスタムネットワークを定義できるよ。

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

コンテナ間ルールの使用

Dockerではネットワークレベルでコンテナ間のやり取りを管理するためのルールを設定できるんだ。

Terminal

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

例:

Terminal

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

9.3 アクセス制御

アクセス制御は、コンテナやネットワークへの不正アクセスを防ぐために重要だよ。

ポートへのアクセス制限

IPアドレスやファイアウォールルールを使って、公開されているポートへのアクセスを制限しよう。

Terminal

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

ロールとポリシーの利用

コンテナやネットワークを管理するユーザーの権限を制限するために、ロールやアクセスポリシーを活用してね。

Terminal

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

9.4 データ暗号化

データ暗号化は、静止中と転送中の機密データを保護するのに役立つよ。

静止中のデータ暗号化

コンテナが使用するボリュームにファイルシステム暗号化を適用しよう。

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

転送中のデータ暗号化

コンテナと外部サービス間のデータ送信を暗号化するためにTLSを使用しよう。

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 監視と監査

監視と監査を通じて、コンテナやネットワークのアクティビティを追跡し、潜在的な脅威を識別して対応できるようになるよ。

ログとメトリクス

コンテナのログとメトリクスを収集して分析・監視しよう。

Terminal

docker logs <container_name>

Prometheus や Grafana みたいな監視ツールを使って、コンテナやネットワークの状態を追跡しよう。

監査

ユーザーの操作やコンテナ、ネットワークの設定変更を追跡するために監査を有効にしてね。

Terminal

docker events

9.6 アップデートとパッチ

定期的なアップデートとパッチは、既知の脆弱性からコンテナやネットワークを保護するのに役立つよ。

Dockerのアップデート

Dockerのアップデートをチェックして、新しいバージョンをタイムリーにインストールしてね。

Terminal

sudo apt-get update

sudo apt-get install docker-ce

イメージのアップデート

セキュリティ修正を含む最新バージョンにコンテナイメージを定期的にアップデートしてね。

Terminal

docker pull nginx:latest

9.7 ベストプラクティスの例

例 1: 分離されたネットワークの作成

アプリケーションの各コンポーネント用に分離されたネットワークを作成してください。

Terminal

docker network create --driver bridge frontend_network

docker network create --driver bridge backend_network

対応するネットワークでコンテナを起動します。

Terminal

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

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

例 2: ポートへのアクセス制限

コンテナのポートへのアクセスを必要なIPアドレスやホストのみに制限してください。

Terminal

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

例 3: 暗号化のためのTLSの使用

データ転送を保護するため、コンテナでTLSの使用を設定してください。

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
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION