Kubernetesは、誰もが認めるコンテナオーケストレーションの業界標準であり、その台頭はクラウドネイティブテクノロジーの広範な採用と密接に関連しています。しかし、セキュリティ侵害が世界的に増加し続ける中、オンプレミスのクラスターであろうと、パブリッククラウドであろうと、Kubernetesクラスター全体にわたって、セキュリティのベストプラクティスを導入し、遵守する必要があります。
この記事では、Kubernetesセキュリティのベストプラクティスに関する重要な推奨事項の概要を説明します。これらのプラクティスは、組織が一般的なKubernetes環境の主要なレイヤー全体で最適なセキュリティを実現できるように設計された4Cに基づいています。
Kubernetesセキュリティの4C
Kubernetesプラットフォームは、開発チームと運用チームを、現在DevOpsとして知られているロールに橋渡しする役割を果たしました。したがって、Kubernetesのセキュリティについて説明する際は、アプリケーションとインフラストラクチャの両方の側面を考慮することが不可欠です。4Cセキュリティフレームワークでは、Kubernetesが動作する4つすべてのレイヤー全体でセキュリティの原則に徹底して取組みます。
コード:アプリケーションコードは、厳格なコードセキュリティ標準に従って記述する必要があり、OWASPトップ10などの標準のアプリケーションセキュリティガイドラインに従う必要があります。
コンテナ:Kubernetesクラスター内の作業の最小単位がポッドです。ポッドには、同じローカルネットワーク内で実行される1つ以上のコンテナが含まれています。本番環境の任意のポッド内で実行される各コンテナは、信頼できるベースイメージとランタイム環境を使用する必要があります。
クラスター:このレイヤーは、Kubernetes自体がどのように設定されているかを直接参照します。すべてのKubernetesクラスターのアクセスポリシーとセキュリティの設定は、慎重に設計する必要があります。
クラウド:他のソフトウェアと同様に、Kubernetesは最終的に基盤となるハードウェア上で実行されます。Kubernetesをホストするクラウドインフラストラクチャは、攻撃から適切に保護する必要があります。
CNAPPの完全ガイド
クラウドストライクの『CNAPPの完全ガイド』をダウンロードして、クラウドネイティブアプリケーション保護プラットフォームが最新のクラウドセキュリティ戦略の重要な要素である理由、そしてそれらを開発ライフサイクルに統合する最適な方法をご確認ください。
今すぐダウンロードコードセキュリティ
コードレビュー
機能をリリースする期限が迫るにつれて、アプリケーションコードのセキュリティは軽視されることがよくあります。リリースがどれほど緊急に思えたとしても、理想的には新機能を受入れる基準の一端をセキュリティが担うべきです。コードレビューでは、重要度の高いセキュリティの側面を考慮する必要があります。複数の開発者がコードレビュープロセスに参加して、一般的なコーディング標準への準拠と同様に、アプリケーションがセキュリティ標準に準拠していることを確認する必要があります。
自動化された脆弱性スキャンツール
どのソフトウェアプロジェクトもそれぞれ、多数のサードパーティライブラリに依存しています。これらの依存関係があることで時間が節約でき、すでに解決されている一般的な問題にとらわれることなく、開発者はアプリケーションのビジネスロジックに集中できます。ただし、他のソフトウェアと同様に、これらのライブラリにはセキュリティの脆弱性が含まれている可能性があります。したがって、サードパーティの依存関係の脆弱性を継続的にスキャンし、アプリケーションが本番環境にリリースされる前にパッチを適用することを、ビルドプロセスの一部として継続的インテグレーション/継続的デリバリー (CI/CD) パイプラインに統合する必要があります。
コンテナセキュリティ
信頼できるイメージの展開
アプリケーションをサポートするコンテナイメージは、多くの場合、独自の依存関係を含むベースイメージの上に構築されます。最高レベルのコンテナセキュリティを確保するには、可能な限り無駄のない(各依存関係は潜在的なセキュリティ脆弱性のベクトルであるため、可能な限り依存関係を少なくして)ベースイメージを使用することをお勧めします。とはいえ、このような依存関係を避けるのは現実的ではないため、信頼できるイメージの使用が不可欠になります。
理想的には、検証済みソースのイメージのみを使用する必要があります。これらのソースとして、Docker公式イメージやDocker Verified Publisher Programがあります。
イメージの定期的なスキャンとランタイムの振る舞いの監視
アプリケーションの依存関係と同様に、イメージをコンテナレジストリーに展開する前にスキャンします。Kubernetesはこれらのイメージをプルして、展開に使用します。ただし、展開後であっても、マルウェアや不正アクセスによって引き起こされる潜在的な異常を検知するために、コンテナランタイムを継続的に監視する必要があります。
クラスターセキュリティ
RBACの実装
クラスターセキュリティは、慎重に対処する必要があるいくつかの領域に分けることができます。アクセス制御は、必要な権限のみがクラスターのオペレーターに付与されるよう、ロールベースのアクセス制御 (RBAC) を使用して高い粒度で制御する必要があります。
名前空間を使用したワークロードの分離
ワークロードは、ネットワークの適切な分離を確保し、アクセス制御の追加レイヤーを提供するために、Kubernetes名前空間を使用して安全に分離する必要があります。
ネットワークおよびポッドのセキュリティポリシーの適用
ポッドとサービス間のネットワークトラフィック、およびクラスターの外部にソースがある内向きおよび外向きトラフィックは、必要な場合のみ許可する必要があります。トラフィックは、TLSなどの安全なプロトコルを使用して暗号化する必要があります。Istioなどのサービスメッシュツールを利用すると、このプロセスを簡素化できます。
APIサーバーの保護
クラスター内の更新と新しい展開はすべて、DevOpsエンジニアが手動で、または(Helmなどのツールを使用して)CI/CDパイプラインを介して自動的にKubernetes APIにリクエストを送信することによって実行されます。したがって、Kubernetes APIへのアクセスは厳密に制御し、完全に暗号化する必要があります。
監査ログの有効化
クラスターでどのような種類であっても予期しない振る舞いが発生した場合は、根本原因を特定するために監査ログを有効にする必要があります。監査ログは、アクションとイベントに関するレコードの包括的なソースとして機能します。これらのログは、発生した内容、その日時、誰によって発生したのかなど、重要な質問の答えを得るのに役立ちます。
Kubernetesコンポーネントの定期的な更新
最後に、クラスターで実行されるすべてのソフトウェアを含め、Kubernetes自体を定期的に更新します。これは、新しい脆弱性が発見され、Kubernetesとそのコンポーネントのパッチが適用されたバージョンが定期的にリリースされるため、最適なセキュリティを得るための基本的な要件です。
ユーザー事例:Porter Airlines
このユーザー事例をお読みになり、Porter Airlinesがクラウド、アイデンティティ、エンドポイントのセキュリティをクラウドストライクでどのように統合したかご覧ください。
今すぐダウンロードクラウドインフラストラクチャセキュリティ
安全なAPIサーバーアクセス
APIサーバーは、厳密な認証を実装する必要があります。これをホストするコントロールプレーンノードでは、すべてのソースからのトラフィックを許可しないようにします。
ノードの強化
Kubernetesを実行するインフラストラクチャは、独自のセキュリティ対策に従う必要があります。クラスター内の各インスタンス(ノードと呼ばれます)は、インスタンスレベルのファイアウォールを実装する必要があります。これがサブネットレベルのファイアウォールの一部であると理想的です。
Kubernetesシークレットの暗号化
保存されているKubernetesシークレットを暗号化します。可能な場合は、HashiCorp Vaultなどの独立、分離されたシークレットマネージャーを使用して、元のシークレットを保存します。シークレットマネージャーは、自動シークレットローテーションや動的シークレット生成など、Kubernetesにはない機能を提供します。Kubernetesエコシステムには、これらのシークレットマネージャーとのシームレスな統合を容易にする多くのカスタムリソース定義 (CRD) が用意されています。
定期的な監査の実施
クラウドインフラストラクチャ設定は、本質的に動的であり、時間の経過とともに大幅に変更される可能性があるため、定期的に監査する必要があります。
詳細
このページでデモのスケジュールを依頼し、セキュリティチームの作業の軽減、クラウド侵害からの保護、マルチクラウド環境の最適化にCrowdStrike Falcon Cloud Securityがどのように役立つかをご確認ください。
その他の実践方法
基本的な4Cに加えて、その他に考慮すべきセキュリティ慣行があります。
アドミッションコントローラーの使用
アドミッションコントローラーを使用してAPIサーバーに検証をリクエストすると、すべての受信リクエストに対して追加のセキュリティレイヤーが提供されます。
リソース制限の設定
展開ごとにCPUとメモリの制限を設けて設定する必要があります。これは、コストの最適化だけでなく、リソースを枯渇させる攻撃などのサービス拒否のリスクを軽減するためでもあります。ポッドオートスケーラーについても、このことを念頭に置いて設定する必要があります。
包括的なロギングと監視の有効化
Kubernetesクラスターで広範なオブザーバビリティを設定することは、一般的に適切な方法と考えられています。Kubernetesエコシステムには、Prometheus、Grafana、Jaeger、Kialiなどのいくつかのツールがあり、これらを組み合わせることで、セキュリティ問題の調査に役立つリアルタイムの監視と詳細なメトリックを提供します。
クラウドストライク:クラウドネイティブセキュリティの信頼できるパートナー
10年以上にわたる継続的な成功の実績があるKubernetesは、世界中の何百万もの開発者によって使用されており、コンテナオーケストレーションソリューションのリーダーの地位を確立しています。それにもかかわらず、本番環境でアクティブなリスクをもたらす脆弱性を回避するために、Kubernetesはすべてのレイヤーでセキュリティを必要としています。
Kubernetesセキュリティの4つの柱 (4C) とその他の予防措置は、組織が最適なレベルのセキュリティを達成するのに役立ちます。しかしながら、これらのベストプラクティスに従うには、CrowdStrike Falcon® Cloud Securityのようなツールの助けがなければ難しい場合があります。
クラウドストライクは、クラウドセキュリティの業界全体のリーダーであり、Falcon Cloud Securityは、Kubernetesセキュリティの複雑さを簡素化できる強力なプラットフォームです。クラウドストライクが企業のKubernetes環境の保護をどのように支援しているかご理解いただくには、今すぐインタラクティブデモをお試しください。
Expert Tip
クラウドセキュリティ評価は、組織がクラウドインフラストラクチャを評価して、それぞれの組織に固有の課題やリスクに対処するための適切なレベルのセキュリティとガバナンスが実装されているかどうかの判断に役立ちます。