GKE Autopilotの可視性とセキュリティ

By 清水 孝郎 - DECEMBER 15, 2021

SHARE:

本文の内容は、2021年12月14日にEric Carterが投稿したブログ(https://sysdig.com/blog/visibility-security-gke-autopilot/)を元に日本語に翻訳・再構成した内容となっております。

Google CloudのGKE Autopilotは、クラウドでのKubernetesの作業を簡素化するために設計されたGoogle Kubernetes Engine (GKE)のオペレーションモードです。GKE AutopilotとSecure DevOpsプラクティスを組み合わせることで、ワークロードやアプリケーションのセキュリティ、コンプライアンス、パフォーマンスを確保することができます。

SysdigはGoogle Cloudと協力して、GKE Autopilotとお客様のコンテナの可視性とセキュリティを実現しました。この記事では、このソリューションを使い始める方法と、セキュリティのベスト・プラクティスに従うためにできることを紹介します。

GKE Autopilotとは?

GKE Autopilot は、Kubernetes クラスターの基盤となるノードやノードプールを含むすべてのインフラストラクチャーを Google Cloud がプロビジョニングおよび管理します。そのため、クラスターのセットアップは最小限で済み、ワークロードをサポートするためにノードのサイズや形状を決定する必要はありません。お客様は、Google SREチームがKubernetes上でGoogle Cloudのお客様をサポートする際に学んだ経験と実践の恩恵を受けることができます。

正しいスタートを切るために、GKE Autopilot は、クラスターのハーディング、ワークロードのセットアップ、およびセキュリティのベストプラクティスに従っています。例えば、GKE Autopilotは、安全ではないと考えられる機能や、設定ミスが起こりやすい機能をブロックします。そして、GKE Autopilot は、ノードへの ssh を排除しています。また、基盤となるサーバーにログインする手段もありません。これにより、問題の原因となる偶発的または意図的な変更を防ぐことができます。

GKE Autopilotの目的は、ハンズオフで完全に管理されたソリューションを提供することで、お客様がKubernetesの管理ではなく、ワークロードに集中できるようにすることです。GKE Autopilotは、クラスターに名前を付け、リージョンを選択し、ネットワークを設定するだけです。数分後には、Kubernetesのワークロードをサポートする安全なプラットフォームが完成します。

Getting started with GKE Autopilot
Google Cloud での GKE Autopilot の使用方法

SysdigによるGKE Autopilotの可視性とセキュリティ

Sysdig Secure DevOps Platformを使用すると、GKE Autopilotクラスターでコンテナ・セキュリティのベストプラクティスに従うことができます。これには、デプロイ前のコンテナのセキュリティ確保や、実行中のコンテナの動作の監視など、DevOpsのライフサイクルを通じた一連の機能が含まれます。

Sysig capabilities

Sysdigを始めるには

ワークロードやクラスターの監視とセキュリティは、Sysdigエージェントの導入から始まります。エージェントは軽量なノード・コンポーネントとして動作し、System Callの監視と処理、キャプチャーファイルの作成、監査とコンプライアンスの実行を行います。

Helmを使って、SysdigエージェントをGKE Autopilotクラスターにインストールします。

kubectl create ns sysdig-agent

helm install sysdig-agent \
--namespace sysdig-agent \
--set sysdig.accessKey=$SDC_ACCESS_KEY \
--set sysdig.settings.collector=$$COLLECTOR_URL \
--set sysdig.settings.collector_port=6443 \
--set clusterName=autopilot-lugo sysdig/sysdig \
--set nodeAnalyzer.deploy=false \
--set daemonset.affinity=null \
--set ebpf.enabled=true \
--set ebpf.settings.mountEtcVolume=false \
--set-string daemonset.annotations."autopilot\.gke\.io/no-connect"=true

上記では、Access KeyCollectorを定義する必要があることに注意してください。また、この例では

  • Affinityをnullに設定します。
  • ebpfをtrueに設定し、etc mount volumeをfalseに設定します。
  • Autopilotで実行できるように、上記のようなアノテーションを設定する必要があります。
完了すると、Googleが管理するクラスターノードにSysdigエージェントがインストールされ、Sysdig SecureとSysdig Monitorの機能を利用することができるようになります。注意: NodeAnalyzerはAutopilotでは実行できません。

GKE Autopilotによって新しいノードが自動プロビジョニングされると、Kubernetesのデーモンセット機能が同様にSysdigエージェントをこれらのノードに自動プロビジョニングし、Sysdigサービスのシームレスな可用性を確保します。

GKE AutopilotとSysdigの使用例

お客様の組織では、セキュリティやコンプライアンスに関する要件が定義されており、Kubernetes上にデプロイするアプリケーションの健全性やパフォーマンスも重要視されています。Sysdigは、GKE Autopilotでの運用において、これらの要件を満たすためのサポートを行います。いくつかの例を見てみましょう。

アドミッションコントロール

Sysdigは、クラスターにデプロイする前に、CI/CDパイプラインやレジストリでコンテナ・イメージをスキャンすることができます。また、アドミッションコントローラポリシーを作成し、GKEオートパイロット上でのコンテナの実行を許可するか否かの基準を定義することができます。

これにより、例えば、「安全」という基準を満たしたイメージや、コンプライアンスポリシーを満たしたイメージのみの実行を許可することができます。このようなレベルの制御を実現するためのポリシーは、Sysdig Secureのインターフェース内で簡単に作成することができます。

Sysdig Kubernetes Admission Controller
Sysdig Kubernetes Admission Controller

ランタイムの脅威検知と対応

イメージスキャンやアドミッションコントロールのようなセキュリティ脅威の防止策を導入することは、Secure DevOpsの鍵となります。しかし、本番での異常で予期しない振る舞いを監視することも非常に重要です。

Sysdig Secureのポリシーを有効にして、さまざまなログやイベントのソースを監査し、異常なアクティビティを警告することで、脅威をブロックして是正措置を取ることができます。イベントのソースには以下のものがあります。

  • ホストとKubernetesのイベント
  • Linux/コンテナのシステムコール
  • クラウドの監査ログ
Sysdigは、オープンソースのFalcoをベースに、これらのデータソースを監視します。Sysdig Secureでは、Falcoのルールを使って、ワークロードやGKE Autopilot全体の動作を検出するポリシーを実装することができます。

コンテナランタイムセキュリティ

SysdigエージェントはLinuxカーネルにフックしているため、システムコールを監視することで、コンテナを可視化することができます。このようにして、コンテナ内にエージェントコードを必要とせずに、コンテナの動作を監視することができます。

脅威の検知範囲は、GKE Autopilotのすべてのクラスターに広げることも、特定のクラスターやネームスペース、さらには特定のコンテナタイプに絞り込むこともできます。このような柔軟性により、コンテナの検出をチューニングしてノイズを減らし、”偽陽性 “を少なくすることができます。

GKE Autopilot runtime policy
GKE Autopilotのランタイムポリシー

これらのポリシーでは、望ましくない動作を示すコンテナをkill、停止、または一時停止するという余分なステップを踏むこともできます。これにより、アクティビティが停止し、差し迫った脅威がなくなります。さらに、情報やコンテキストを提供して対応を迅速化するために、ポリシーがトリガーされたときにSysdigキャプチャーファイルをトリガーすることができ、フォレンジックを行うのに役立つ深いシステムレベルのデータにアクセスすることができます。

Kubernetesの監査ロギング

Kubernetesのイベントは、GKE Autopilotのセキュリティ戦略に組み込むべき重要な情報源です。Sysdigでは、Kubernetes APIへのリクエストをインターセプトするアドミッションコントローラーでKubernetes監査ロギング機能を設定することができます。そして、Falcoエンジンを搭載したKubernetes Audit Policiesを設定し、Kubernetesのイベントをフィルタリングすることができます。

この機能を使用して、次のような質問に答えることができます。
  • 何が起こったのか?どんな新しいポッドが作成されたか
  • 誰がそれをしたのか?ユーザー、ユーザーグループ、またはサービスアカウント
  • いつ起こったのか?イベントのタイムスタンプ
  • どこで発生したか?ポッドが作成されたネームスペース
このアクティビティは、Sysdig Secureの「イベント」ページにキャプチャーされて表示されます。

GKE Autopilot runtime policy

GKE AutopilotとSysdig

GKE Autopilotは、Google Cloudに任せてワークロードに集中することができる、ハンズオフで完全に管理されたソリューションを提供します。クラウド上でのリスクを軽減し、資産を保護するためには、やはりセキュリティが最も重要です。GKE Autopilotに搭載されている強化機能に加え、Sysdig Secureのようなツールを使って Secure DevOpsを実践することで、注意が必要な脆弱性や動作を可視化することができ、安心して運用することができます。

Sysdigを使い始めるには、Google Cloud Marketplaceで当社のソリューションをチェックしてください。また、ここをクリックするだけですぐに無料トライアルを開始できます。