クラウドストライク2026年版グローバル脅威レポートエグゼクティブサマリー:AI時代に必読の脅威インテリジェンスレポート
ダウンロード

ガイドでCNAPPについて理解する

クラウドネイティブアプリケーション保護プラットフォームの主な利点と統合のヒントについて説明します。クラウドセキュリティ戦略を強化してください。

詳細を見る

ガイドでCNAPPについて理解する

クラウドネイティブアプリケーション保護プラットフォームの主な利点と統合のヒントについて説明します。クラウドセキュリティ戦略を強化してください。

詳細を見る

アドミッションコントローラーは、Kubernetes (K8s) 環境のゲートキーパーとして機能し、APIサーバーに送信されたリクエストをスキャンすることによりセキュリティを高めます。これらのコントローラーは、重大なコンプライアンスを適用し、潜在的な脅威から保護することにより、Kubernetesクラスターの守護者として機能します。これは、コンテナ化されたアプリケーションに対する新しい脅威が進化するにつれ必要不可欠になります。

この記事では、重要性、内部メカニズム、イメージスキャン機能、Kubernetesクラスターのセキュリティポスチャにおける重要性について説明することで、Kubernetesアドミッションコントローラーの世界を深く掘り下げます。

Kubernetesアドミッションコントローラーとは?

Kubernetesアドミッションコントローラーは、Kubernetes APIサーバーを対象としたリクエストを監視および調整します。以下に示すように、認証と承認が完了した後、オブジェクトが永続的に保存される前では、これらのプラグインは仲介者として機能し、リクエストをインターセプトします。

