gcloud MCPでGCPインフラ自動監査を実装する

gcloud MCPでGCPインフラ自動監査を実装する

AIエージェントとgcloud MCPを活用して、GCPインフラのセキュリティ脆弱性と構成問題を自動的に検出・改善する方法を紹介します。

概要

クラウドインフラ管理は、時間が経つにつれて複雑化していきます。数十のサービス、数百のリソース、そして絶えず変化する構成。インフラ管理者は毎日、セキュリティ脆弱性、コスト浪費、構成エラーと戦わなければなりません。しかし、手動点検は時間がかかり、重要な問題を見逃しがちです。

この問題を解決するため、gcloud MCP(Model Context Protocol)とAIエージェントを活用した自動化インフラ監査システムを構築しました。並列エージェントアーキテクチャにより、16のGCPサービスを同時に分析し、セキュリティリスク、コスト最適化の機会、運用上の問題点を自動的に特定します。

問題の背景

インフラ管理者の課題

一般的な本番環境でインフラ管理者が直面する問題:

  • サービスの拡散:Cloud Run、Cloud Functions、App Engine、Compute Engineなど多様なコンピュートサービスが混在
  • セキュリティの死角:環境変数に露出したAPIキー、過度に開放されたファイアウォールルール
  • コスト漏れ:未使用のリソース、過剰プロビジョニングされたインスタンス
  • 技術的負債:サポート終了したOS、非推奨のランタイムバージョン

従来のアプローチは、各サービスを個別に点検することです。しかし、これには以下の限界があります:

# 従来の方式:サービスごとの順次点検
gcloud compute instances list
gcloud run services list
gcloud functions list
gcloud sql instances list
# ... 数十のコマンドを手動で実行

この方法でインフラ全体を点検するには、数時間、場合によっては数日かかることがあります。

既存ツールの限界

Google CloudのSecurity Command CenterやCloud Asset Inventoryも優れたツールです。しかし:

  • 静的なルールベースの検出に依存
  • サービス間の関連性分析が限定的
  • ビジネスコンテキストを考慮した優先順位判断が困難
  • 即座の修正措置の提案が不足

解決アプローチ

gcloud MCPの紹介

MCP(Model Context Protocol)は、AIモデルが外部ツールと対話できるようにするプロトコルです。gcloud MCPはGoogle Cloud CLIをMCPサーバーとしてラップし、AIエージェントがGCPリソースを直接照会・管理できるようにします。

主な利点:

  1. 自然言語インターフェース:複雑なgcloudコマンドの代わりに自然言語で照会
  2. コンテキスト認識:AIがリソース間の関係を理解して分析
  3. 自動化レポート:構造化された分析結果と改善推奨事項を生成

並列エージェントアーキテクチャ

単一エージェントで全サービスを順次点検する代わりに、並列サブエージェントパターンを適用しました:

flowchart TB
    subgraph Orchestration["オーケストレーションレイヤー"]
        Main["メインオーケストレーター"]
    end

    subgraph Agents["並列分析エージェント"]
        A1["Agent 1<br/>Compute Engine"]
        A2["Agent 2<br/>Cloud Run"]
        A3["Agent 3<br/>Cloud Functions"]
        A4["..."]
        A16["Agent 16<br/>Secret Manager"]
    end

    subgraph Analysis["分析レイヤー"]
        Expert["インフラ専門家<br/>エージェント"]
    end

    subgraph Output["出力"]
        Report["最終レポート"]
    end

    Main --> A1 & A2 & A3 & A4 & A16
    A1 & A2 & A3 & A4 & A16 --> Expert
    Expert --> Report

各サブエージェントは独立して特定のサービスを分析します:

エージェント担当サービス分析項目
Agent 1Compute EngineVM状態、OSバージョン、スナップショット
Agent 2Cloud Runサービス構成、環境変数、スケーリング
Agent 3Cloud Functionsランタイム、トリガー、シークレット
Agent 4Cloud SQLDBバージョン、バックアップ、セキュリティ
Agent 16App Engineバージョン管理、ドメイン、リソース

