このページでは、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 が有効になります。