過去問ドリル

LinuCレベル3 セキュリティスペシャリスト 堅牢なコンテナ設計 問14

堅牢なコンテナ設計/Rootless モード

RootlessモードのDockerやPodmanにおけるUser namespaceによる権限分離の説明として適切なものはどれか。

当サイトのオリジナル問題(LinuCレベル3 セキュリティスペシャリストの出題範囲「堅牢なコンテナ設計」に対応。実際の試験問題ではありません)

正解:D

解説

RootlessモードではUser namespaceを使い、コンテナ内のUID 0をホスト上の一般ユーザーの従属UID範囲(/etc/subuidで設定)に対応付けます。コンテナの中ではrootとしてパッケージの導入やファイルの所有者変更などの操作ができますが、ホスト上では特権を持たない一般ユーザーのUIDとして扱われるため、ホストのデバイスやシステムファイルへの特権操作はできません。これが従来のrootfulモードとの大きな違いであり、コンテナからの脱出が起きた場合の影響を限定します。

選択肢ごとの解説

  • A誤り。RootlessモードではUser namespaceにより、コンテナ内のUID 0はホスト上ではrootではなく /etc/subuid で割り当てた一般ユーザーのUIDに対応付けられます。
  • B誤り。RootlessモードのUser namespaceはUID/GIDの対応付けによる権限分離であり、POSIX ACLの仕組みとは異なります。
  • C誤り。RootlessモードのUser namespaceはコンテナ内のUID 0をホストのrootに対応付けるのではなく、/etc/subuidで割り当てた非特権UIDに対応付けます。
  • D正しい。User namespaceによりコンテナ内のrootはホスト上では特権を持たないUIDとして扱われ、ホスト側の資源への影響が制限されます。
LinuCレベル3 セキュリティスペシャリストの問題を演習モードで解く