実装手順

ステップ1:gcloud MCPのセットアップ

まず、gcloud MCPサーバーを設定します。Claude Desktopやその他のMCP対応クライアントで使用できます:

{
  "mcpServers": {
    "gcloud": {
      "command": "npx",
      "args": ["-y", "@anthropics/gcloud-mcp"],
      "env": {
        "GOOGLE_APPLICATION_CREDENTIALS": "/path/to/credentials.json"
      }
    }
  }
}

ステップ2:サービス別分析エージェントの定義

各GCPサービスに対して専門化された分析プロンプトを作成します:

# Compute Engine分析エージェント

## 目標
プロジェクト内の全Compute Engineリソースを分析し、セキュリティと運用上の問題点を特定する。

## 分析項目
1. VMインスタンス一覧と状態
2. マシンタイプとリソース割り当て
3. OSイメージバージョン(サポート終了状況)
4. ディスクとスナップショット構成
5. ネットワークインターフェースとファイアウォールルール
6. メタデータ(SSHキー、起動スクリプトなど)

## 出力形式
- リソース要約テーブル
- 発見された問題のリスト(重大度別)
- 推奨アクション

ステップ3:並列実行オーケストレーション

メインオーケストレーターが全サブエージェントを同時に実行します:

# 概念的なコード例
async def run_infrastructure_audit():
    agents = [
        Agent("compute-engine", compute_prompt),
        Agent("cloud-run", cloud_run_prompt),
        Agent("cloud-functions", functions_prompt),
        # ... 16エージェント
    ]

    # 並列実行
    results = await asyncio.gather(*[
        agent.analyze() for agent in agents
    ])

    # 結果集約
    return aggregate_results(results)

ステップ4:結果集約とレポート生成

インフラ専門家エージェントが全結果を総合し、優先順位付けされたレポートを生成します:

# リスク評価基準

## 重大(即時対応必要)
- インターネットに露出した認証情報
- 全開放のファイアウォールルール
- サポート終了したOS

## 高(1週間以内に対応)
- 環境変数のAPIキー
- 削除保護未設定
- バックアップなしのデータベース

## 中(1ヶ月以内に対応)
- 非推奨のランタイムバージョン
- 未使用のリソース
- ラベリング不十分

実例

実際の分析結果サンプル

並列エージェントシステムを実行すると、以下のような形式のレポートが生成されます:

インフラ概要

カテゴリサービスリソース数状態
コンピュートCompute Engine VM1注意が必要
コンピュートCloud Runサービス23セキュリティ点検必要
コンピュートCloud Functions54ランタイムアップグレード必要
データベースCloud SQL21つ非アクティブ
ストレージCloud Storage2715件セキュリティ設定不足
ネットワークVPC2ファイアウォール点検必要

発見された主要な問題点

セキュリティ脆弱性(重大)

  1. 環境変数に露出したAPIキー

    • 場所:複数のCloud Run/Functionsサービス
    • リスク:認証情報漏洩時のサービス悪用
    • 対応:Secret Managerへ即座に移行
  2. RDPポート全開放

    • 場所:default VPCファイアウォールルール
    • リスク:ブルートフォース攻撃への露出
    • 対応:特定IP範囲に制限
  3. サポート終了OS

    • 場所:cdp-sftp-prod VM(CentOS 7)
    • リスク:セキュリティパッチなし
    • 対応:Rocky LinuxまたはUbuntu LTSへ移行

コスト最適化の機会

  1. 停止中のMySQLインスタンス:ストレージコストのみ発生中
  2. 80以上のApp Engineバージョン:未使用バージョンのクリーンアップ必要
  3. 空のBigQueryデータセット:10データセット削除可能

自動生成されたMermaidダイアグラム

システムはインフラ構造を視覚化するMermaidダイアグラムも自動生成します:

