ユーザーにホストへの `sudo` アクセスを許可する代わりに、ユーザーを `docker` グループに入れることの利点は何ですか?

ユーザーにホストへの `sudo` アクセスを許可する代わりに、ユーザーを `docker` グループに入れることの利点は何ですか?

ユーザーにホストへのアクセスをdocker許可するのではなく、グループに追加することには実際に利点がありますか?sudo


長い話になりますが、私は、グループのメンバーが、サーバーがリッスンしているUnix ドメイン ソケットを介して、Docker サーバーとdocker直接 (つまり、 を使用せずに) 対話する方法を示すチュートリアルを書いています。sudodockerd

しかし、権限のないユーザーに任意のコンテナを作成する権限を与えることで、ユーザーは効果的ホストへのルート アクセス: たとえば、バインド マウントを介してホストの fs を変更するのは非常に簡単になります。または、procfs/を介してカーネルと対話しますsysfs。では、そのユーザーにシステムへのルート アクセスを与えるのではなく、誰かをグループに入れることにはどのような意味があるのでしょうかdocker

答え1

あるいはユーザーはルートシェルに直接投入できる便利なDockerコンテナをロードする

Docker ソケットへのアクセスを許可すると、権限を昇格できることが事実上保証されます。

ここで重要なのは、意図を宣言することです。グループに誰かを入れると、その人が常にすべてのコマンドをdocker実行する必要なくコンテナを実行できるようになります。その人が root として任意のコマンドを実行できるようにしたいときに誰かを入れます。sudosudoerssudo

任意のユーザーに Docker ソケットへのアクセス権を与えたくない場合は、OpenShift や Kubernetes などのオーケストレーション システムを使用する必要があります。

関連情報