2023年1月19日

Continuous Delivery

Kubernetesワークロードを保護する方法

潜在的な脅威からKubernetesクラスターとアプリケーションを保護し、データの安全性を確保する方法を学びます。

Kubernetes Workloads_1.png

今日、DevOpsとクラウドネイティブの方法論は、組織の標準的なプラクティスになっています。その結果、ソフトウェア開発者は、これらの新しいコンピューティングパラダイムを活用して、高可用性を維持し、コストを削減しながら市場投入までの時間を短縮することをますます求めています。Kubernetesは、組織がソフトウェア配信を高速化するために採用したいと考えているプラットフォームの1つです。

 

Kubernetesは強力ですが、適切なセキュリティー対策なしでKubernetesを採用すると、サイバー攻撃のリスクが高まる可能性があります。コンテナーサービスが持つ分散型の性質により、環境は攻撃ベクトルの増加にさらされます。しかし、適切なセキュリティープロトコルとベストプラクティスを使えば、これらの潜在的な脅威からKubernetesクラスターとアプリケーションを保護し、全データを安全かつ機密に保つことができます。

Kubernetesセキュリティーの重要性

ionir調査結果によると、回答者の約60%がKubernetesでステートフルアプリケーションを実行しており、50%が今後12カ月以内に実行する予定であると回答しています。さらに、Red HatのThe State of Kubernetes Security in 2022調査レポートでは、回答者の78%がKubernetesの展開に関してDevsecOpsを主眼に選択したと述べています。

 

Kubernetesセキュリティーの詳細に入る前に、まずこれらのセキュリティープロトコルの背後にある概念を見てみましょう。Kubernetesが非常に安全である理由は、ホストオペレーティングシステムから完全に分離されたLinuxコンテナーをベースにしているためです。攻撃者がKubernetesクラスターに侵入した場合、攻撃者はコンテナーにのみアクセスでき、ホストOSの残りの部分にはアクセスできないということになります。この分離があるため、ハッカーは機密データにアクセスしたり変更したりするために、クラスター内で実行されている全コンテナーを個別に破壊する必要があります。つまり、攻撃者が承認なしにKubernetesクラスター内のデータにアクセスすることは、不可能ではないにしても、非常に困難になります。

 

Kubernetesは現代の組織に多くのメリットをもたらします、Kubernetesはソフトウェア製品でもあり、サイバーセキュリティーの脅威の影響を受けやすいことに留意することが大事です。さらに、Kubernetesはオープンソースなので、商用ソフトウェアよりも多くのセキュリティーリスクに対して脆弱になる可能性があります。従って、環境内にKubernetesを導入する前に、サイバー脅威からデータを保護するためのセキュリティー戦略があることを確認する必要があります。そうしないと、攻撃者が機密データへの不正アクセスを取得し、ビジネスプロセスを混乱させて、財務面や評判に重大な損害を与える可能性があります。

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

Kubernetesクラスターを確実に安全にするためのベストプラクティスを次に示します。

信頼できるコンテナーイメージを使用する

まず、イメージをゼロから構築するのではなく、信頼できるイメージを使っていることを確認してください。あるいはその代わりに、信頼できるオープンソースイメージを使用してください。これにより、コンテナー内に悪意のあるコードが挿入されるリスクを減らせます。さらに、コンテナーを設定するときは、最小特権の原則に従う必要があります。これは、コンテナーが実際に必要とする以上のアクセスをコンテナーに与えるべきではないことを意味します。これを行うと、侵害のリスクをもたらす攻撃者は、権限がなければOSへのフルアクセスを取得できなくなります。

クラスターの管理とユーザーの役割を理解する

クラスター管理を軽減する方法を知る必要があります。これは、クラスターを保護するための重要な最初のステップです。多くの組織は、クラスター全体の特権を必要とするKubernetesの部分に対してサービスアカウントを作ることを選択しています。基本的には、クラスター全体の特権を必要とするKubernetes内の各コンポーネントに対して、特別なユーザーアカウントを作ります。

 

Kubernetesには2種類のユーザーがいます。

Clusterユーザーは、クラスターの日常的な管理に使用されます。ポッドとサービスを作成できますが、Kubernetes APIを変更するためのアクセス権はありません。

Authenticatedユーザーは、Kubernetes APIで認証され、Kubernetes APIへの完全なアクセス権を持ちます。

Kubernetesワークロードを監視する

悪意のある活動が起きていないか、Kubernetesのワークロードと環境を継続的に監視する必要があります。これには、次のようなセキュリティー脅威の監視が含まれます:

 

無許可ユーザーへのアクセス:KubernetesクラスターにアクセスするユーザーのIPアドレスを監視できる必要があります。理想的には、これは各コンテナー自体に拡張する必要があります。これにより、コンテナーにアクセスしているユーザーが認証されたユーザーであるかどうかを確認できます。

