アドミッションコントローラーの概要

必要なライセンス: この機能は Enterprise ライセンスで利用できます。詳細については、ライセンスを参照してください。

注意: この機能は、Cloud Vulnerability Management ライセンスでは使用できません。

この記事では、 Tenable One Cloud Exposure のアドミッション コントローラー機能の概念概要について説明します。

Kubernetes アドミッションコントローラーは、クラスタ内で作成および変更するリソースに対する重要なコントロールレイヤーを提供します。アドミッションコントローラーは API リクエストをインターセプトします。これにより、ユーザーは次のアクションを実行できます。

  • セキュリティポリシーを適用し、設定を検証します。
  • システムがコンテナ、ポッド、サービスなどの準拠リソースのみを作成または削除できるようにしてください。
  • [拒否] (アクションをブロック) や [アラート] (アクションを許可して違反をログに記録する) などの違反効果を適用します。

Diagram: the Kubernetes API request flow, with Tenable's webhooks in the mutating and validating admission stages

[Admission Controller Policies] (アドミッションコントローラーポリシー ) ページで、アドミッションコントローラーポリシー アドミッションコントローラーポリシーの設定 、ポリシー違反の結果を定義できます。違反の影響として、[拒否] または [アラート] を設定できます。有効なポリシーは、 アドミッションコントローラーのインストール をインストールし済み、選択した範囲内に存在するクラスタにのみ適用されます。

注意: これらのポリシーを適用する前に、クラスタ Tenable アドミッションコントローラーをインストールする必要があります。

Tenable は、アドミッションコントローラーポリシーによって分析されたすべての Kubernetes アクションを、 イベント ページに記録します。

アドミッション制御のユースケース: 非 root ユーザー権限の強制

アドミッションコントローラーを使用すると、Kubernetes クラスタにデプロイするすべてのコンテナが非 root ユーザー権限で実行されるようにすることができます。これを強制するには、[Pod Security Standards - Root Containers] ポリシーを [Deny] に設定します。

ルートとして実行されているコンテナでポッドをデプロイしようとすると (たとえば、 runAsUser フィールドが 0 (ルートユーザー ID) に設定されているか、省略されている場合)、アドミッションコントローラーがリクエストをインターセプトし、デプロイメントをブロックします。

次のポッドマニフェストは非ルートユーザーポリシーに違反しています。

コピー

YAML

apiVersion: v1
kind: Pod
metadata:
    name: root-container-pod
spec:
    Containers:
    - name: insecure-container
      image: nginx
      securityContext:
            runAsUser: 0  # これは、コンテナが root として実行されることを指定します。

この例では、「ポッドセキュリティ標準 - ルートコンテナ」ポリシーがポッドのデプロイメントをブロックします。このポリシーを強制することで、権限昇格の脆弱性を防ぎ、ルートコンテナに関連するリスクを軽減して安全な Kubernetes 環境を維持できます。