Docker/LXCのAppArmor構成ファイル

Docker/LXCのAppArmor構成ファイル

MySQLを実行するDockerコンテナ(LXC)があります。 Dockerの基本的なアイデアは通常「コンテナごとに1つの実行プロセス」なので、MySQLバイナリをターゲットとするAppArmorプロファイルを定義すると適用されますか?これをテストする方法はありますか?

ベストアンサー1

まず、cgroupはシステムの他のアプリケーションとアプリケーションを分離するためには使用されません。リソースの使用とデバイスアクセスの管理に使用されます。さまざまな名前空間(PID、UTS、マウント、ユーザー...)は、いくつかの(制限された)分離を提供します。

さらに、Dockerコンテナ内で起動されたプロセスは、実行中のAppArmorプロファイルを管理できない可能性があります。現在のアプローチは、コンテナを起動する前に特定のAppArmorプロファイルを設定することです。

Dockerのlibcontainer実行ドライバがサポートしているようです。コンテナ用のAppArmorプロファイルの設定ただし、ドキュメントに例や参照が見つかりません。

明らかにAppArmorもこれをサポートしています。UbuntuのLXC

アプリケーション用のAppArmor構成ファイルを作成してコンテナ内でプロセスを開始する前に、LXC / libcontainer / Docker / ...がロードされていることを確認する必要があります。

この方法で使用されるプロファイルは強制的に適用され、これをテストするには違法アクセスを試みて失敗することを確認する必要があります。

この場合、バイナリと実際に実行された構成ファイルの間にリンクはありません。コンテナでこの設定ファイルを使用するには、Docker / LXCに明示的に指示する必要があります。 MySQLバイナリ用の設定ファイルを作成すると、コンテナではなくホストでのみ実行が適用されます。

おすすめ記事