Policiesは、Kubernetesクラスタでの実行を許可するルールを定義します。
保護するクラスタごとに1つのポリシーを定義し、クラスタ全体に適用される初期設定のルールセット (「ポリシー定義」とも呼ばれます) を使用します。クラスタに複数の名前空間が含まれている場合は、名前空間に対して個別のルールセットを定義することもできます。名前空間ルールは、クラスタ全体のルールよりも優先されます。
![]() |
ヒント最初に、ログのみのルールを含むポリシーを作成することをお勧めします。ポリシーが想定どおりに機能していることを確認したら、ポリシーに違反するオブジェクトをブロックするようにルールを変更します。
|
クラスタのポリシーを定義する
手順
- Trend Micro Cloud Oneコンソールを開き、[Container Security]を選択します。
Policiesページに移動します。
- 次のいずれかを実行します。
-
このポリシーが最初のポリシーである場合は、[+ New policy] をクリックします。
- このポリシーが最初のポリシーでない場合は、[+ New] をクリックします。
-
- ポリシーの一意の [名前] を指定して、ポリシーの目的を特定し、必要に応じて [説明]を追加します。
- [Cluster-Wide Policy Definition] で、このポリシーに適用するルールを設定します。3つの異なる種類のルールに対応する3つのタブがあります。
-
[Deployment:] これらのルールは、イメージのデプロイ時に適用されます。適用するルールのチェックボックスをオンにし、ドロップダウンを使用して、ルールに違反した場合の処理 (イベントのログへの記録およびデプロイメントの許可) またはデプロイメントのブロックを選択します。
-
[Continuous:] これらのルールは、ポッドの実行中に定期的にチェックされます。適用するルールのチェックボックスをオンにし、ドロップダウンを使用して、ルール違反時の処理を選択します。イベントをログに記録して、ポッドの実行を継続するか、ポッドのネットワークトラフィックを隔離するか、またはポッドを終了するかを選択します。
-
[Runtime:] このタブで、ポッドの実行中に適用するルールを含むルールセットを1つ以上追加します。ランタイムセキュリティを有効にしてルールセットを定義する方法については、ランタイムセキュリティの構成 を参照してください。ルールセットは、実行時にポッドがルールに違反した場合に Container Security が実行する処理も定義します。ログにイベントを記録し、ポッドの実行を許可するか、ポッドのネットワークトラフィックを隔離するか、またはポッドを終了するかを選択します。
-
- ポリシーを確定するには、[Create]を選択します。
クラスタにポリシーを割り当てる
![]() |
注意このセクションでは、クラスターを追加したことを前提としています。
|
手順
Clustersページに移動します。
- ポリシーを適用するKubernetesクラスタを選択します。
- [Policy]リストからポリシーを選択してください。
- [保存]を選択します。
名前空間のポリシー定義を追加する
クラスタに複数の名前空間が含まれている場合は、名前空間に対して個別のポリシー定義を作成できます。名前空間ポリシー定義は、クラスタ全体のポリシー定義よりも優先されます。
手順
Policiesページで、既存のクラスター全体のポリシーの名前を選択します。
- Policy Definitionsセクションで、[Cluster-Wide Policy Definition]見出しの横にある[+]を選択します。
- ページの一番下までスクロールし、新しく追加されたセクションで
を選択してください。
- ポリシーの目的の識別に役立つ一意の [名前] を指定します。
- [Namespaces]領域で、この新しいポリシーで保護する1つ以上のKubernetes名前空間を追加します。
- 必要に応じて、対応するタブを使用してデプロイメントルール、継続ルール、およびランタイムルールを設定します。適用するルールのチェックボックスをオンにし、ドロップダウンを使用して、オブジェクトがルールに違反した場合の処理を選択します。ルールの詳細については、ルールについてを参照してください。
- [保存]を選択します。別の名前空間ルールセットを追加する場合は、[+] を選択して新しい名前空間ポリシー定義セクションを追加します。
名前空間を保護する
Kubernetesの資格情報や不正な役割ベースのアクセス制御による攻撃を防ぐには、これらのコンテナへの特殊な権限でのアクセス試行をログに記録するかブロックするルールを設定することが重要です。trendmicro-system名前空間で有効にすることをお勧めします。
手順
- 保護したいネームスペースのためにネームスペースのポリシーを作成します。
- Kubectlアクセスルールを有効にします。
ポリシーをテストする
ポリシーを作成して設定したら、 Container Securityを使用してKubernetesクラスタを保護できます。
デプロイメント (kubectl、helmなど) は、デプロイメントコントローラによって確認されます。この例では、特権付きのbusyboxコンテナをデプロイします。
![]() |
注意この例では、特権コンテナルールの処理として[ブロック]が選択されているものとします。
|
手順
busybox.yaml
という名前のファイルを次の内容で作成します。apiVersion: v1 kind: Pod metadata: name: busyboxpod labels: app: busyboxpod spec: containers: - image: busybox command: - sleep - "3600" imagePullPolicy: IfNotPresent name: busybox-container securityContext: privileged: true restartPolicy: Always
注意
このポッドの定義では、securityContext
はprivileged = true
に設定されています。先に作成したポリシーでは、特権コンテナをブロックするようにポリシーを設定しているため、このポッドがブロックされます。- kubectlコンテキストがクラスタに設定されていることを確認します。
- 次のコマンドを使用してポッドを作成します。
$ kubectl apply -f busybox.yaml
- 要求が拒否されたことを確認します。
$ kubectl apply -f busybox.yaml Error from server: error when creating "busybox.yaml": admission webhook "trendmicro-admission-controller.default.svc" denied the request: - containerSecurityContext violates rule privileged "true" in container(s) "busybox-container" (block).
- Container Securityコンソールの
[イベント]ページに移動すると、対応するイベントが表示されます。
ルールについて
デプロイメントルール
イメージがデプロイされようとしているとき、または処理が適用されようとしているときに、[展開]タブのルールが適用されます。これらのルールに基づいて、[Log] (および許可) または[ブロック]のデプロイメントを選択できます。
プロパティ
|
説明
|
Podプロパティ
|
|
コンテナプロパティ
|
|
イメージプロパティ
|
|
検索結果
|
以下のルールはトレンドマイクロArtifact Scanner (TMAS)によってサポートされています:
|
Kubectlアクセス
|
これらのルールを使用して名前空間ポリシーを設定し、Container Securityなどの特殊な権限を持つコンテナを保護することをお勧めします。
|
除外
|
[除外] セクションを使用して、他のデプロイメントルールをオーバーライドする除外を追加します。たとえば、「dev」を含む名前のイメージをブロックするが、「devone」というイメージを許可するデプロイメントルールがある場合は、「名前がdevoneと等しいイメージ」の除外を追加します。
次のような例外が考えられます。
|
継続ルール
[Continuous] タブのルールは、ポッドの実行中に定期的に確認されます。[Log] を選択して実行を継続するか、 [Isolate] するか、ルールに違反した場合はポッドを [Terminate] することもできます。
Podプロパティ
|
|
コンテナプロパティ
|
|
イメージプロパティ
|
|
除外
|
[除外] セクションを使用して、他の連続ルールをオーバーライドする除外を追加します。たとえば、「dev」を含む名前のイメージをブロックする継続ルールがあり、「devone」というイメージを許可する場合は、「名前がdevoneと等しいイメージ」の除外を追加します。
次のような例外が考えられます。
|
ランタイムルール
[Runtime] タブで、ポッドの実行中に適用するルールを含むルールセットを 1 つ以上追加します。ルールを適用するPodを制御するラベルを追加する方法など、ランタイムセキュリティを有効にしてルールセットを定義する方法については、ランタイムセキュリティの設定を参照してください。