LinuCレベル3 セキュリティスペシャリスト 堅牢なコンテナ設計 問2
堅牢なコンテナ設計/コンテナのアクセス制御と権限制御RHEL 9系のPodmanで、ホストの /srv/appdata を1つのコンテナだけにバインドマウントしたところ、SELinuxにアクセスを拒否された。SELinuxを無効化せず、他のコンテナからは使えない形でアクセスを許可する指定として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル3 セキュリティスペシャリストの出題範囲「堅牢なコンテナ設計」に対応。実際の試験問題ではありません)
- A-v /srv/appdata:/data:z
- B-v /srv/appdata:/data:Z
- C-v /srv/appdata:/data:ro
- D--security-opt label=disable
正解:B
解説
SELinuxが有効なホストでは、コンテナのプロセスは container_t 等のタイプとコンテナごとのMCSカテゴリを持ち、ホスト側の通常のラベルが付いたディレクトリにはアクセスできません。ボリュームの指定に :Z を付けると、Podmanはそのディレクトリをそのコンテナ専用のラベル(固有のMCSカテゴリ付き)に付け替え、他のコンテナからはアクセスできない状態にします。:z は複数のコンテナで共有するためのラベルを付けるオプションです。--security-opt label=disable はそのコンテナのSELinuxによる分離自体を無効にするため、要件に反します。
選択肢ごとの解説
- A誤り。:z は複数のコンテナで共有できるラベルに付け替えるオプションで、他のコンテナからもアクセスできる状態になります。
- B正しい。:Z はそのコンテナ専用のMCSカテゴリを含むラベルに付け替えるため、他のコンテナからは使えない形でアクセスを許可できます。
- C誤り。:ro は読み取り専用でマウントする指定で、SELinuxのラベルは変わらないため、拒否は解消されません。
- D誤り。label=disable はそのコンテナのSELinuxによる分離を無効にする指定で、SELinuxを保ったまま許可するという要件に反します。