LinuCレベル3 セキュリティスペシャリスト 堅牢なコンテナ設計 問11
堅牢なコンテナ設計/コンテナのアクセス制御と権限制御Dockerでコンテナに既定とは異なるカスタムのAppArmorプロファイルを適用するオプション指定として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル3 セキュリティスペシャリストの出題範囲「堅牢なコンテナ設計」に対応。実際の試験問題ではありません)
- Adocker run --security-opt seccomp=/path/to/profile.json <イメージ>
- Bdocker run --security-opt label=type:my_container_t <イメージ>
- Cdocker run --security-opt apparmor=my-custom-profile <イメージ>
- Ddocker run --security-opt no-new-privileges=true <イメージ>
正解:C
解説
--security-optオプションはコンテナのセキュリティ設定を指定するもので、AppArmorプロファイルの適用にはapparmor=<プロファイル名>を使います。プロファイルはホスト側で事前にAppArmorに読み込ませておく必要があります。seccompはシステムコールフィルタリングのプロファイル(JSONファイルのパス)を指定するサブオプション、labelはSELinuxのラベル設定に使うサブオプション、no-new-privilegesはexecveによる特権昇格を防ぐフラグであり、いずれもAppArmorプロファイルの指定には使いません。
選択肢ごとの解説
- A誤り。seccompはseccompのプロファイル(JSONファイルのパス)を指定するサブオプションで、AppArmorプロファイルの適用には使えない。
- B誤り。labelはSELinuxのセキュリティラベルを設定するサブオプションで、AppArmorプロファイルの指定には使えない。
- C正しい。apparmor=<プロファイル名>を指定すると、ホストに読み込み済みのAppArmorプロファイルがコンテナに適用される。
- D誤り。no-new-privilegesはプロセスがexecveで新しい特権を取得するのを防ぐフラグで、AppArmorプロファイルの適用とは別の機能である。