Armadilloフォーラム

[Armadillo-610] コンテナ起動時における、複数コンテナによるmicroSD自動マウントについて

masa.yamaguchi

2025年3月24日 16時18分

==========
製品型番:Aramadillo-610
ABOSバージョン:3.20.3-at.8
カーネルバージョン: 5.10.233
その他:ATDE9を使用
==========

コンテナ起動時における、複数コンテナによるmicroSD自動マウントについてお伺いしたいことがございます。

現在、1コンテナでmicroSD自動マウントする場合、以下手順で実施しております。

・ホストで/mnt/sdcard フォルダ作成
・ホストの/etc/fstab に以下記載追加
 /dev/mmcblk1p1  /mnt/sdcard                     ext4    defaults                        0 0
・対象コンテナ:マウントしたいアプリのapp.confに以下記載追加
 add_hotplugs mmc
 add_args --cap-add=SYS_ADMIN
 add_volumes /live/rootfs/mnt/sdcard:/mnt/sdcard

上記は1つのコンテナで実施する場合の、こちらで実施しているmicroSD自動マウント手順です。(これがあるべき方法かは未確認)
複数のコンテナで、起動時にmicroSDを自動マウントして、アクセスできるようにしたいと考えているのですが、
その場合通常はどのような手順になるかご教示頂きたいです。

コメント

at_shota.shimoyama

2025年3月24日 19時33分

アットマークテクノの下山です。

https://armadillo.atmark-techno.com/howto/autofs
こちらで紹介されている方法で自動マウントを行うようにすれば、複数のコンテナからアクセスできるようになるかと思います。

まずはこの方法で問題がないか、ご確認いただけますでしょうか?

よろしくお願いします。

アットマークテクノ 下山様

> https://armadillo.atmark-techno.com/howto/autofs
> こちらで紹介されている方法で自動マウントを行うようにすれば、複数のコンテナからアクセスできるようになるかと思います。
> 
> まずはこの方法で問題がないか、ご確認いただけますでしょうか?

masa.yamaguchiです。
上記方法を確認しました。sdは認識されましたが、添付資料「ディレクトリに入れない0325.png」のとおり、cd で sdフォルダに入れませんでした。
念のため、別のコンテナ内で、 mount /dev/mmcblk1p1 /mnt を実施したところ、SD内は入れました。
以下お伺いしたいことがございます。
①autofs こちらの手順に問題がございましたら、コメント頂けますと幸いです。
②1つのコンテナでのみmicroSDにアクセスする場合(複数コンテナでのアクセスはしない)ならば、以下の手順で問題ないでしょうか。

<シェルスクリプト main.sh の場合>
①app.confに以下記載を追加する。
ーーーーー
add_hotplugs mmc
add_args --cap-add=SYS_ADMIN
ーーーーー
② コンテナ起動時に呼ばれるシェルスクリプト(main.sh)に以下 「mount /dev/mmcblk1p1 /mnt」を記載
#!/bin/bash -e
 
# for mmc
mount /dev/mmcblk1p1 /mnt
sleep infinity
ファイル ファイルの説明
ディレクトリに入れない0325.png

at_shota.shimoyama

2025年3月26日 11時03分

masa.yamaguchi 様

> ①autofs こちらの手順に問題がございましたら、コメント頂けますと幸いです。
すみません、ブログの内容が誤っていました。

autofsコンテナのコンフィグファイルのadd_hotplugsmmcが抜けていました。
以下のようにmmcを追加してください。

# sd は usb メモリ等のため
# misc は /dev/autofs のアクセス権限のため
add_hotplugs sd mmc misc

> ②1つのコンテナでのみmicroSDにアクセスする場合(複数コンテナでのアクセスはしない)ならば、以下の手順で問題ないでしょうか。
はい、1つのコンテナのみの場合もautofsコンテナを使用する手順の方がセキュリティの観点からより望ましい(SYS_ADMIN は強力で、メインのアプリケーションを実行するコンテナに付与するのはセキュリティ的なリスクを伴います)のですが、
その手順でも機能的には問題ありません。

よろしくおねがいします。

アットマークテクノ 下山様

masa.yamaguchi です。

# sd は usb メモリ等のため
# misc は /dev/autofs のアクセス権限のため
add_hotplugs sd mmc misc

ご回答ありがとうございます。
上記ご教示頂いた対応で、期待通りの動作を確認(microSDにアクセス)できました。

小出しで申し訳ございませんが、あと1点だけお伺いしたいことがございます。

はい、1つのコンテナのみの場合もautofsコンテナを使用する手順の方がセキュリティの観点からより望ましい
(SYS_ADMIN は強力で、メインのアプリケーションを実行するコンテナに付与するのはセキュリティ的なリスクを伴います)のですが、

上記ご指摘の個所ですが、もし仮に以下①のapp.confに記載する対応で、セキュリティに制限をかける方法はございますでしょうか。
(念のため、既存の方法でもセキュリティリスクを減らす方法があれば知りたく思いお伺いしております)

①app.confに以下記載を追加する。
ーーーーー
add_hotplugs mmc
add_args --cap-add=SYS_ADMIN
ーーーーー

at_shota.shimoyama

2025年3月27日 11時54分

masa.yamaguchi 様

> 上記ご指摘の個所ですが、もし仮に以下①のapp.confに記載する対応で、セキュリティに制限をかける方法はございますでしょうか。
> (念のため、既存の方法でもセキュリティリスクを減らす方法があれば知りたく思いお伺いしております)

すみませんが、無いと考えていいと思います。
SYS_ADMINはほぼrootと同じくらいの権限なので、mount以外にもいろいろなことができてしまいます。
その状況でセキュリティリスクを抑えるためには、mount以外の使用しない機能について手動で制限する対策が必要になります。

ただ、SYS_ADMINが無くてもコンテナ内にアクセスされた時点で終わりという考え方ができるようなケースであれば、SYS_ADMINを与えないことにこだわる必要はないかもしれません。(これは、セキュリティの重要性がどの程度あるのか、侵入されることによる損害が無視できないものなのかといったところで、ケースごとに異なる話ですが…)

アットマークテクノ 下山様

masa.yamaguchi です。
ご回答ありがとうございます。
内容につきまして承知いたしました。ご回答いただいた内容に留意して検討いたします。