Docker Compose

Docker Compose のリソース制限、コンテナーの分離、ネットワークとボリュームの設定を確認するための文書です。

文書一覧

文書 パス
Docker ComposeのCPU使用上限が未設定 dockerCompose/cpus_not_limited
コンテナーの Healthcheck 設定の確認 dockerCompose/healthcheck_not_set
cgroup_parent のカスタマイズ dockerCompose/cgroup_not_default
no-new-privileges 保護がないコンテナー dockerCompose/no_new_privileges_not_set
on-failure の再起動回数の確認 dockerCompose/restart_policy_on_failure_not_set_to_5
コンテナーのプロセス数制限の確認 dockerCompose/pids_limit_not_set
特権モードが有効なコンテナー dockerCompose/privileged_containers_enabled
security_optの未設定 dockerCompose/security_opt_not_set
伝播が有効なバインドマウント dockerCompose/volume_mounted_in_multiple_containers
デフォルトの seccomp プロファイルが無効 dockerCompose/default_seccomp_profile_disabled
コンテナーのメモリ制限の確認 dockerCompose/memory_not_limited
機密性の高いホストディレクトリがマウントされたコンテナー dockerCompose/volume_has_sensitive_host_directory
コンテナー間の共有ボリュームを確認 dockerCompose/shared_volumes_between_containers
コンテナーに過剰な capability を許可 dockerCompose/container_capabilities_unrestricted
コンテナーのポート公開範囲が広い dockerCompose/container_traffic_not_bound_to_host_interface
コンテナーにマウントされた Docker ソケット dockerCompose/docker_socket_mounted_in_container
低い番号のポートの公開と権限の確認 dockerCompose/privileged_ports_mapped_in_container
ホストIPC名前空間の共有 dockerCompose/shared_host_ipc_namespace
ホストPID名前空間の共有 dockerCompose/host_namespace_is_shared
ホストネットワーク名前空間の共有 dockerCompose/shared_host_network_namespace
ホストのユーザー名前空間の共有 dockerCompose/shared_host_user_namespace

関連ページ21

Docker ComposeのCPU使用上限が未設定

サービスの負荷に合うCPU上限を指定してください。

コンテナーの Healthcheck 設定の確認

サービスの実際の状態を確認し、障害対応につなげてください。

cgroup_parent のカスタマイズ

親 cgroup が必要なリソース制限と運用ポリシーに合うことを確認してください。

no-new-privileges 保護がないコンテナー

no-new-privileges は、新しいプログラムの実行による追加権限の取得を制限します。

on-failure の再起動回数の確認

復旧要件に合う再起動回数の上限を設け、繰り返す障害を監視してください。

コンテナーのプロセス数制限の確認

ワークロードに合うプロセス数の上限で、ホストのリソース枯渇リスクを減らしてください。

特権モードが有効なコンテナー

特権コンテナーは、広い権限とデバイスへのアクセスによって隔離を大きく弱める場合があります。

security_optの未設定

既定の保護機能と、サービスに必要な追加の実行時セキュリティ設定を確認してください。

伝播が有効なバインドマウント

マウントの伝播は、方向と入れ子のマウントへの影響が必要な場合だけ許可してください。

デフォルトの seccomp プロファイルが無効

不要な seccomp の無効化をやめ、必要なシステムコールだけを許可してください。

コンテナーのメモリ制限の確認

サービスごとにメモリ上限を設定し、適用状態と使用量を確認してください。

機密性の高いホストディレクトリがマウントされたコンテナー

機密性の高いホストディレクトリのマウントは、コンテナーにホストデータへのアクセスを与える場合があります。

コンテナー間の共有ボリュームを確認

データ共有の必要性と書き込み権限を確認してください。

コンテナーに過剰な capability を許可

必要な Linux capability だけを許可し、権限を減らした後にサービスの動作を確認してください。

コンテナーのポート公開範囲が広い

公開ポートをサービスに必要なホストインターフェースに限定してください。

コンテナーにマウントされた Docker ソケット

Docker ソケットのマウントは、コンテナープロセスにホストの Docker デーモンを制御する権限を与える場合があります。

低い番号のポートの公開と権限の確認

必要なポートだけを公開し、サービスに不要なネットワーク権限を削除してください。

ホストIPC名前空間の共有

不要なホストIPCの共有を避け、プロセス間通信リソースを分離してください。

ホストPID名前空間の共有

不要なホストPIDの共有を避け、プロセスの分離を維持してください。

ホストネットワーク名前空間の共有

ホストネットワークの必要性を確認し、必要なアドレスとポートだけを公開してください。

ホストのユーザー名前空間の共有

ホストのユーザー名前空間を共有する例外を減らし、実際の UID マッピングを確認してください。