このドキュメントでは、Google Kubernetes Engine(GKE)に AI ワークロードをデプロイするプラットフォーム チーム、セキュリティ エンジニア、クラウド アーキテクト向けのベスト プラクティスについて説明します。GKE を使用すると、モデルの重みなどの独自の知的財産(IP)を保護し、コンテンツをフィルタリングしてブランドの評判を守り、規制遵守を改善できます。
これらのベスト プラクティスは、次のような他の GKE と AI ワークロードのセキュリティに関するベスト プラクティスに加えて実装します。
セキュリティに関する責任を理解する
AI ワークロードのセキュリティ ポスチャーは、 Google Cloud インフラストラクチャや使用するモデルなど、環境のさまざまなレイヤに依存します。次の表に、これらのレイヤ、各レイヤのセキュリティ保護を担当するユーザー、そのレイヤのセキュリティ責任を示します。
| 層 | 説明 | 責任 |
|---|---|---|
| インフラストラクチャ | AI ワークロードが実行される基盤となるインフラストラクチャ(仮想マシン(VM)、ネットワーキング コンポーネント、ストレージ ハードウェアなど)。 Google Cloud はインフラストラクチャを所有し、強力なセキュリティ ベースラインを提供します。 | 組織のプラットフォーム管理者は、次の領域でセキュリティを強化するための制御を実装します。
|
| モデル | モデル、モデルの重み、トレーニング パイプライン、安全性プロパティ。トレーニングまたはファインチューニングしたモデルを実行する場合は、モデルレイヤの保護を担当します。サードパーティ プロバイダ(Gemini など)のマネージド モデルを実行する場合、モデルのセキュリティはプロバイダの責任となります。 | モデルレイヤでは、モデルの所有者は次の領域のセキュリティを担当します。
|
| アプリケーション | プロンプト、コード、システム指示、エンドユーザー エクスペリエンス。組織内のアプリケーション オペレーターとプラットフォーム管理者は、アプリケーション レイヤのセキュリティを担当します。 | アプリケーション レイヤでは、アプリケーション オペレーター、デベロッパー、プラットフォーム管理者が次の領域のセキュリティを担当します。
|
責任を負うレイヤを保護するために、コントロールを適用します。次の例は、GKE のお客様の一般的なデプロイ タイプと、それらのデプロイに対応するセキュリティ責任を示しています。
- Gemini などのマネージド モデルを実行している場合: インフラストラクチャ レイヤとアプリケーション レイヤで制御を適用します。安全フィルタが組み込まれたマネージド モデルを使用する場合でも、特定のアプリケーション ロジックを保護するために必要なプロンプト インジェクション対策はユーザーが所有します。
- 独自のモデルを実行する: ファインチューニングされたモデル、オープンソース モデル、トレーニングしたモデルを実行する場合は、すべてのレイヤでセキュリティを確保する必要があります。
- マルチテナント AI サービス プロバイダである: GKE でモデルを実行し、複数のテナントに推論エンドポイントを公開して、独自のユーザーに AI サービスを提供する場合、追加の制御を行う責任があります。これらのマルチテナント制御には、論理的および物理的なテナント分離(専用のノードプール、Namespace、ネットワーク ポリシーなど)、テナントごとのレート制限、個別の顧客管理の暗号鍵(CMEK)を使用したテナントの保存データの暗号化などがあります。
インフラストラクチャ レイヤのセキュリティを強化する
インフラストラクチャ レイヤでは、 Google Cloud と GKE が、さまざまなセキュリティ コントロールをデフォルトで実装するベースライン セキュリティ ポスチャーを提供します。AI ワークロードのインフラストラクチャのセキュリティを強化するには、実行する AI ワークロードのタイプと、達成する特定のセキュリティ目標に基づいて、追加のセキュリティ コントロールを構成します。以降のセクションでは、AI インフラストラクチャのさまざまなコンポーネントを保護するために使用できるプロダクトとサービスについて説明します。
GKE ノードを保護する
次のサービスを使用して、プロンプトとレスポンスを処理する推論ワークロードや、独自のモデルにアクセスするトレーニング ワークロードなどの機密データを保護します。
ハードウェア構成証明を使用して使用中の機密データを暗号化する: Confidential Google Kubernetes Engine Node で推論ワークロードを実行し、AMD SEV-SNP または Intel TDX CPU に加えて、GPU や TPU などのアクセラレータにハードウェア レベルのメモリ暗号化を拡張します。規制対象のデプロイと機密性の高い推論ワークロードには、Confidential GKE Node を使用します。Confidential GKE Node は、アプリケーション レベルの不正使用や、ノードレベルのアクセス権を持つ承認済みユーザーからワークロードを保護しません。
顧客に厳格な分離要件(主権ワークロードなど)があるプロバイダの場合、GKE Hypercluster は、基盤となるインフラストラクチャ オペレータであるGoogle Cloudでさえテナント データを検査できない暗号証明を提供します。
ノードのなりすましのリスクを軽減する: 検証可能なノードの整合性と ID の構成証明を提供する Shielded GKE Nodes でワークロードを実行します。すべてのワークロード タイプに Shielded GKE Nodes を使用する。
ワークロードの静的認証情報の使用を排除する: Workload Identity Federation for GKE を使用して、有効期間の短いフェデレーション認証情報を使用してアプリケーション コードから Google Cloud サービスにアクセスし、不要な Compute Engine メタデータがアプリケーションに公開されないようにします。すべての本番環境クラスタで Workload Identity Federation for GKE を使用します。特に、クラスタ外のサービスにあるデータにアクセスする必要がある場合は、Workload Identity Federation for GKE を使用します。
ネットワーク制御を実装する
次の機能とプロダクトを使用して、AI ワークロードのネットワーク セキュリティを強化できます。
エイリアス IP アドレス範囲を使用する: VPC ネイティブ クラスタは、VPC ネットワーク内の静的ルートを使用する代わりに、エイリアス IP アドレス範囲を使用して Pod 間のトラフィックをルーティングします。常に VPC ネイティブ クラスタを使用します。
ノードへのネットワーク アクセスを制限する: プライベート ノードを使用して、ノードとパブリック インターネット間のトラフィックをデフォルトで防止します。公開する必要がある推論エンドポイントには、エンドポイントとインターネットの間に Google Cloud Armor などのマネージド サービスが必要です。
デフォルトでクラスタ内トラフィックを拒否する: Kubernetes NetworkPolicy を使用して、Pod 間、Namespace 間、インターネットへの下り(外向き)トラフィックを拒否します。特定のアクセスを必要とするアプリケーションに対してのみネットワーク トラフィックを許可します。
インターネット エンドポイントにエッジ保護を追加する: Google Cloud Armor を使用して、レート制限、DDoS 保護、位置情報ベースのアクセス制御、レイヤ 7 攻撃の緩和を実装することで、インターネットに公開されている推論エンドポイントを保護できます。一般公開されている AI API がある場合は、Cloud Armor を使用して、攻撃がコンピューティング インフラストラクチャに到達する前に、大容量攻撃とアプリケーション レイヤ攻撃を処理します。Cloud Armor とプライベート ノードを組み合わせて、推論エンドポイントのセキュリティを最適化します。
攻撃中のデータ引き出しを防止する: VPC Service Controls を使用して、 Google Cloud リソースの周囲にセキュリティ境界を作成します。認証情報が侵害された場合でも、攻撃者が境界外にデータを持ち出すことはできません。規制対象ワークロードに VPC Service Controls を使用します。
ID とアクセスを管理する
ユーザーを識別し、クラスタとワークロードへのアクセスを制御するには、次の認可メカニズムを使用します。
Google Cloud リソースへのアクセスを制御する: Google CloudIdentity and Access Management(IAM)アクセス ポリシーを使用して、GKE クラスタとノードを操作できるプリンシパルを制御します。
クラスタ内の Kubernetes リソースへのアクセスを制御する: Kubernetes ロールベース アクセス制御(RBAC)ポリシーを使用して、各クラスタ内の Kubernetes API リソースに対してさまざまなプリンシパルが実行できる操作を制御します。
推論エンドポイントと管理インターフェースへのゼロトラスト アクセスを構成する: Chrome Enterprise Premium などのサービスを使用して、ネットワーク トポロジではなく ID とデバイスのポスチャーに基づいてユーザー アクセスを構成します。
鍵とシークレットを管理する
すべての暗号鍵と、API キーや認証情報などの機密データをクラスタの外部に保持します。これらのリソースの保存には、次のプロダクトが役立ちます。
暗号鍵を管理する: Cloud Key Management Service を使用して、すべての暗号鍵を管理します。Cloud KMS で顧客管理の暗号鍵(CMEK)を作成して、ユーザーが制御する鍵でデータを暗号化することもできます。これは、規制の多い業界でよく求められる要件です。
機密性の高いアプリケーション データを保存する: Secret Manager を使用して、アプリケーション シークレット、API キー、認証情報など、ワークロードで使用される機密データを保存します。Pod からこのデータを読み取るには、 Workload Identity Federation for GKE を使用して、特定のワークロード ID に Pod が必要とするリソースのみへのアクセス権を付与します。
サプライ チェーンのセキュリティを強化する
次の Google Cloud サービスは、ソフトウェア サプライ チェーン全体でセキュリティを強化するのに役立ちます。
- コンテナ イメージの脆弱性をスキャンする: 脆弱性スキャンがデフォルトで有効になっている Artifact Registry リポジトリにコンテナ イメージを保存します。レジストリ内のすべてのイメージで継続的な CVE 検出を有効にします。
検証済みのイメージのみが本番環境に到達できるようにする: Binary Authorization を使用して、デプロイ時にコンテナ イメージの署名のポリシーベースの認可を適用します。証明されたイメージのみが本番環境に到達します。
セキュリティ検出とポスチャー管理を構成する: Security Command Center を使用して、構成が誤っている Gemini Enterprise Agent Platform エンドポイントや公開されているトレーニング データバケットなど、AI 固有の脅威検出とポスチャー管理の検出結果を表示します。Security Command Center は、これらの AI の検出結果を Artifact Registry の脆弱性および IAM 分析と統合して、フリートの包括的なビューを提供します。
AI アーティファクトを追跡する:
k8s-aibomなどの Kubernetes AI ワークロード用に構築された部品表ツールを使用して、モデル、データセット、フレームワークの包括的なインベントリを生成します。
モデルレイヤのセキュリティを強化する
トレーニングまたはファインチューニングしたモデルを実行する場合や、構成したオープンソース モデルを実行する場合は、モデルのセキュリティを強化するためにさまざまな制御を構成する必要があります。サードパーティ プロバイダのマネージド モデルを実行している場合、このレイヤは適用されません。以降のセクションでは、モデルの完全性、機密性、セキュリティを向上させる方法について説明します。
モデルの完全性を改善する
モデルの完全性を高めて、推論エンドポイントでモデルにアクセスできるようになる前に、改ざんの証拠を見つけられるようにします。次のガイドラインは、モデルの完全性を高めるのに役立ちます。
- モデル アーティファクトに署名する: 重みをレジストリに公開する前に、モデルの重みに暗号署名します。モデルをデプロイするときに、Binary Authorization 証明書を使用して署名を確認します。モデル アーティファクトの署名と検証を行うと、モデルが保存中または転送中に改ざんされたかどうかを特定し、本番環境モデルの検証可能なカストディ チェーンを取得できます。
- トレーニング後の変更を検出する: オープンソースの Activation Model Scanner(AMS)は、モデルのアクティベーション シグネチャをベースラインと比較することで、トレーニング後に変更されたモデル(バックドア、重み摂動、不正なファインチューニングの追加など)を検出します。モデルを本番環境レジストリに公開する前に、CI/CD パイプラインの一部として AMS などのスキャナを実行します。価値の高いモデルや規制対象のモデルについては、本番環境のアーティファクトに対して定期的な AMS スキャンをスケジュールして、最初の公開後に発生した改ざんを検出します。
モデルの機密性を保護する
独自のファインチューニング、規制対象データでトレーニングされたモデル、競合他社の知的財産など、機密性の高いモデルの重みがある場合は、次のガイドラインに沿って重みを保護します。
保存時に重みを暗号化する: 制限付き IAM アクセスを使用して、Cloud Storage バケットなどの暗号化されたオブジェクト ストレージに重みを保存します。Cloud Storage は、デフォルトで保存時に顧客コンテンツを暗号化します。必要に応じて、CMEK を使用して、ユーザーが制御する鍵でデータを暗号化できます。これは、規制が適用される業界でよく求められる要件です。詳細については、Cloud Storage のドキュメントのデータ暗号化オプションをご覧ください。
使用中の重みを保護する: Confidential GKE Node でモデルを実行して、推論中に重みがメモリ内で暗号化されるようにします。Confidential GKE Node は、ハイパーバイザー レベルの侵害やインフラストラクチャ オペレーターによる不正アクセスから知的財産を保護するのに役立ちます。Confidential GKE Node は、アプリケーション レベルの不正使用や、ノードレベルのアクセス権を持つ承認済みユーザーから保護しません。
重みへのすべてのアクセスを制御する: モデル アーティファクトへのすべてのアクセスをストレージに記録します。IAM アクセス ポリシーを使用して、アクセスが必要なことが文書化されている特定のサービス アカウントとユーザーへのアクセスを制限します。Kubernetes RBAC ポリシーと Chrome Enterprise Premium を使用して、コンテナへのシェル アクセス、ノード VM への SSH アクセス、ノードレベルのデバッグなど、クラスタへの管理者アクセスを厳密に制限します。これらの対策は、Confidential GKE Node では保護されないノードレベルのアクセス権を持つユーザーからモデルの重みを保護するのに役立ちます。
モデルの安全性プロパティを改善する
トレーニング中にモデルのさまざまな安全性設定を実装できます。独自のモデルをトレーニングまたはファインチューニングする場合は、モデルのユースケースに関連する安全性トレーニングに投資します。モデルの安全性プロパティには、拒否動作、アライメント トレーニング、ジェイルブレイクに対する耐性などがあります。事前トレーニング済みモデルを使用する場合は、アプリケーションの要件に一致する安全性のプロパティを持つモデルを選択します。
アプリケーション デベロッパーとオペレーターは、モデルでカバーできない領域のセキュリティを強化するために、アプリケーション レイヤでさまざまな制御を実装できます。
アプリケーション レイヤのセキュリティを強化する
アプリケーション レイヤでは、オペレーターとデベロッパーが AI 固有のセキュリティ構成を最も細かく制御できます。アプリケーション レイヤでは、データを保護し、整形式のリクエストを作成し、プロンプトとレスポンスを保護するセキュリティ管理を実装できます。通常、これらのコントロールは、ユーザーのプロンプト、セッション、レスポンスを処理する推論ワークロードに役立ちます。以降のセクションでは、アプリケーション レイヤで特定のセキュリティ目標を達成するのに役立つさまざまな制御、プロダクト、サービスについて説明します。
コンテンツ レイヤの脅威から保護する
プロンプト インジェクション、機密データの漏洩、有害なコンテンツなどのセキュリティの問題について、すべてのプロンプトと回答を検査します。GKE ノードはコンテンツにアクセスできないように設計されているため、アプリケーションと推論エンドポイントの間に Model Armor をデプロイします。Model Armor には、スキャン中のデータのプライバシーを強化するように設計された特定のデータ処理と保存の原則があります。
システム プロンプトを保護する
プロンプト漏洩の出力をフィルタし、Model Armor のデータ流出検出を構成して抽出パターンをキャッチします。機密性の高い指示については、ユーザーにテキストを返さない呼び出しで指示を処理します。
セッションとルーティングを管理する
推論エンドポイントをエンドユーザーに公開する場合は、 GKE Inference Gateway を使用します。Inference Gateway は、AI 推論ワークロードに固有の指標とデータに基づいてトラフィックを転送するように Gateway API を拡張します。ワークロードを自動スケーリングして需要を満たし、Model Armor や Apigee と統合して、コンテンツ フィルタリング、セッション レベルのオブザーバビリティ、割り当ての適用を行うことができます。
AI エージェントのセキュリティを強化する
AI ワークロードがエージェントの場合、次のようなアプリケーション レイヤの追加の制御が必要です。
- Google Cloud API へのアクセスを制限する: Workload Identity Federation for GKE と IAM アクセス ポリシーを使用して、エージェント ワークロード Pod がアクセスできる API を制限します。エージェントごとに専用の Kubernetes ServiceAccount を使用し、そのプリンシパルにワークロードに必要な IAM 権限のみを付与します。
- サンドボックスでコード実行または信頼できないツールを実行する: Agent Sandbox を使用して、生成されたコードを実行するエージェントや、サンドボックス環境で未検証のサードパーティ ツールとやり取りするエージェントを実行します。Agent Sandbox は、GKE Sandbox や Kata Containers などの分離メカニズムを使用して、コンテナ エスケープから保護します。
オブザーバビリティとインシデント対応を構成する
ログを収集し、さまざまな指標をモニタリングして、潜在的な攻撃を早期に特定し、エクスプロイトの影響を制限します。以降のセクションでは、検出と対応の改善に役立つガイドラインについて説明します。
ログと指標を収集する
脅威をできるだけ早く特定するには、次のオブザーバビリティのベスト プラクティスをできるだけ多く実装します。
- GKE ログを収集します。
- KMS 鍵の使用などの機密性の高いオペレーションのデータアクセス監査ログを有効にします。
- ポリシーで明示的に許可されている場合を除き、プロンプトや補完のコンテンツをログに記録しないでください。マルチモーダル プロンプトとレスポンスのデータを収集する(プレビュー)場合は、セキュリティ ポリシーに基づいて、保存されたデータを削除するか、アクセスを制限します。
- SRE にとって重要な指標を収集します。
- 特定のタイプの AI モデルサーバーに対してアプリケーションの自動モニタリングを構成します。
- Cloud Logging または独自のセキュリティ情報およびイベント管理(SIEM)プラットフォームでログを集計します。
- ログベースの指標を使用して、ログの内容に基づいて指標を作成します。
AI 固有の脅威を検出する
Logging と Cloud Monitoring でアラートを設定して、さまざまな AI 固有の脅威を検出します。設定する特定のアラート ポリシーは、収集するログの種類と組織の要件によって異なります。使用可能なアラート ポリシーの詳細については、アラート オプションの比較をご覧ください。次のような AI 固有の脅威に対するアラートを構成します。
| AI 固有の脅威とシグナル | |
|---|---|
| プロンプト インジェクション | プロンプトのサニタイズまたは拒否に関する Model Armor のログ |
| システム プロンプトの抽出 | Model Armor とキャッシュ ヒットの異常 |
| 機密データ漏洩 | Model Armor レスポンスログ |
| 推論費用の不正使用 | Inference Gateway 指標のセッション レベルのトークン使用量 |
| セッションの操作 | 推論 Gateway 指標から取得したテナントあたりの新規セッションの速度 |
| モデルのフィンガープリンティング | 機能のプロービング パターン |
| タイミング サイドチャネル | アーキテクチャによる緩和策(キャッシュのパーティショニング) |
インシデント対応プロセスを確立する
さまざまなインシデントへの対応方法は、組織構造とセキュリティ要件によって異なります。次のガイドラインでは、AI ワークロードに対する特定の種類の脅威を検出した場合の対処方法について説明します。
Model Armor でのコンテンツ検出: リクエストをブロックし、イベントを記録し、レートがしきい値を超えた場合に通知するアラートを設定します。違反を繰り返したユーザーに対してレート制限を設定します。
推論検出: Inference Gateway を使用してテナントをスロットリングします。不正行為が確認されたセッションを終了します。
クロスレイヤの関連付け: Model Armor の検出とトークンの不正使用パターンは、連携した不正使用を示します。相関ルールを定義し、誤検出アラートのリスクが低い信頼度しきい値を特定します。このしきい値を超えたセッションの終了を自動化します。
デプロイ ライフサイクル全体でセキュリティを実装する
デプロイ ライフサイクル全体でセキュリティを確保するように AI デプロイを最適化します。特定のライフサイクル ステージでは、1 つ以上のレイヤを保護する制御を実装します。以降のセクションでは、ライフサイクルの各ステージのガイドラインについて説明します。
インフラストラクチャをデプロイする
AI ワークロードを実行するインフラストラクチャを作成または設計する場合は、次のコントロールを可能な限り多く実装します。
| カテゴリ | |
|---|---|
| GKE ノード |
|
| ネットワーキング |
|
| ID とアクセスの管理 |
|
| 機密データの管理 |
|
| オブザーバビリティ |
|
ワークロードとインフラストラクチャを運用する
AI ワークロードをデプロイして本番環境システムを実行する場合は、次の制御を可能な限り多く実装します。
| カテゴリ | |
|---|---|
| ワークロード セキュリティ |
|
| ネットワーキング |
|
| 機密データを保護 | CMEK を使用して、規制対象の環境で独自の鍵を使用してデータを暗号化します。 |
| オブザーバビリティ |
|
大規模なデプロイを管理する
組織の規模が拡大するにつれて、次のコントロールを実装してセキュリティ管理を自動化します。
- 組織のポリシー サービスを使用して、組織レベルのガードレールを構成します。
- Kubernetes アドミッション Webhook を使用して、アドミッション時のポリシーを適用します。
- 信頼性の高い検出に対する初回対応を自動化します。
- レイヤ間の SIEM 関連付けとテナントごとの動作ベースラインを確立します。
ベスト プラクティスの概要
次の表に、このドキュメントで推奨するベスト プラクティスをまとめます。
| トピック | |
|---|---|
| インフラストラクチャ レイヤのセキュリティを強化する | GKE ノードの保護、ネットワーク制御の実装、ID とアクセスの管理、鍵とシークレットの管理、サプライ チェーンのセキュリティの強化。 |
| モデルレイヤのセキュリティを強化する | モデルの完全性を向上させ、モデルの機密性を保護し、モデルの安全性を向上させます。 |
| アプリケーション レイヤのセキュリティを強化する | コンテンツレイヤの脅威から防御し、システム プロンプトを保護し、セッションとルーティングを管理し、AI エージェントのセキュリティを強化します。 |
| オブザーバビリティとインシデント対応を構成する | ログと指標を収集し、AI 固有の脅威を検出し、インシデント対応プロセスを確立します。 |
| デプロイ ライフサイクル全体でセキュリティを実装する | インフラストラクチャのデプロイ、ワークロードとインフラストラクチャの運用、デプロイの大規模な制御。 |