監査ログから VPC Service Controls のエラーを取得する

このページでは、Cloud Logging を使用して VPC Service Controls のエラーを見つける方法について説明します。

VPC Service Controls は、マルチテナント Google Cloud サービスを分離することで、データ引き出しのリスクを軽減します。詳細については、VPC Service Controls の概要をご覧ください。

エラーの原因が VPC Service Controls かどうか判断する

VPC Service Controls は Google Cloud のプロパティを変更できます。この変更はサービス間で連鎖的に影響します。これにより、問題のデバッグが難しくなる場合があります。何を探せばよいのかわからない場合は特に難しくなります。

サービス境界の変更が反映されて有効になるまでには 30 分ほどかかる場合があります。変更が伝播されると、明示的に認証されない限り、境界で制限されたサービスに境界を越えてアクセスすることはできません。

VPC Service Controls に起因するエラーかどうかを特定するには、VPC Service Controls が有効で、使用するプロジェクトとサービスに適用されているかどうかを確認します。プロジェクトとサービスが VPC Service Controls で保護されているかどうかを確認するには、そのリソース階層レベルで VPC Service Controls ポリシーを確認します。

たとえば、サービス境界内のプロジェクトで VPC Service Controls が制限付きサービスに設定しているサービスを間接的に使用するシナリオを考えてみましょう。この場合、VPC Service Controls がアクセスを拒否する可能性があります。

通常、サービスは依存関係に従ってエラー メッセージを伝播します。次のいずれかのエラーが発生した場合は、VPC Service Controls に問題があります。

  • Cloud Storage: 403: Request violates VPC Service Controls.

  • BigQuery: 403: VPC Service Controls: Request is prohibited by organization's policy.

  • その他のサービス: 403: Request is prohibited by organization's policy.

エラーの一意の ID を使用する

Google Cloud コンソールとは異なり、gcloud コマンドライン ツールは VPC Service Controls のエラーに対して一意の ID を返します。他のエラーのログエントリを見つけるには、メタデータを使用してログをフィルタします。

VPC Service Controls によって生成されるエラーには、関連する監査ログを識別するために使用される一意の ID が含まれます。

一意の ID を使用してエラーに関する情報を取得するには、次の操作を行います。

  1. Google Cloud コンソールで、エラーの原因と考えられるサービス境界内のプロジェクトの [Cloud Logging] ページに移動します。

    Cloud Logging に移動

  2. 検索フィルタ ボックスに、エラーの一意の ID を入力します。

関連するログエントリが表示されます。

メタデータを使用してログをフィルタする

ログ エクスプローラを使用して、VPC Service Controls に関連するエラーを見つけることができます。Logging のクエリ言語を使用してログを取得できます。クエリの作成方法については、Logging のクエリ言語を使用したクエリの作成をご覧ください。

コンソール

過去 24 時間に発生した VPC Service Controls のエラーを Logging で探すには、以下の操作を行います。

  1. Google Cloud コンソールで、[Cloud Logging] ページに移動します。

    Cloud Logging に移動

  2. 現在のプロジェクトがサービス境界内にあることを確認します。

  3. 検索フィルタ フィールドに、次のように入力します。

    protoPayload.metadata.@type:"type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"
    
  4. [リソース] メニューで、[監査対象リソース] を選択します。

  5. 時間範囲セレクタ メニューで [過去 24 時間] を選択します。

  6. 省略可: 別の期間に発生した VPC Service Controls のエラーを探すには、[期間セレクタ] メニューを使用します。

gcloud

  • 過去 24 時間の VPC Service Controls のエラーを確認するには:

    gcloud logging read 'protoPayload.metadata.@type:"type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"'
    

    デフォルトでは、read コマンドは過去 24 時間に制限されています。別の期間の VPC Service Controls のログを取得するには、次のいずれかのコマンドを使用します。

  • 現在の日付から特定の期間内に生成されたログを取得するには、次のコマンドを実行します。

    gcloud logging read \
    'protoPayload.metadata.@type:"type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"' \
      --freshness=DURATION
    

    DURATION は書式付きの期間です。書式の詳細については、gcloud CLI の相対期間と時刻形式をご覧ください。

  • 過去 1 週間に発生したすべての VPC Service Controls エラーを取得するには、次のコマンドを実行します。

    gcloud logging read \
    'protoPayload.metadata.@type:"type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"' \
      --freshness=7d
    
  • 特定の日付と日付の間に生成されたログを取得するには、次のコマンドを実行します。

    gcloud logging read \
    'protoPayload.metadata.@type:"type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata" AND
    timestamp>="START_DATETIME" AND
    timestamp<="END_DATETIME"'
    

    START_DATETIMEEND_DATETIME は、書式付きの日付 / 時刻文字列です。書式の詳細については、gcloud CLI の絶対日付と時刻形式をご覧ください。

    たとえば、2019 年 3 月 22 日から 2019 年 3 月 26 日までに発生したすべての VPC Service Controls エラーを取得するには、次のように入力します。

    gcloud logging read \
    'protoPayload.metadata.@type:"type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata" AND
      timestamp>="2019-03-22T23:59:59Z" AND
      timestamp<="2019-03-26T00:00:00Z"'
    

次のステップ