Dockerコンテナ内に別のAppArmorプロファイルをロードしたいと思います。 Dockerコンテナ自体はこのdocker-default
設定ファイルを使用します。別の設定ファイルは制限を適用しdocker-default
、コンテナ内のすべてのファイルシステムアクセスを大幅に制限する必要があります。コンテナ内の設定ファイルを変更することは明らかに不可能なので、他のオプションがあるかどうかを尋ねるためにこの質問を投稿してください。
私が検討している1つのオプションは、
docker-default
移行を許可するローカル構成ファイルを作成することです。しかし、私はこれをAppArmor設定ファイルに書き込む必要があると思いますがdocker-default
、これはありません/etc/apparmor.d
。docker-default
構成ファイルは明らかにこれに基づいています。金型。どうすればいいですか?ローカル設定ファイルをテンプレートに貼り付けて実行しますか
apparmor_parser -r -W template.go
?これをどのように無視しますかdefault-docker
?名前でtemplate.go
docker-default.go
?docker-default
Dockerが更新されたら、これらの修正を上書きする可能性があるため、上書きは最善の選択ではないと思います。別のオプションは、実行中のコンテナを使用するようです
--privileged
。これは通常コンテナのセキュリティを弱めるので、これを避けたいと思います。
私が作業している設定の背景知識:いくつかを書いています。Rシャインデプロイされたアプリケーション輝くエージェントUbuntu 20.04システムで。 ShinyProxyはAppArmor設定ファイルを使用して、各アプリケーションセッションを別々のDockerコンテナとして起動しますdocker-default
。一部のアプリケーション機能では、ユーザーは次のようにRコードを入力します。シャイニングエースバックエンド評価用コンソール。通常、ユーザーにバックエンドでコードを実行させることはお勧めできませんが、この場合は必須です。主にDockerコンテナの内部と外部に格納されているファイルシステムやデータへのユーザーアクセスを制限したいので、RAppArmor
パッケージunix
を使用する予定です。unix::eval_safe
システムのAppArmorプロファイルの1つを実行すると同時に機能を実行できます。docker-default
プロファイルはアプリケーションセッション全体でアクティブになるため、内部的unix::eval_safe
にRAppArmor::aa_change_profile
他のプロファイルをロードする方法はありません。
この問題に対する安全で信頼できる解決策は何ですか?