GKE Autopilot で Kubernetes のセキュリティを簡単に確保
Google Cloud Japan Team
※この投稿は米国時間 2024 年 3 月 8 日に、Google Cloud blog に投稿されたものの抄訳です。
Kubernetes クラスタのセキュリティを設定して管理するのは、家を建てたりリフォームしたりするのによく似ています。どちらの場合も、セキュリティ、利便性、保守性のバランスを取ろうとすると、さまざまな領域の間で調整が必要となります。
住宅所有者にとっては、床、据え付け品、カウンタートップ、タイルなど、使いやすさとデザインに関する選択肢があります。また、どのようなドア、ロック、照明、カメラ、センサーを設置すべきか、それらをどのように接続、モニタリング、保守すべきか、問題が発生したときに誰に連絡するかなど、セキュリティに関する決定事項もあります。
Kubernetes クラスタでも同様です。各クラスタは、あなたが建てる家のようなものです。セキュリティに関する初期の決定事項が、どれだけ的確に攻撃を検出し、それに対応できるかを決定します。専門家がこれらの決定をすべて行ってくれ、常駐してテクノロジーの向上に応じて家をアップグレードしてくれたらどんなに良いでしょう。
そこで登場するのが GKE Autopilot です。GKE Autopilot は、Google Cloud の Kubernetes のセキュリティに関する深い知識を適用して、クラスタを本番環境ワークロードですぐに使用できるように構成します。Autopilot は Google Cloud の運命の共有運用モデルの良い例です。このモデルでは、Google Cloud はプロアクティブなパートナーとして、お客様がプラットフォームに適したセキュリティを実現できるよう支援します。Google Cloud のセキュリティ ツールを活用することで、Kubernetes クラスタのネットワーク全体をより安全に稼働させることが可能になります。
Google Cloud が行うクラスタレベルのセキュリティの構成は、クラスタのモードによって異なります。Standard モードでは、Google Cloud が Kubernetes のセキュリティ構成すべてを行いますが、多くのノード構成の決定事項とクラスタ内のポリシー構成はお客様次第です。Autopilot モードでは、Google Cloud がノード、ノードプール、クラスタ内のポリシーすべてをセキュリティのベスト プラクティスに基づいて完全に構成するため、お客様はワークロード特有のセキュリティに集中できます。
![https://storage.googleapis.com/gweb-cloudblog-publish/images/1_yJl1kbz.max-1000x1000.png](https://storage.googleapis.com/gweb-cloudblog-publish/images/1_yJl1kbz.max-1000x1000.png)
![https://storage.googleapis.com/gweb-cloudblog-publish/images/1_yJl1kbz.max-1000x1000.png](https://storage.googleapis.com/gweb-cloudblog-publish/images/1_yJl1kbz.max-1000x1000.png)
ノード セキュリティもおまかせ
ノードを Autopilot モードで完全に管理すると、複雑なノード セキュリティ領域は Google Cloud が対処しますが、お客様は柔軟な Kubernetes API を使用して構成を微調整できます。
このアプローチを使用すると、セキュリティの課題を次のように解決できます。
- パッチ適用の速度とパッチの可用性のバランスを取ってノードを最新のパッチが適用された状態に維持
- ノード ブレイクアウトのリスク要因となる、権限が過剰なコンテナを防止
- SSH、特権ボリューム タイプ、Webhook、Certificates API によりノードへの不正なアクセスおよび変更を防止
- kube-system などの特権名前空間を不正アクセスから保護
- Autopilot パートナー ワークロード リストの一般的なセキュリティ ツールを許可リストに登録して必要な権限を付与
このようにセキュリティの責任を移行することで、安全でないプラクティスを回避できるだけでなく、一部の重要なセキュリティ機能の構成が大幅に簡素化されます。Autopilot では、Google Cloud がノードを管理するので、GKE Sandbox の有効化がシンプルになります。PodSpec で runtimeClass オプションを設定する際、サンドボックス化されたコンテナを実行するための正しいノード構成を Autopilot が判断します。さらに、GKE セキュリティ対策脆弱性スキャンがデフォルトで有効になっています。
ノード セキュリティの責任を Google が負うことで、ユーザビリティを向上させながら、ホストのセキュリティも継続的に強化していきます。テクノロジーの向上に応じて新たな防御機能やさらに高度な検出機能が追加されるため、ノードの設定や構成を移行する必要はありません。
組み込みのクラスタのポリシー
Pod や Service などの Kubernetes API オブジェクトを適切に構成し、セキュリティ リスクを回避し、組織のセキュリティに関するベスト プラクティスに従うようにするのは、クラスタ内のポリシーの役割です。特に、Pod がノードにブレイクアウトして、特権エージェントにアクセスしたり、他のワークロードに影響を与えたりする状況を回避する必要があります。
この作業を行うには通常、Policy Controller のようなツールや Gatekeeper のようなサードパーティのプロダクトをインストールします。ただし、マネージドポリシーであってもオーバーヘッドは発生します。
- 使用するツールとベンダーの決定
- 組織のコンテナに適した制御の特定
- 特権セキュリティとモニタリング ツール用の例外の作成
- コンテナをデバッグするデベロッパー用のセルフサービス例外の作成
Autopilot では、セキュリティに関するベスト プラクティスに則ったポリシーが適用されるため、この作業は不要になりますが、ほとんどのワークロードは変更なしで実行できます。Google Cloud は承認されたサードパーティ セキュリティ パートナーと協力し、ツールとモニタリングがお客様による構成なしですぐに機能するようにしています。ワークロードをデフォルトで保護しながらデベロッパーが問題をデバッグできるようにする、セルフサービスのセキュリティ例外が組み込まれています。
Autopilot の組み込みのポリシーは、93% の Kubernetes ベースライン セキュリティ標準と 60% の制限付き標準を適用します。ほとんどのユーザーはこれでセキュリティとユーザビリティの適度なバランスが得られますが、追加のセキュリティまたはコンプライアンス要件がある場合は、前述の追加のポリシーツールを使用して対応できます。
このポリシーの利点は、より多くのコンプライアンス項目に対応できることだけではありません。2022 年 1 月から 2023 年 12 月までの期間に、Google の kCTF VRP および kernelCTF を通じて報告されたコンテナ ブレイクアウトの脆弱性の 62% において、デフォルトの Autopilot 構成でクラスタが保護されました。
GKE のセキュリテイ構成を適切に
Autopilot は、GKE API レイヤで安全でない構成を回避し、構成を標準化することによりポリシーの問題を軽減します。これは、電気系統の火災のリスクを軽減するための建築基準のようなものです。
GKE に関する Google Cloud の目標は、セキュリティをデフォルトで組み込むことであり、長年にわたってプロダクトの複数の部分にセキュリティを常時確保する機能を追加してきました。その一環として、シールドされたノードと自動アップグレードをデフォルトで有効にし、ノードを改ざんから保護し、クラスタを常に最新のパッチが適用された状態に維持しています。
これらの変更を導入しながら、下位互換性を維持するため、GKE Standard ではこれらのセキュリティ機能の一部を無効にするオプションも提供しています。その場合、クラスタ管理者のオーバーヘッドが増加します。大規模にクラスタのセキュリティを確保するには、機能ごとに組織ポリシー サービスまたは Terraform 検証を構成する必要があります。
Autopilot では、これらを刷新し、セキュリティの低いオプションをすべて削除しました。Workload Identity、自動アップグレード、シールドされたノードなどの強固なセキュリティ機能は常に有効で、無効にすることはできません。新しいクラスタはすべて Autopilot クラスタとなるため、セキュリティ ポリシーの管理が簡素化されます。さらに、セキュリティ機能の構成をノードプール API からワークロードに移行することにより、ポリシーを適用する領域を統合しています。
ぜひお試しください
Autopilot は新しい GKE クラスタすべてのデフォルトとなっており、すぐにセキュリティを確保できます。クラスタ内のセキュリティ ポリシーのベースラインが自動設定され、一般的な信頼性の高いセキュリティ ツールを使用できます。ノード セキュリティの責任を Google に移行することで、クラスタのセキュリティ対策の適用が簡素化され、ノードおよびシステム コンポーネントを保護し、古いセキュリティ オプションを削除できます。すぐにクラスタを作成してお試しください。
-GKE セキュリティ担当セキュリティ エンジニア Greg Castle