過去問ドリル

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

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

RootlessモードのDockerを使うには、newuidmap・newgidmap コマンド(uidmapパッケージ等で提供)がインストールされている必要がある。これらのコマンドが必要とされる理由として適切なものはどれか。

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

正解:B

解説

Rootlessモードでは、ユーザー名前空間を作り、コンテナ内のUID・GIDをホスト上の別のIDに対応付けます。特権を持たないプロセスがユーザー名前空間の uid_map に書き込めるのは、自身のUIDを1つ対応付ける行だけです。コンテナ内で多数のUIDを使うには、/etc/subuid・/etc/subgid で利用者に割り当てられた範囲を対応付ける必要があり、この書き込みをsetuid(またはファイルケーパビリティ)付きの newuidmap・newgidmap が代わりに行います。これらは /etc/subuid 等を確認し、許可された範囲だけを書き込みます。

選択肢ごとの解説

  • A誤り。イメージのファイルの所有者を書き換えるのではなく、ユーザー名前空間のUIDとGIDの対応付けを設定するためのコマンドです。
  • B正しい。一般ユーザーが対応付けられるのは自身のIDだけなので、/etc/subuid・/etc/subgid で許可された範囲の対応付けを特権付きのこれらのコマンドが書き込みます。
  • C誤り。newuidmap・newgidmap は /etc/subuid 等を読むだけで、範囲を追記しません。範囲の登録は useradd や管理者の編集で行います。
  • D誤り。Rootlessモードでは、コンテナ内のUID 0は利用者自身のUIDに対応付けられ、ホストのrootにはなりません。
LinuCレベル3 セキュリティスペシャリストの問題を演習モードで解く