graph TB
    subgraph Internet
        User[ユーザー]
    end

    subgraph GCP["Google Cloud Platform"]
        subgraph Compute["コンピュートサービス"]
            AE[App Engine]
            CR[Cloud Run x23]
            CF[Cloud Functions x54]
            VM[Compute Engine]
        end

        subgraph Data["データサービス"]
            SQL[(Cloud SQL)]
            BQ[(BigQuery)]
            FS[(Firestore)]
            GCS[(Cloud Storage)]
        end

        subgraph Messaging["メッセージング"]
            PS[Pub/Sub]
            SCH[Cloud Scheduler]
        end
    end

    User --> AE
    AE --> SQL
    CR --> SQL
    CF --> PS
    PS --> CR
    SCH --> CF

定期スキャンの自動化

定期監査の必要性

インフラは毎日変化します。新しいサービスがデプロイされ、構成が変更され、新たな脆弱性が発見されます。一度きりの監査では十分ではありません。

Cloud Schedulerによる自動化

定期的なインフラ監査を自動化できます:

# 週次インフラ監査スケジュール
schedule: "0 9 * * 1"  # 毎週月曜日午前9時
target:
  type: cloud-function
  function: infrastructure-audit-trigger
notification:
  - email: infra-team@company.com
  - slack: #infra-alerts

変更追跡とトレンド分析

定期スキャン結果を保存することで:

  • セキュリティ状態の時系列変化を追跡
  • 新たに発生した問題と解決済みの問題を特定
  • インフラ成長トレンドを分析
  • コンプライアンス監査履歴を維持

即座の改善措置

gcloud MCPのもう一つの強みは、発見された問題を即座に修正できることです。

例:Secret Manager移行

環境変数に露出したAPIキーをSecret Managerに移行:

# 1. シークレット作成
gcloud secrets create openai-api-key --replication-policy="automatic"

# 2. シークレット値設定
echo -n "sk-xxx..." | gcloud secrets versions add openai-api-key --data-file=-

# 3. Cloud Runサービス更新
gcloud run services update my-service \
  --update-secrets=OPENAI_API_KEY=openai-api-key:latest

AIエージェントはこれらの修正コマンドを自動生成し、承認後に実行できます。

例:ファイアウォールルールの強化

# 危険なRDPルールを削除
gcloud compute firewall-rules delete allow-rdp-all

# 特定IPのみを許可する新しいルールを作成
gcloud compute firewall-rules create allow-rdp-office \
  --allow tcp:3389 \
  --source-ranges="203.0.113.0/24" \
  --target-tags="windows-server"

まとめ

gcloud MCPと並列エージェントアーキテクチャを組み合わせることで:

  • 時間節約:手動で数日かかった監査を数分で完了
  • 一貫性:同じ基準で繰り返し可能な点検
  • 包括性:サービス間の関連性まで分析
  • 即座の対応:発見された問題に対する修正コマンドを自動生成

インフラ管理者は繰り返しの点検作業から解放され、より重要なアーキテクチャ決定や戦略的業務に集中できます。

次のステップ

  1. gcloud MCPのインストールGitHubリポジトリから開始
  2. 分析エージェントのカスタマイズ:組織のセキュリティポリシーとコンプライアンス要件に合わせて調整
  3. 定期スキャンの設定:Cloud Schedulerで週次/月次自動監査を構成
  4. 通知の統合:Slack、Email、PagerDutyと連携して即座に対応

クラウドインフラ管理の新しいパラダイム、AIエージェントと共に始めましょう。

他の言語で読む

この記事は役に立ちましたか?

より良いコンテンツを作成するための力になります。コーヒー一杯で応援してください!☕

著者について

JK

Kim Jangwook

AI/LLM専門フルスタック開発者

10年以上のWeb開発経験を活かし、AIエージェントシステム、LLMアプリケーション、自動化ソリューションを構築しています。Claude Code、MCP、RAGシステムの実践的な知見を共有します。