Closed3

[AppArmor + Ubuntu] Container内で特定フォルダのみにアクセスさせる方法

harrythecodeharrythecode

初めに

Containerを使っているとどうしても出てくる「ファイル・フォルダ権限の管理」問題。

例えば、non-root userの e.g., nobody (id: 65534) を使ったとしてもContainer内では大体「755/644」のパーミッションが割り当てられ、読み込み・実行のいずれかをrootやgroup userでなくとも実行できるようになっています。

そこで登場するのが「AppArmor」

AppArmor(Application Armor)とは、Linux Security Modulesの一種であり、各プログラムにセキュリティプロファイルを結びつけ、プログラムのできることに制限をかけるプログラムである。

(Wikiより)

1998年に初版がリリースされ現在に至るまでもメンテされている老舗中の老舗のソフトウェアです。

harrythecodeharrythecode

テスト環境

今回は以下の環境でテストしています。

  • Host: Amazon Linux 2
  • Guest: Ubuntu 20.04 (focal)

AppArmor

インストール

apt-get update
apt-get -y install apparmor

AppArmorには以下のモードがあります。

  • complain: ポリシーに反するものは記録されるだけ
  • enforce: ポリシーに反するオペレーションがブロックされる
  • unconfined: いかなるプロファイルもロードされないことを示す

今回はアクセスを制御したいので「enforce」を使います。

このスクラップは2022/10/29にクローズされました