このページで
セキュリティのベスト プラクティス
コンテナ環境の監視とセキュリティ強化に必要なベスト プラクティスを以下に示します。
ホストOSの堅牢性
オペレーティング システムのセキュリティ強化には次の特長があります。
-
ホストOSとDockerソフトウェアの両方が最新のセキュリティパッチで更新されていることを確認します。
-
ダウンロードから検証されたコンテナー イメージを ダウンロードします。
-
docker を root 権限を持たない非 root ユーザーとして実行します。これはルートレス モードと呼ばれます。このモードでは、ユーザー名前空間内でdockerとコンテナが実行されます。コンテナとDocker Engineサービスの両方を非ルートユーザーとして実行すると、違反が発生した場合のセキュリティが向上します。
-
コンテナの実行に必要なメモリと CPU の指定量を設定して、サービス拒否攻撃を防止します。
-
コンテナ内でのsshdの使用は避けてください。
-
ARP スプーフィングおよび MAC フラッディング攻撃からのデフォルト ブリッジ
docker0
の使用を回避します。 -
コンテナのルート ファイルシステムを読み取り専用に設定して、悪意のある攻撃を防ぎます。
-
プロセス識別子(PID)制限を設定します。カーネル内の各プロセスは一意の PID を伝送し、コンテナは Linux PID 名前空間を活用して、コンテナごとに PID 階層の独立したビューを提供します。コンテナ内のプロセスの数を制限することで、新しいプロセスの過剰な産出と潜在的な悪意のある横方向の動きを防ぎます。
パッチ管理
パッチ管理には、改善または修正が可能なシステム機能の識別、更新パッケージのリリース、更新プログラムのインストールの検証が含まれます。ソフトウェアの更新とシステムの再設定によるパッチ適用は、脆弱性の管理の一部です。
最新のソフトウェアと詳細については、 ダウンロード と cRPDのアップグレードを参照してください。
セキュリティ ポート
プライベートに使用するサービスポートは以下の通りです。
-
各システムでは、承認済み BGP ポート(TCP 179)、SSH ポート(TCP 22)、Netconf over SSH(TCP 830)、テレメトリ用 gRPC ポート(TCP 50051)、プロトコル、および検証済みのビジネス ニーズを持つサービスのみが実行されていることを確認します。たとえば、HTTPとHTTPSのロードバランサーはそれぞれバインド(TCP 80)と(TCP 443)する必要があります。
-
1024 未満の TCP/IP ポート番号は、特権ポートと見なされます。機密性の高いデータを送信する際に、コンテナ内で1024未満のポートをマッピングしないようにします。デフォルトでは、Docker はコンテナ ポートを 49153~65525 の範囲内にマッピングしますが、コンテナを特権ポートにマッピングできます。