Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

第32章 seccomp を使用したアプリケーション機能の制限

32.1. 概要

seccomp (セキュアコンピューティングモード) は、アプリケーションが行うシステム呼び出しのセットを制限し、クラスター管理者が OpenShift Container Platform で実行されるワークロードのセキュリティーを強化するために使用されます。

seccomp サポートは Pod 設定の 2 つのアノテーションを使用して有効になります。

  • seccomp.security.alpha.kubernetes.io/pod: Pod のすべてのコンテナーに適用されるプロファイルです (上書きなし)。
  • container.seccomp.security.alpha.kubernetes.io/<container_name>: コンテナー固有のプロファイルです (上書きあり)。
重要

デフォルトで、コンテナーは unconfined seccomp 設定で実行されます。

詳細な設計情報については、seccomp 設計についてのドキュメントを参照してください。

32.2. seccomp の有効化

seccomp は Linux カーネルの 1 つの機能です。seccomp がシステムで有効にされていることを確認するには、以下を実行します。

$ cat /boot/config-`uname -r` | grep CONFIG_SECCOMP=
CONFIG_SECCOMP=y

32.3. OpenShift Container Platform での seccomp の設定

seccomp プロファイルは json ファイルであり、システムコールを提供し、システムコールの呼び出し時に取るべき適切なアクションを実行します。

  1. seccomp プロファイルを作成します。

    多くの場合はデフォルトのプロファイルだけで十分ですが、クラスター管理者は個別システムのセキュリティー制約を定義する必要があります。

    独自のカスタムプロファイルを作成するには、seccomp-profile-root ディレクトリーですべてのノードのファイルを作成します。

    デフォルトの docker/default プロファイルを使用している場合は、これを作成する必要はありません。

  2. node configuration mapkubeletArguments を使用し、プロファイルを保存するために seccomp-profile-root ディレクトリーを使用するようにノードを設定します。

    kubeletArguments:
      seccomp-profile-root:
        - "/your/path"
  3. 変更を適用するためにノードサービスを再起動します。

    # systemctl restart atomic-openshift-node
  4. 使用できるプロファイルを制御し、デフォルトプロファイルを設定するために、seccompProfiles フィールドで SCC を設定 します。最初のプロファイルがデフォルトとして使用されます。

    seccompProfiles フィールドで使用できる形式には以下が含まれます。

    • docker/default: コンテナーランタイムのデフォルトプロファイルです (いずれのプロファイルも不要です)。
    • unconfined: 拘束のないプロファイルで、seccomp を無効にします。
    • localhost/<profile-name>: ノードのローカル seccomp プロファイルの root にインストールされるプロファイルです。

      たとえば、デフォルトの docker/default プロファイルを使用している場合、以下で SCC を設定します。

      seccompProfiles:
      - docker/default

32.4. OpenShift Container Platform でのカスタム seccomp プロファイルの設定

クラスターの Pod がカスタムプロファイルで実行されるようにするには、以下を実行します。

  1. seccomp-profile-root に seccomp プロファイルを作成します。
  2. seccomp-profile-root を設定します。

    kubeletArguments:
      seccomp-profile-root:
        - "/your/path"
  3. 変更を適用するためにノードサービスを再起動します。

    # systemctl restart atomic-openshift-node
  4. SCC を設定します。

    seccompProfiles:
    - localhost/<profile-name>