Kubernetesアドミッションコントローラー図1:アドミッションコントローラー(出典:Kubernetesブログ

アドミッションコントローラーは、特定の事前定義された条件またはポリシーに基づいて、リクエストを許可、拒否、または変更できます。アドミッションコントローラーの主要タイプには次の2つがあります。

  • 検証アドミッションコントローラー:これらのアドミッションコントローラーはリクエスト内のオブジェクトの検証を担い、各リクエストを検査し、コントローラー内で定義されている特定の要件とルールに準拠しているかどうかを検証します。
  • 変更アドミッションコントローラー:リクエスト内のオブジェクトを修正し、保存する前にそれらの設定を変更できる変更アドミッションコントローラは、自動管理を可能にし、事前定義されたルールやポリシーに従ってシステムパラメータを挿入することができます。

アドミッションコントローラーの主要機能

アドミッションコントローラーは、Kubernetesアーキテクチャーにとって不可欠であり、バックグラウンドで静かに操作し、組織のルールとポリシーを適用することによってシステムを保護します。大規模なKubernetes環境を管理する場合、セキュリティの確保とコンプライアンスの適用が複雑になることがあります。幸いなことに、K8sアドミッションコントローラーは次のように役立ちます。

1. Kubernetesクラスターでのセキュリティの強化

コントローラーは、クラスターで実行される操作を制限するポリシーを適用できるため、潜在的な攻撃ベクトルを減らすことができます。たとえば、ユーザーが特権コンテナを実行できないようにしたり、攻撃の一般的なベクトルであるホストネットワーキングやファイルシステムを使用できないようにすることができます。

2. コンプライアンスの適用

アドミッションコントローラーは、組織全体のポリシーを適用するための不可欠な手段です。命名規則、リソース制限、ネットワークポリシーを適用できます。また、これらのルールに準拠していないポッドの展開を防止し、一貫性とベストプラクティスの遵守を確保することもできます。

3. リソース管理と割り当ての最適化の確保

リソース管理は、Kubernetesクラスターの管理の重要な部分です。アドミッションコントローラーは、CPU、メモリ、ストレージにクォータと制限を適用でき、割り当てよりも多くのクラスターリソースを個々のコンテナで利用するシナリオを回避します。このため、システムの安定性と信頼性が維持され、リソースの効率的な利用が促進され、コストの最適化にもつながります。

4. 潜在的なKubernetesコンテナエスケープのエクスプロイトの防止

コンテナエスケープのエクスプロイトは、攻撃者がコンテナから抜け出し、ホストシステムへの不正アクセスを取得する場合に発生する、Kubernetesクラスターのセキュリティ上の重大な懸念事項です。アドミッションコントローラーは、厳密なセキュリティコンテキストを適用し、コンテナ特権を制限することにより、これらのエクスプロイトの防止に役立ちます。

詳細

Kubernetes環境を攻撃者から保護し続けるためのベストプラクティスについて説明します。

Kubernetesセキュリティのベストプラクティス

アドミッションコントローラーの仕組み

アドミッションコントローラーの内部の仕組みを理解することは、その潜在能力を最大限に活用するために重要です。アドミッションコントローラーが他のKubernetesコンポーネントを操作する方法を詳しく見ていきましょう。

リクエストとレスポンス

アドミッションコントローラーは、APIサーバーへの着信リクエストを調べ、リクエストがシステムに保存しようとしているオブジェクトを検査します。コントローラーが検証コントローラーであるか、変更コントローラーであるかに応じて、一連のルールに対してリクエストを検証する(validating)か、リクエスト内のオブジェクトを変更する(mutating)かのいずれかを行います。コントローラーはその後、リクエストを許可または拒否し、ユーザーにレスポンスを返します。リクエストが拒否されると、ユーザーには、リクエストが拒否された理由を説明したメッセージが送信されます。

複数のアドミッションコントローラーのチェーン

アドミッションコントローラーは、チェーンを形成し、順番に呼び出されます。ここでは順序が重要で、同じクラスター内に変更コントローラーと検証コントローラーが設定されている場合には特に重要になります。一般に、変更コントローラーは検証コントローラーの前に呼び出されます。このようにして、リクエストは、検証前に基準を満たすように変更できます。このシーケンスのコントローラーがリクエストを拒否する場合、すべての操作が停止され、エラーがユーザーに送信されます。このメカニズムにより、リクエストが受け入れられる前に、定義されたすべてのルールがチェックされます。

ビルトインのアドミッションコントローラー

Kubernetesには複数のビルトイン型のアドミッションコントローラーが用意されています。例えば、NamespaceLifecycleコントローラーは、終了中の名前空間内のオブジェクトに送信されたすべてのリクエストを拒否します。その名前が示すように、ResourceQuotaコントローラーは名前空間ごとにリソースの使用を制限するクォータを適用し、PodSecurityPolicyコントローラーは要求されたセキュリティコンテキストに基づいてセキュリティ制限を適用します。ビルトイン型のアドミッションコントローラーについてより深く理解するには、すでにデフォルトで用意されているものと、これらのコントローラーがKubernetesの操作を自動化する方法をご覧ください。

アドミッションコントローラーによるイメージスキャン

コンテナイメージは、コンテナ化されたアプリケーションの構成要素ですが、これらのイメージではアプリケーションコードまたはその基盤となるシステムライブラリーに脆弱性が含まれている可能性があります。これらの脆弱性は、対処しないままにしておくと、悪用されて、不正アクセス、データ漏洩、さらにはシステムの乗っ取りにつながる可能性があります。そのため、コンテナイメージで既知の脆弱性をスキャンすることが単なるベストプラクティスではなく必要不可欠なのです。

Clair、Anchore、CrowdStrike Falcon®プラットフォームなどのイメージスキャンツールは、Kubernetesアドミッションコントローラーと統合して、イメージスキャンポリシーを適用できます。これらのツールは、脆弱性データベースに照らしてコンテナイメージをスキャンして、既知の脆弱性を特定できます。アドミッションコントローラーは、これらのツールと統合し、脆弱性があるか、スキャンされていないイメージの展開を防止するように設定できます。

つまり、アドミッションコントローラーは、イメージが安全でない場合に展開リクエストを拒否し、脆弱なコンテナがクラスターで実行されないようにします。これにより、クラスター内で展開されたすべてのコンテナイメージが安全で、セキュリティポリシーに準拠するようにする、自動化された強制的な方法が得られます。

カスタムアドミッションコントローラーの開発

Kubernetesにはさまざまなビルトイン型のアドミッションコントローラーが備わっていますが、特定の命名規則、リソース使用ポリシー、ポッドセキュリティポリシーなど、組織に固有のルールを適用する必要があるシナリオも存在することがあります。このような場合、Kubernetesを使用すると、独自のコントローラーを構築し、実行中のクラスターに動的に統合できます。

アドミッションコントローラーを作成するためのベストプラクティス

アドミッションコントローラーの作成では、APIサーバーリクエストに応答するWebhookサーバーを作成する必要があります。Webhookサーバーは、特にKubernetes APIサーバーからのアドミッションリクエストに応答します。Webhookサーバーは、検証、変更、またはその両方を任される場合があります。アドミッションコントローラーを作成するときは、以下のベストプラクティスに従ってください。

1. 明確なルールを定義する

コントローラーによって適用されるルールが明確で、十分に文書化され、Kubernetesクラスターを操作するすべてのチームメンバーと共有されていることを確認します。

2. エラーを適切に処理する

アドミッションコントローラーは、エラーを適切に処理し、Kubernetes APIサーバーの操作を妨げないようにする必要があります。さらに、意味のあるエラーメッセージを返す必要があります。これにより、ユーザーはリクエストが拒否された理由を把握できます。

3. Webhookを保護する

Webhookは、APIサーバーから機密情報を受け取るため、TLSでセキュリティ保護する必要があります。安全なWebhookでは、APIサーバーはリクエストを送信する前にWebhookの証明書を確認する必要があります。

4. パフォーマンスを高めるように設計する

Webhookを呼び出すと、APIサーバーリクエストのレイテンシーが増加します。Webhookがリクエストの処理に要する時間を最小限に抑えることで、パフォーマンスが高くなるようにアドミッションコントローラーを設計します。

5. 広範にテストする

さまざまな種類のリクエストでアドミッションコントローラーをテストし、期待どおりに動作することを確認します。テストプロセスには、使用しているKubernetesバージョンとの互換性の確認も含める必要があります。

アドミッションコントローラーのモニタリングとログ記録

Kubernetesのモニタリングとログ記録は、アドミッションコントローラーが下した決定を明らかにし、問題を特定し、クラスターのセキュリティポスチャを改善し、ポリシーが正しく一貫して適用されるようにするのに役立つ重要な可視性をもたらします。

Kubernetesでは、APIサーバーを通じて、アドミッションコントローラーでの決定に対するビルトインのログ記録が行われますが、これらのログは長くなり、解析が難しくなる場合があります。幸いなことに、ログ管理ツールは、これらのログを収集、フィルタリング、分析することで、これらのログを理解することができます。たとえば、FluentdやLogstashなどのツールは、Kubernetesクラスターからログを収集し、Elasticsearchやクラウドベースのログ管理サービスなどの一元化されたログ管理ソリューションに転送できます。続いてKibana(または同様のツール)でログデータを分析して可視化できます。

ログで、アドミッションコントローラーでの決定に関する情報を含むAdmissionReviewオブジェクトを探します。APIサーバーの対応時間を監視して、パフォーマンスへの影響を把握します。リクエスト拒否のパターンを探すこともお勧めします。これは、アドミッションコントローラーの設定ミスや、ユーザー間でのルールの誤解を示すことがあります。セキュリティインシデントを示唆している可能性があるため、リクエストの量または性質における急変について注意してください。

詳細

Kubernetesログ記録ガイドの全シリーズをご覧ください。

K8sアドミッションコントローラーを最大限に活用する

アドミッションコントローラーの威力は、そのまま使用できるように提供されたセキュリティとコンプライアンスだけでなく、カスタマイズと拡張性の可能性にあります。すべてのKubernetesクラスターオーナーは、このトピックを深く掘り下げ、自身の環境でアドミッションコントローラーをより適切に活用する方法を検討することをお勧めします。

クラウドストライクのKubernetesアドミッションコントローラーは、事前定義されたポリシーを提供し、コンテナ管理を容易にして、ユーザーが生のRegoルールを記述する必要をなくし、設定ミスのコンテナが展開されるのを防ぎます。

コンテナのライフサイクルを保護し、クラウドストライクでKubernetesのセキュリティを管理する

CrowdStrike Falcon® Cloud Security for Containersは、使いやすい単一のインターフェースでKubernetesセキュリティの複雑さを軽減し、脆弱なコンテナを特定して排除し、それらの再展開を防止することが可能な唯一のKubernetesアドミッションコントローラーを提供します。

CrowdStrike Falcon® Cloud Securityを使用して、セキュリティポスチャとKubernetesクラスターのレジリエンスを向上させましょう。堅牢なセキュリティプラットフォームであるCrowdStrike Falconプラットフォームは、脆弱性と脅威の検知、インシデント対応、アイデンティティ保護、オブザーバビリティ、およびクラウドセキュリティを提供します。アドミッションコントローラーと組み合わせて使用して、Kubernetes環境の保護に役立ててください。

今すぐ無料トライアルに申し込んでください。

ギリェルメ(Gui)・アルバレンガ(Guilherme(Gui)Alvarenga)は、クラウドストライクのクラウドセキュリティポートフォリオのシニアプロダクトマーケティングマネージャーです。彼は、チェック・ポイント、NEC、シスコシステムズなどの企業向けにクラウド、SaaS、ネットワーク、MLソリューションを推進してきた15年以上の経験を有しています。彼はブラジルのパウリスタ大学で広告とマーケティングの学位を取得し、サンノゼ州立大学でMBAを目指しました。スタンフォード大学で応用コンピューティングを学び、クラウドセキュリティと脅威ハンティングを専門としています。