APIの悪用:KubernetesのAPIを使っている場合は、各APIコールを監視して、悪意のあるアクターがAPIを悪用してKubernetesクラスターを侵害していないことを確認する必要があります。これには、許可されていないIPアドレスからのAPIコールや失敗したAPIコール、さらに予想よりも時間がかかるAPIコールの監視を含む場合があります。

データ侵害:Kubernetesクラスター内のデータ侵害も監視する必要があります。これには、異常なファイル操作、機密データへの予期しないランダムアクセス、または異常なネットワークトラフィックの監視を含める場合があります。

CI/CDパイプラインにKubernetesセキュリティーツールを統合する

Kubernetesセキュリティーツール/プラットフォーム(KubescapeDatreeTrivyなど)は、yamlファイルとクラスターのセキュリティー上の問題と脆弱性を見つけるのに役立ちます。開発者がこれらのツールをCI/CDパイプラインに統合する方法が必要です。

Kubernetes Workloads_2.png

GitOpsの利用

GitOpsを利用すると、セキュリティー上の問題に簡単に対処できます。Gitを主要ツールとして使うと、全てを追跡できるため、オブザーバビリティーの実現が容易になります。GitOpsアプローチに関連してCI/CDツールチェーンを使うことは、Kubernetesのデプロイメントを安全にし、標準的な方法論を組織全体で維持するために不可欠です。それを実現する方法についてのチュートリアルに飛び込みましょう。

Harnessを使ってパイプラインでKubernetesセキュリティーを設定する方法

このチュートリアルでは、3つのKubernetesセキュリティーツール、つまりKubescapeDatreeTrivyについて検討ます。Harnessを使って、デプロイパイプラインでこれらのツールを設定します。

 

まず、Harnessから無料のアカウントを取得し、Harness CDモジュールを使って簡単なCDパイプラインをセットアップします

Kubernetes Workloads_3.png

必要なコネクターをセットアップします。

Kubernetes Workloads_4.png

次のステップは、以下に示すようにパイプラインを作成することです。ワークロードの設定ミスやエラーを確認します。Kubernetesワークロードでエラーが見つかった場合、アプリケーションのデプロイは続行されません。デプロイメントの段階では、シェルスクリプトユーティリティーを使って、3つのKubernetesセキュリティースキャンがステップとして追加されます。

Kubernetes Workloads_5.png

 

 

Kubernetes Workloads.png

3つ全部(Kubescape、Datree、Trivy)のKubernetesスキャンツールが統合されると、CDパイプラインは次のようになります。

Kubernetes Workloads_6.png

設定を保存し、パイプラインを実行します。これらの Kubernetesセキュリティースキャナーが並行して実行されていることがわかります。

Kubernetes Workloads_7.png

デプロイが(上の画像に示されているように)失敗することを心配する必要はありません。使っているYAMLファイルにいくつかの設定ミスがあるため、失敗しています(Datreeがそれを検出し、パイプラインが失敗しています)。この失敗は、実際の失敗で何が起こるか、およびそれを認識する方法を示すために、このチュートリアルで意図的に作られたものです。

パイプライン検出:Kubescape vs Datree vs Trivy

各ツールの機能と、パイプラインで検出されるものを見てみましょう。

 

Kubescapeはクラスターをスキャンし、セキュリティー標準に準拠していないYAMLファイルを表示します。

Kubernetes Workloads_8.png

Datreeは、Kubernetesマニフェストファイルに設定ミスがあるかどうかを示します。Kubernetes Workloads_9.png

Trivyは、Kubernetesワークロードの脆弱性をスキャンします。Kubernetes Workloads_10.png

Harnessを使うと、3つのKubernetesセキュリティースキャナー全てをパイプラインに簡単に統合できます。

HarnessでKubernetesを保護する

Kubernetesは、組織が新しいアプリケーションやサービスの配信を加速するのに役立つ強力なコンテナーサービスです。ただし、このテクノロジーには多くの利点がありますが、分散アーキテクチャーが原因で攻撃のリスクも高まります。このリスクを最小限に抑えるには、コンテナーとワークロードを適切に設定し、悪意のある活動がないかクラスターを監視する必要があります。

 

Kubernetesデプロイメントの人気が高まるにつれて、各組織はDevOpsの専門家を採用し、DevOpsの原則を使ってソフトウェア配信プロセスを高速化しています。ただし、覚えておく必要があるのは、速度だけでなく、セキュリティーも重要であることです。Kubernetesのセキュリティースキャナーと脆弱性検出機能を使うと、サイバー犯罪者に一歩先んじて、Kubernetes関連のワークロードを安全に保つことができます。

 

HarnessがKubernetesデプロイメントを保護する方法に興味がありますか? Harness CDを今すぐ無料でお試しください


この記事はHarness社のウェブサイトで公開されているものをDigital Stacksが日本語に訳したものです。無断複製を禁じます。原文はこちらです。

Harnessに関するお問い合わせはお気軽にお寄せください。

お問い合わせ