SELinux
RKE2は、バージョン7以降のCentOS/RHELシステムでのデフォルト設定であるSELinux対応システムと互換性があります。これをサポートする ポリシーは、containerd用の container-selinuxポリシーの特化版です。これは、containerdがインストールされている非標準の場所を考慮し、永続的および一時的な状態を配置します。
|
rke2-selinuxパッケージをインストールした後、rke2サービスを開始する前に、ノードの再起動が必要な場合があります。rke2-selinuxおよびcontainer-selinuxパッケージをインストールしてもSELinux監査ログに拒否が表示される場合は、ノードを再起動してください。 |
カスタムコンテキストラベル
RKE2は、複数の container_var_lib_t場所へのアクセスを必要とする静的ポッドとしてコントロールプレーンサービスを実行します。etcd`コンテナは、/var/lib/rancher/rke2/server/db`の下で読み書きできる必要があり、kube-apiserver、kube-controller-manager、kube-scheduler`とともに/var/lib/rancher/rke2/server/tls`から読み取る必要があります。これを過剰な権限を与えずに機能させるために、 spc_tRKE2 SELinuxポリシーは、読み書きおよび読み取り専用アクセスのためにそれぞれ rke2_service_db_tおよび rke2_service_tコンテキストラベルを導入します。これらのラベルは、RKE2コントロールプレーンの静的ポッドにのみ適用されます。
設定
RKE2のSELinuxサポートは、単一の構成項目、`--selinux`ブール値に相当します。これは、containerd/cri tomlのcriセクション内の `enable_selinux`ブール値にパススルーします。RKE2がtarball経由でインストールされた場合、追加の設定なしではSELinuxは有効になりません。その設定を行う推奨方法は、RKE2の`config.yaml`へのエントリを介して行うことです。例:
# /etc/rancher/rke2/config.yaml is the default location
selinux: true
これは、`--selinux`フラグを`rke2 server`または`rke2 agent`コマンドラインに渡すか、`RKE2_SELINUX=true`環境変数を設定することに相当します。