Cloud Logging で VPC Service Controls のエラーログを確実に探す方法

Google Cloud のVPC Service Controls(VPCSC)エラーログをCloud Loggingで効率的に見つける方法を解説。構造化ログの理解と実践的なフィルタ条件を紹介します。

「VPC Service Controls のエラーログ、なかなか見つからない…」

Google Cloud を使っている多くの方が、一度はそう感じたことがあるのではないでしょうか。ただ VPC Service Controls と文字列検索しても、UI上には表示されるのに、フィルタにはヒットしないことがよくあります。

この記事では、Cloud Logging のフィルタ機能を使って、VPC Service Controls (VPCSC) のエラーログを確実に、そして効率的に見つけ出すための方法を解説します。

なぜシンプルなフィルタでは不十分なのか?

Cloud Logging の検索窓に “VPC Service Controls” と入力してもログが見つからないのは、ログの表示方法と実際のデータ構造が異なるためです。

ログの表示と実際のデータ構造の違い

Cloud Logging の UI 上で表示される「VPC Service Controls」というテキストは、ログエントリの**構造化されたデータ(JSON)**の中から抽出されたり、UI独自のラベルとして表示されていることがほとんどです。そのため、単純な文字列検索では目的のフィールドにたどり着けないのです。

VPC SC エラーログの特徴

VPC Service Controls のエラーログは、以下の特徴を持っています:

1. 特定のログタイプに分類される

1
cloudaudit.googleapis.com/policy

のような、ポリシー監査ログに分類されることが多いです。

2. 構造化されたエラー情報

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
{
  "protoPayload": {
    "metadata": {
      "@type": "type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"
    },
    "status": {
      "code": 7,
      "message": "Request is prohibited by organization's policy. vpcServiceControlsUniqueIdentifier: ...",
      "details": [
        {
          "violations": [
            {
              "type": "VPC_SERVICE_CONTROLS"
            }
          ]
        }
      ]
    }
  }
}

このような構造の中に、エラーの理由や詳細が格納されています。

効果的なフィルタ条件:3つのレシピ

ログの構造を理解すれば、あとは適切なフィールドを指定するだけです。以下に、VPC SC エラーを抽出するための3つの強力なフィルタ条件をご紹介します。

レシピ 1:メタデータタイプでフィルタする(最も正確)

VPC SC の監査ログには、固有のメタデータタイプが設定されています。これを直接指定することで、最も正確にログを絞り込めます。

1
protoPayload.metadata.@type="type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"

使用場面: VPC SC 関連のすべてのログを確実に抽出したい場合

メリット:

  • 最も正確性が高い
  • 偽陽性(関係ないログ)が最も少ない
  • VPC SC の設定変更履歴なども含めて検索可能

レシピ 2:違反タイプでフィルタする

VPC SC のエラーログには、violations(違反)というフィールドが含まれており、その中に違反タイプが明記されています。

1
protoPayload.status.details.violations.type="VPC_SERVICE_CONTROLS"

使用場面: アクセス拒否など、実際の違反ログのみを見たい場合

メリット:

  • エラーログに特化した検索が可能
  • 違反の詳細情報も同時に取得できる
  • トラブルシューティングに最適

レシピ 3:ステータスメッセージでフィルタする

VPC SC によるアクセス拒否エラーのメッセージには、vpcServiceControlsUniqueIdentifier という文字列が含まれていることが多いです。

1
protoPayload.status.message:"vpcServiceControlsUniqueIdentifier"

使用場面: エラーメッセージから問題を特定したい場合

メリット:

  • 人間が読みやすいエラーメッセージとともに検索
  • ユニーク識別子でサポートケースとの照合が容易
  • 具体的なエラー内容が把握しやすい

実践的な組み合わせフィルタ

基本的な組み合わせ

上記のいずれか1つのレシピに加え、以下の条件を追加することで、より確実に目的のログにたどり着けます。

エラーログに限定

1
severity=ERROR

エラーログに限定することで、無駄なログを排除できます。

ログタイプを指定

1
logName="projects/YOUR_PROJECT_ID/logs/cloudaudit.googleapis.com%2Fpolicy"

VPC SC のログは、ポリシー監査ログに分類されることが多いため、このログ名で検索すると効率的です。(YOUR_PROJECT_ID はご自身のプロジェクトIDに置き換えてください)

完全なフィルタ例

パターン1: 包括的なVPC SCログ検索

1
2
3
severity=ERROR
logName="projects/YOUR_PROJECT_ID/logs/cloudaudit.googleapis.com%2Fpolicy"
protoPayload.metadata.@type="type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"

パターン2: アクセス拒否エラーに特化

1
2
3
severity=ERROR
protoPayload.status.details.violations.type="VPC_SERVICE_CONTROLS"
timestamp>="2025-09-13T00:00:00Z"

パターン3: 特定のサービスに関連するエラー

1
2
3
protoPayload.status.message:"vpcServiceControlsUniqueIdentifier"
protoPayload.serviceName="storage.googleapis.com"
severity=ERROR

ログ分析のベストプラクティス

1. 時間範囲の指定

大量のログがある環境では、時間範囲を適切に指定することが重要です:

1
2
timestamp>="2025-09-13T00:00:00Z"
timestamp<="2025-09-13T23:59:59Z"

2. 複数条件の組み合わせ

AND条件とOR条件を適切に使い分けます:

1
2
3
(protoPayload.metadata.@type="type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata" 
OR protoPayload.status.details.violations.type="VPC_SERVICE_CONTROLS")
AND severity=ERROR

3. 結果の並び替えとエクスポート

検索結果は時系列順に並び替えて分析し、必要に応じてエクスポートします:

  • CSV形式: スプレッドシートでの分析用
  • JSON形式: プログラムによる後続処理用
  • BigQuery: 大規模なログ分析用

トラブルシューティング時の活用方法

1. インシデント対応での使用

1
2
3
4
# 直近1時間のVPC SCエラー
timestamp>="2025-09-13T21:00:00Z"
severity=ERROR
protoPayload.status.details.violations.type="VPC_SERVICE_CONTROLS"

2. 定期的な監視

1
2
3
# 特定のリソースに対するVPC SC違反
protoPayload.resourceName:"projects/PROJECT_ID/buckets/BUCKET_NAME"
protoPayload.metadata.@type="type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"

3. コンプライアンス監査

1
2
3
# 過去1ヶ月のすべてのVPC SC関連活動
timestamp>="2025-08-13T00:00:00Z"
protoPayload.metadata.@type="type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"

まとめ

VPC Service Controls のエラーログは、単なる文字列ではなく、ログの**構造(JSON)**を理解してフィルタをかけることが重要です。

フィールド 目的 使用場面
protoPayload.metadata.@type 最も正確なタイプでログを絞り込む 包括的な調査
protoPayload.status.details.violations.type 違反の種類を特定する エラー分析
protoPayload.status.message エラーメッセージ内の固有文字列を検索する トラブルシューティング

これらのフィルタを使えば、VPC SC のエラー調査が格段に効率化されるはずです。

次のステップ

  1. 自動化: 定期的なログ監視をCloud Functionsで自動化
  2. 可視化: Cloud MonitoringでVPC SCエラーのダッシュボードを作成
  3. アラート: 重要なVPC SC違反に対するアラートポリシーを設定

VPC Service Controlsは組織のセキュリティを守る重要な機能です。適切なログ分析により、セキュリティポスチャの向上と迅速な問題解決を実現できます。


関連記事:

技術ネタ、趣味や備忘録などを書いているブログです
Hugo で構築されています。
テーマ StackJimmy によって設計されています。