このページでは、SELinux を有効にしてコンテナを保護する方法について説明します。RHEL と CentOS の SELinux がサポートされています。ホストマシンが RHEL または CentOS を実行している場合で、クラスタで SELinux を有効にするには、すべてのホストマシンで SELinux を有効にする必要があります。リリース 1.9.0 以降の Anthos clusters on bare metal では、クラスタの作成前かアップグレード後に SELinux を有効または無効にできます。ホストで SELinux が有効になっている場合、コンテナ ランタイムで有効化されます。
SELinux が有効化されていることを確認する
デフォルトでは、RHEL と CentOS で 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 が有効になります。