このページでは、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 を使用してエラーに関する情報を取得するには、次の操作を行います。
Google Cloud コンソールで、エラーの原因と考えられるサービス境界内のプロジェクトの [Cloud Logging] ページに移動します。
検索フィルタ フィールドに、エラーの一意の ID を入力します。
関連するログエントリが表示されます。
メタデータを使用してログをフィルタする
ログ エクスプローラを使用して、VPC Service Controls に関連するエラーを見つけることができます。Logging のクエリ言語を使用してログを取得できます。クエリの作成方法については、Logging のクエリ言語を使用したクエリの作成をご覧ください。
コンソール
過去 24 時間に発生した VPC Service Controls のエラーを Logging で探すには、以下の手順に従います。
Google Cloud コンソールで、[Cloud Logging] ページに移動します。
現在のプロジェクトがサービス境界内にあることを確認します。
検索フィルタ フィールドに、次のように入力します。
protoPayload.metadata.@type:"type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"
[リソース] メニューで、[監査対象リソース] を選択します。
時間範囲セレクタ メニューで [過去 24 時間] を選択します。
省略可: 別の期間に発生した 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_DATETIME と END_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"'
次のステップ
- VPC Service Controls のトラブルシューティングで問題を診断する
- VPC Service Controls の一般的な問題のトラブルシューティングを行う
- 他の Google Cloud サービスに関連する一般的な問題のトラブルシューティングを行う