このページでは、SELinux を有効にしてコンテナを保護する方法について説明します。Red Hat Enterprise Linux(RHEL)では SELinux がサポートされています。ホストマシンが RHEL を実行している場合で、クラスタで SELinux を有効にするには、すべてのホストマシンで SELinux を有効にする必要があります。リリース 1.9.0 の Google Distributed Cloud では、クラスタの作成やクラスタのアップグレードの前または後に SELinux を有効または無効にできます。ホストで SELinux が有効になっている場合、コンテナ ランタイムで有効化されます。
SELinux が有効化されていることを確認する
デフォルトでは、RHEL で SELinux が有効になっています。
- 確認のために、以下のコマンドを実行します。 - getenforce
このコマンドからは、Enforcing、Permissive または Disabled が返されます。コマンドから Enforcing が返された場合は、クラスタのアップグレードやクラスタの作成に進むことができます。
SELinux を有効にする
getenforce コマンドが Permissive を返す場合は、setenforce コマンドを使用して Enforcing モードに切り替えることができます。setenforce を使用した Permissive モードと Enforcing モードの切り替えにシステムの再起動は必要ありません。ただし、再起動後も変更を維持する場合は、/etc/selinux/config ファイルを更新する必要があります。
- Enforcingモードに切り替えるには、次のコマンドを実行します。- sudo setenforce 1 # temporary sudo sed -i 's/SELINUX=permissive/SELINUX=enforcing/g' /etc/selinux/config # persistent - after reboot
SELinux が Disabled の場合は、有効にするには、まず Permissive モードで有効にしてシステムを再起動し、システムが正常に起動することを確認するようおすすめします。SELinux にエラーが存在しない場合は、SELinux を Enforcing モードに安全に切り替えることができます。
- 省略可: - Permissiveモードで SELinux を有効にします。- sudo sed -i 's/SELINUX=disabled/SELINUX=permissive/g' /etc/selinux/config sudo reboot
- システムが SELinux のエラーが生じることなく正常に再起動した場合は、 - Enforcingモードを有効にできます。- sudo sed -i 's/SELINUX=disabled/SELINUX=enforcing/g' /etc/selinux/config sudo reboot
SELinux が Enforcing モードで有効になると、コンテナ ランタイムを含むホスト上のすべてのプロセスに対して SELinux が有効になります。