このページでは、VPC Service Controls 違反アナライザを使用して、組織のサービス境界からのアクセス拒否を把握して診断する方法について説明します。
VPC Service Controls は、アクセス リクエストを拒否するとトラブルシューティング トークンを生成します。違反アナライザでは、このトラブルシューティング トークンを使用してアクセス拒否を診断できます。このトラブルシューティング トークンは、Cloud Audit Logs で確認できます。VPC Service Controls は、トラブルシューティング トークンなど、アクセス拒否イベントに関するすべての情報を Cloud Audit Logs に記録します。
違反アナライザを使用して、サービス境界のドライラン構成からのアクセス拒否を診断することもできます。
VPC Service Controls のトラブルシューティングを使用してアクセス拒否を診断する方法については、VPC Service Controls のトラブルシューティングで問題を診断するをご覧ください。
始める前に
Enable the Policy Troubleshooter API.
アクセスレベルのデバイス ポリシーを把握し、デバイス コンテキストの詳細を取得するには、デバイスの詳細を表示するために必要な権限が Google Workspace で付与されていることを確認してください。これらの権限がない場合、デバイス属性ベースの条件でアクセスレベルに関連する拒否イベントをトラブルシューティングすると、トラブルシューティングの結果が異なる可能性があります。
これらの権限を取得するには、次のいずれかの Google Workspace ロールがあることを確認してください。
デバイスと設定の管理権限を含むカスタム管理者ロール。この権限は、[サービス] > [モバイル デバイス管理] にあります。
ロールの割り当ての詳細については、特定の管理者ロールを割り当てるをご覧ください。
Google Workspace では、これらの権限がなくても違反アナライザを使用できます。ただし、前述のとおり、トラブルシューティングの結果は異なる場合があります。
必要なロール
違反アナライザの使用に必要な権限を取得するには、管理者に次の IAM ロールを付与するよう依頼してください。
-
違反アナライザを使用してアクセス拒否イベントを診断するには、組織レベルのアクセス ポリシーに対する Access Context Manager 読み取り (
roles/accesscontextmanager.policyReader
)権限が必要です。 -
Cloud Audit Logs からトラブルシューティング トークンを取得するには、VPC Service Controls の監査ログがあるプロジェクトの ログビューア (
roles/logging.viewer
)を使用します。
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
これらの事前定義ロールには、違反アナライザの使用に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
違反アナライザを使用するには、次の権限が必要です。
-
違反アナライザを使用してアクセス拒否イベントを診断するには:
-
組織レベルのアクセス ポリシーの
accesscontextmanager.accessLevels.list
-
組織レベルのアクセス ポリシーの
accesscontextmanager.policies.get
-
組織レベルのアクセス ポリシーの
accesscontextmanager.servicePerimeters.list
-
組織レベルのアクセス ポリシーの
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
アクセス拒否イベントのトラブルシューティング
VPC Service Controls がアクセス リクエストを拒否すると、VPC Service Controls は一意の ID を生成し、暗号化されたトラブルシューティング トークンを Cloud Audit Logs に記録します。Google Cloud CLI を使用すると、VPC Service Controls はエラーでアクセス拒否イベントの一意の ID を返します。アクセス拒否イベントの後、一意の ID を使用して Cloud Audit Logs でトラブルシューティング トークンを検索できます。
違反アナライザを使用してアクセス拒否イベントを診断するには、トラブルシューティング トークンが必要です。
トラブルシューティング トークンを取得する
Google Cloud コンソールで、[ログ エクスプローラ] ページに移動します。
[ログ エクスプローラ] ページで、アクセス拒否イベントが属するプロジェクト スコープを選択します。
ログフィルタを使用して、アクセス拒否イベントのログエントリを見つけます。
一意の ID を使用してログエントリを表示することもできます。一意の ID を使用して監査ログを検索して表示するには、クエリエディタ フィールドに次のクエリを入力します。
log_id("cloudaudit.googleapis.com/policy") severity=ERROR resource.type="audited_resource" protoPayload.metadata."@type"="type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata" protoPayload.metadata.vpcServiceControlsUniqueId="UNIQUE_ID"
UNIQUE_ID
は、アクセス拒否イベントの一意の ID に置き換えます。[クエリを実行] をクリックします。このクエリは、アクセス拒否イベントの VPC Service Controls 監査ログを表示します。
監査ログを開くには、[クエリ結果] ペインで展開矢印
をクリックします。ログエントリの protoPayload > metadata セクションを開きます。
ログエントリから
vpcServiceControlsTroubleshootToken
の値をコピーします。
トークンを使用したトラブルシューティング
Google Cloud コンソールで、[VPC Service Controls] ページに移動します。
プロンプトが表示されたら、組織を選択します。[VPC Service Controls] ページには組織レベルでのみアクセスできます。
[VPC Service Controls] ページで [トラブルシューティング] をクリックします。
[違反のトラブルシューティング] ページの [トークン(または一意の ID)のトラブルシューティング] フィールドに、アクセス拒否イベントのトークンを入力します。
[続行] をクリックします。
違反アナライザは、アクセス拒否イベントの監査ログを評価し、トラブルシューティングの結果を表示します。
トラブルシューティングの結果を確認する
アクセス拒否イベントのトラブルシューティングの結果を確認する前に、次の考慮事項を確認してください。
機密情報の除去
機密データを保護するため、違反アナライザはトラブルシューティングの結果で次の情報を削除します。
IP アドレス: アクセス リクエストが内部本番環境ネットワーク内のサービスから発信された場合、違反アナライザはアクセス リクエストの IP アドレスを
private
として除去します。 Google Cloudネットワーク情報: 違反アナライザは、次のシナリオを除き、アクセス リクエストのネットワーク情報を
redacted_network
として除去します。ネットワークと同じ組織に所属している場合。
ネットワーク情報を表示するために必要な権限がある場合。
プリンシパル: 違反アナライザは、次のシナリオを除き、プリンシパルのメールアドレスを
...
(例:cl...o@gm...m
)に置き換えます。アクセスが拒否されたプリンシパルと同じ組織に所属している場合。
アクセスが拒否されたプリンシパルがサービス エージェントまたはサービス アカウントの場合。
一部の Google Cloud サービスでは、本人確認情報が収集されません。たとえば、レガシー App Engine API は呼び出し元の ID を収集しません。違反アナライザがログにプリンシパル情報がないことを確認すると、トラブルシューティングの結果にプリンシパルが
no information available
として表示されます。
評価ステータス
違反アナライザは、すべての境界コンポーネントに対してアクセス拒否イベントを評価し、各コンポーネントに評価ステータスを割り当てます。
違反アナライザは、トラブルシューティングの結果に次の評価ステータスを表示することがあります。
ステータス | 説明 |
---|---|
許可 | このステータスは、境界コンポーネントが評価されたアクセス リクエストを許可していることを示します。 |
拒否 | このステータスは、境界コンポーネントが評価されたアクセス リクエストを拒否したことを示します。 |
該当なし | このステータスは、境界コンポーネントが評価されたアクセス リクエストのリソースまたはサービスを制限していないか、VPC アクセス可能なサービス機能を適用していないことを示します。 |
トラブルシューティングの結果を表示する
トラブルシューティングの結果ページには、アクセス拒否イベントの詳細な評価が表示されます。この結果には、違反アナライザにイベントの診断をリクエストした特定の時点でのイベントの評価が表示されます。トラブルシューティングの結果ページでは、評価情報がさまざまなセクションに分類されます。
アクセス拒否イベントのトラブルシューティングの結果には、次のセクションがあります。
違反の詳細
違反の評価
制限付きリソース
制限付きサービス
Ingress
下り(外向き)
VPC のアクセス可能なサービス
特定の境界コンポーネントの評価を表示するには、リストから境界コンポーネントを選択するか、境界コンポーネントの横にある
展開矢印をクリックします。たとえば、下り(外向き)ルールのトラブルシューティング評価を表示するには、下り(外向き)ルールを選択するか、下り(外向き)ルールの横にある展開矢印 をクリックします。違反の詳細
[違反の詳細] セクションには、アクセス拒否イベントに関する次の情報が一覧表示されます。
アクセス拒否イベントの時刻。
アクセスをリクエストしたプリンシパルの ID。
プリンシパルがアクセスをリクエストしたサービス。
プリンシパルがアクセスをリクエストしたサービス メソッド。
アクセスをリクエストしたプリンシパルの IP アドレス。この IP アドレスは、Cloud Audit Logs のアクセス拒否イベントのログエントリの
caller_ip
値と同じです。詳細については、監査ログ内の呼び出し元の IP アドレスをご覧ください。アクセス拒否イベントのトラブルシューティング トークン。
該当するデバイスと地域の詳細。この情報を表示するには、[詳細を表示] をクリックします。
違反の評価
[違反評価] セクションには、アクセス拒否イベントの全体的な評価が表示されます。この評価には、境界の自動適用モードとドライラン モードの両方のトラブルシューティング結果が含まれます。
VPC Service Controls がアクセス拒否イベントをログに記録した後にサービス境界またはアクセス ポリシーが変更された場合、アクセス拒否イベントのトラブルシューティングの結果は時間の経過とともに変化する可能性があります。この動作は、違反アナライザが関連するサービス境界とアクセス ポリシーから最新情報を取得して評価するためです。
結果
[結果] セクションには、関連するすべての境界に対するアクセス拒否イベントの評価が表示されます。値は Granted
、Denied
、Not applicable
のいずれかです。
アクセスされた保護対象リソース
[アクセスされた保護されたリソース] セクションには、アクセス拒否イベントに対する対応する評価ステータスとともに境界が一覧表示されます。このセクションには次の情報が表示されます。
このアクセス拒否イベントに関連するすべてのリソースのリスト:
[アクセスされたリソース] 列には、境界で保護されている関連するすべてのリソースが表示されます。
制限付きリソースを表示する十分な権限がない場合は、[アクセスされた保護されたリソース] セクションに境界名が表示されず、[アクセスされたリソース] 列に、警告アイコン付きで関連するプロジェクトが表示されます。
[アクセスされたその他のリソース] セクションには、関連する他のすべてのリソースが、次のいずれかの状態にグループ化されて一覧表示されます。
州 説明 制限なし この状態は、リソースがサービス境界で保護されていないことを示します。 情報が拒否されました この状態は、リソースを保護するサービス境界を表示するための十分な権限がないことを示します。 エラー この状態は、リソースを保護するサービス境界を表示しようとしたときに内部エラーが発生したことを示します。
リストから境界を選択すると、選択した境界に対するアクセス拒否イベントのトラブルシューティング結果を表示できます。
境界のさまざまな適用モードのトラブルシューティング結果も確認できます。デフォルトでは、トラブルシューティング結果ページに強制適用モードのトラブルシューティング結果が表示されます。ドライラン モードのトラブルシューティングの結果を表示するには、[ドライラン] をクリックします。境界の適用モードの詳細については、サービス境界の詳細と構成をご覧ください。
境界の自動適用モードとドライラン モードの構成は異なる可能性があるため、違反アナライザは、自動適用モードとドライラン モードの構成に対して異なるトラブルシューティング結果を生成できます。
制限付きリソース
デフォルトでは、[制限付きリソース] セクションには、この違反に関連し、選択した境界で保護されているリソースのみが表示されます。選択した境界で保護されている他のリソースを表示するには、[他の制限付きリソースを表示] をクリックします。
制限付きサービス
デフォルトでは、[制限付きサービス] セクションには、この違反に関連し、選択した境界で保護されているサービスのみが表示されます。選択した境界で保護されている他のサービスを表示するには、[他の制限付きサービスを表示] をクリックします。
Ingress
[上り(内向き)] セクションには、関連するすべての上り(内向き)ルールとアクセスレベルに対するアクセス拒否イベントの評価が表示されます。違反アナライザは、アクセス リクエストごとに、サービス エージェントまたはネットワークと、対応するターゲット リソースを上り(内向き)ルールとアクセスレベルと照らし合わせて評価します。
違反アナライザは、上り(内向き)ルールとアクセスレベルに基づいて上り(内向き)ルールの評価情報をグループ化して表示します。このセクションの各ルールまたはアクセスレベルをクリックすると、違反アナライザが開き、展開可能なセクションが表示されます。このセクションには、選択した上り(内向き)ルールまたはアクセスレベルに対して評価されたターゲット リソース名が表示されます。
下り(外向き)
[下り(外向き)] セクションには、関連するすべての下り(外向き)ルールに対するアクセス拒否イベントの評価が表示されます。違反アナライザは、アクセス リクエストの送信元リソースと宛先リソースのペアを下り(外向き)ルールと照合して評価します。
違反アナライザは、下り(外向き)ルールに基づいて下り(外向き)ルールの評価情報をグループ化して表示します。このセクションの各ルールをクリックすると、違反アナライザで展開可能なセクションが開き、選択した下り(外向き)ルールに対するリソースの詳細な評価が表示されます。
VPC のアクセス可能なサービス
[VPC のアクセス可能なサービス] セクションには、境界内のネットワーク エンドポイントからアクセス可能なサービスのステータスが表示されます。これらのステータスは、アクセス拒否イベントが発生した時刻に対応しています。サービスの評価ステータスが Denied
の場合、境界内のネットワーク エンドポイントからサービスにアクセスすることはできません。
詳細については、VPC のアクセス可能なサービスをご覧ください。
適用モードとドライラン モードの結果を比較する
選択した境界の適用モードとドライラン モードで、アクセス拒否イベントのトラブルシューティング結果を比較できます。トラブルシューティングの結果を比較するには、境界の強制モードのトラブルシューティング結果ページで [ドライランと比較] をクリックします。
ドライラン モードが境界の自動適用モードから構成を継承する場合、ドライラン モードは自動適用モードのトラブルシューティング結果も継承します。
制限事項
違反アナライザは組織スコープでのみ使用する必要があります。違反アナライザはプロジェクト スコープではアクセスできません。
違反アナライザは、関連するサービス境界とアクセス ポリシーから最新情報を取得して評価します。したがって、VPC Service Controls がアクセス拒否イベントをログに記録した後にサービス境界またはアクセス ポリシーが変更された場合、アクセス拒否イベントのトラブルシューティングの結果は時間の経過とともに変化する可能性があります。
- また、アクセス拒否イベントを複数回診断する場合、アクセス ポリシーが変更されていると、トラブルシューティングの結果が診断ごとに異なる場合があります。
アクセス拒否イベントのトラブルシューティングの結果は、次のシナリオで異なる場合があります。
スコープ設定されたポリシー内でアクセスレベルを定義し、サービス境界でそのアクセスレベルを使用している場合。
アクセスレベルでVPC ネットワークと内部 IP アドレスに基づく条件を定義し、サービス境界でそのアクセスレベルを使用している場合。
アクセスレベルでデバイス属性ベースの条件を定義し、サービス境界でそのアクセスレベルを使用しているにもかかわらず、デバイスの詳細を表示するために必要な権限がない場合。
サービス境界の上り(内向き)ルールまたは下り(外向き)ルールでID グループまたはサードパーティ ID が使用されている場合。
サービス境界の下り(外向き)ルールで
sources
属性が使用されている場合。アクセス リクエストにリソースが含まれていない場合。
アクセスレベルで認証情報の安全度のポリシーを構成している場合。
サービス境界の上り(内向き)ルールまたは下り(外向き)ルールで、API オペレーションの条件としてサービス権限が使用されている場合。
次のステップ
- VPC Service Controls のトラブルシューティングで問題を診断する
- アクセス拒否の理由については、VPC Service Controls によってブロックされたリクエストのデバッグをご覧ください。