BPFトークン移譲¶
IncusはLinuxカーネル6.9で追加されたBPFトークンを通してBPFケーパビリティーの移譲をサポートします。
security.bpffs.delegate_cmds、
security.bpffs.delegate_maps、
security.bpffs.delegate_progs、
security.bpffs.delegate_attachsのいずれかの設定オプションが設定されている場合、IncusはBPFファイルシステムをsecurity.bpffs.path設定オプションで指定されたパスでコンテナにマウントし指定されたケーパビリティーをコンテナに移譲します。
これらのオプションに設定可能な値はカーネルのバージョンに依存し、BPFのヘッダーファイル(カーネルツリー内ではinclude/uapi/linux/bpf.h、ほとんどのディストリビューションではカーネルソースをインストールしていれば/usr/include/linux/bpf.h)内のenumsで定義されています:
キー |
カーネルの |
除去する接頭辞 |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
これらの設定オプションはカンマ区切りリストの値をとり、さらにanyという値を指定するとそのタイプのすべての可能な値を移譲します。
例¶
キー |
値 |
|---|---|
|
|
|
|
|
|
|
|
$ mount -t bpf
none on /sys/fs/bpf type bpf (rw,relatime,delegate_cmds=map_create:obj_get:link_create,delegate_maps=hash:array:devmap:queue:stack,delegate_progs=socket_filter:kprobe:cgroup_sysctl,delegate_attachs=any)