Kubernetes はコンテナーに関連するため、クラウド ネイティブ ソフトウェアの標準となっています。 実際、Cloud Native Computing Foundation (CNCF) の最新の調査では、運用環境での Kubernetes の使用率が 78% に増加していることがわかりました。 ただし、短期間で人気が急上昇する他のテクノロジと同様に、Kubernetes とは何か、Kubernetes とコンテナ化に伴うセキュリティ上の考慮事項については多くの混乱があります。 好例: CNCF の同じ調査では、回答者の 40% がコンテナの使用/デプロイメントの課題としてセキュリティを挙げ、38% が複雑さを課題として挙げています。
コンテナのデプロイメントを強化する任務を負ったセキュリティ エンジニアにとって、克服すべき学習曲線は間違いなく存在します。 理解できるように、Kubernetes とは何か、どのように機能するのかを確認し、Kubernetes の基本的なセキュリティ概念についていくつか説明します。
Kubernetes は、コンテナーのワークロードを調整および管理するために使用されるプラットフォームです (例: Dockerコンテナ)。
2014 年の最初のリリース以来、Kubernetes (ルーツは Google の開発チームに遡るオープンソースの CNCF 卒業プロジェクト) は、DevOps およびクラウド ネイティブ サークルで最も人気のあるツールの 1 つになりました。
Kubernetes を理解するための前提条件は、まずコンテナーについて理解することです。 一言で言えば、コンテナーは、アプリケーションの実行に必要なすべての依存関係を含む軽量のソフトウェア パッケージです。 コンテナーは、さまざまな環境でアプリケーションを確実に実行するという問題を解決します。 コンテナは軽量でポータブルであるため、人気が急上昇しており、最新のマイクロサービスや Web アプリケーションの開発に不可欠です。
単一コンテナーの使用には多くの管理やオーケストレーションは必要ありませんが、大規模なアプリケーションは拡張できる必要があります。 最新の開発チームは、コンテナーのデプロイメントのプロセスを自動化および拡張できる必要があります。 ここで、Kubernetes などのコンテナ化されたワークロード管理ツールが登場します。 Kubernetes は、不足している管理とオーケストレーションを提供します。
Kubernetes について議論するとき、「管理とオーケストレーション」というフレーズが頻繁に飛び交います。 しかし、それでは具体的なことはあまりわかりません。 簡単に言えば、Kubernetes により、負荷分散、構成管理、ストレージ リソースの構成、自動リソース割り当て (例: コンテナーごとの CPU と RAM)、コンテナーのデプロイメントのスケールアップまたはスケールダウン。
Docker と Kubernetes のトピックに関しては、多くの混乱が生じる可能性があります。 しかし、実際には非常に簡単です。
この最後の点が、混乱を招きかねないものです。 Docker はたまたま、Kubernetes と同様の機能を提供するツール Swarm を提供しています。 ただし、管理およびオーケストレーション ツールとしては Kubernetes の方がはるかに人気があります。
Kubernetes を使い始める際には、コンテナー以外にも理解すべき重要な概念があります。 いくつかの重要な用語を見てみましょう。
Kubernetes は、コンテナのデプロイメントに対するコードとしてのインフラストラクチャのアプローチが役立つあらゆる場所で効果的に役立ちます。 これは、アジャイル開発チームや DevOps プラクティスに重点を置くチームが、継続的インテグレーション/継続的デリバリー (CI/CD) パイプラインの自動化を支援するために Kubernetes を使用することが多いことを意味します。 さらに、Kubernetes は、ノードの健全性とリソース使用率を監視し、必要に応じてスケールアップまたはスケールダウンすることで、クラウド ネイティブ アプリケーションの自動スケールを支援します。
もちろん、Kubernetes は自動化とスケーラビリティの観点から価値を追加しますが、セキュリティ チームにとっては新たな問題も生じます。 アプリやサービスを安全にデプロイするにはどうすればよいでしょうか。 いつものように、これは脅威モデルとリスク選好度を理解することから始まりますが、始めるのに役立ついくつかの基本があります。
また、コンテナの可視性と脆弱性のスキャンを計画し、問題を迅速に修復し、関連する標準への準拠を維持することも重要です。 コンテナの脆弱性スキャンとセキュリティ体制の評価を開始するには、 「Continuous Container Visibility and Conpriians (PDF)」を読むことをお勧めします。
Kubernetes が高レベルでどのように機能するか (コンテナーのデプロイメントを自動的に制御および管理する) を理解したので、k8s を安全にデプロイするための次のステップに進むことができます。 コンテナ、Kubernetes、およびサーバーレス インフラストラクチャを使用したセキュリティの実装について詳しく知りたい場合は、サインアップして、クラウド セキュリティの専門家 Hillel Solow が提供する無料の「How to Layer Security into Modern Cloud Application」ウェビナーをご覧ください。