VPC Service Controls の修復候補を使用すると、サービス境界が原因でアクセスが拒否された原因を特定して解決できます。
VPC Service Controls によってアクセス リクエストが拒否されると、修復エンジンは違反イベントを分析し、アクション可能な狭い範囲の推奨事項を生成します。これらの提案により、必要なアクセス権を付与し、最小権限の原則を遵守できます。
修復候補の仕組み
修復の提案は、Google Cloud コンソールの違反分析ツールに直接統合されています。一意の ID またはトラブルシューティング トークンを使用してアクセス拒否の原因を特定すると、修復エンジンは違反コンテキストを評価し、違反タイプに基づいて構成の変更を提案します。
- 上り(内向き)違反: エンジンはスコープ設定された上り(内向き)ルールを提案します。該当する場合は、リクエスト コンテキストを満たす既存のアクセスレベルを選択するか(推奨)、呼び出し元を承認するための新しいコンテキストアウェア アクセスレベル(IP サブネットワーク、地理的リージョン、デバイス ポリシー要件など)を作成できます。
- 下り(外向き)違反: エンジンは、境界外の送信元 ID とターゲット リソースまたはオペレーションを指定するスコープ設定された下り(外向き)ルールを提案します。
- VPC でアクセス可能なサービスの違反: エンジンは、リクエストされたサービスを許可リストに追加するか、境界の制限を更新することを提案します。
1 回のアクセス拒否に、上り(内向き)、下り(外向き)、VPC アクセス可能サービス違反の組み合わせなど、複数の違反タイプが含まれることがあります。このような場合、修復エンジンは、該当するすべての違反に対処する提案を生成します。生成された構成の変更を確認し、ワンクリックでサービス境界に直接適用できます。
始める前に
- 修復の提案を表示して適用するために必要な権限があることを確認します。
- 解決するアクセス拒否の一意の ID またはトラブルシューティング トークンがあることを確認します。この識別子は、拒否エラー レスポンス、Cloud Audit Logs、違反ダッシュボードから取得できます。詳細については、監査ログからエラーを取得するをご覧ください。
必要なロール
修復候補を表示して適用するために必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
-
アクセス拒否イベントを診断し、修復の提案を表示する: アクセス ポリシーに対する Access Context Manager リーダー (
roles/accesscontextmanager.policyReader) -
Cloud Audit Logs からトラブルシューティング トークンを取得します。VPC Service Controls の監査ログを含むプロジェクトの ログビューア (
roles/logging.viewer) -
修復の提案を適用してサービス境界を更新する: アクセス ポリシーに対する Access Context Manager 編集者 (
roles/accesscontextmanager.editor)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
これらの事前定義ロールには、修復の提案の表示と適用に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
修復の提案を表示して適用するには、次の権限が必要です。
-
アクセス拒否イベントを診断し、修復の提案を表示します。
-
アクセス ポリシーに対する
accesscontextmanager.accessLevels.list -
アクセス ポリシーに対する
accesscontextmanager.policies.get -
アクセス ポリシーに対する
accesscontextmanager.servicePerimeters.list
-
アクセス ポリシーに対する
-
Cloud Audit Logs からトラブルシューティング トークンを取得します。
logging.logEntries.listVPC Service Controls の監査ログを含むプロジェクトで -
修復に関する提案を適用してサービス境界を更新する:
-
アクセス ポリシーに対する
accesscontextmanager.accessLevels.create -
アクセス ポリシーに対する
accesscontextmanager.accessLevels.get -
アクセス ポリシーに対する
accesscontextmanager.accessLevels.list -
アクセス ポリシーに対する
accesscontextmanager.policies.get -
アクセス ポリシーに対する
accesscontextmanager.servicePerimeters.get -
アクセス ポリシーに対する
accesscontextmanager.servicePerimeters.update
-
アクセス ポリシーに対する
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
修復の提案を表示して適用する
アクセス拒否の修復案を表示して適用する手順は次のとおりです。
Google Cloud コンソールで、[VPC Service Controls] ページに移動します。
表示された指示に従って組織を選択します。
[VPC Service Controls] ページで、[違反分析ツール] をクリックします。
[トークン(または一意の ID)のトラブルシューティング] フィールドに、アクセス拒否のトラブルシューティング トークンまたは一意の ID を入力します。
[続行] をクリックします。
トラブルシューティング結果ページの [アクセスされた保護リソース] で、アクセスを拒否した境界を選択します。
[推奨事項を確認] をクリックします。[修復の詳細] ペインが開きます。
提案された修復措置を確認します。
- 修復にアクセスレベルが必要な場合は、アクセスレベルを構成します。
- 既存のアクセスレベルを選択する(推奨): [既存のアクセスレベル] タブをクリックし、[既存のアクセスレベルを選択] リストでリクエスト コンテキストを満たすアクセスレベルを選択します。
- 新しいアクセスレベルを作成する: [新しいアクセスレベル] タブで、推奨されるアクセスレベル名、IP サブネットワーク、地理的リージョン、デバイスの制約を確認します。
- サービス境界の提案された上り(内向き)ルール、下り(外向き)ルール、または VPC アクセス可能なサービスの変更を確認します。
- 修復にアクセスレベルが必要な場合は、アクセスレベルを構成します。
提案された変更を適用するには、[修復を適用] をクリックします。
VPC Service Controls は、新しいアクセスレベル(作成する場合)を自動的にプロビジョニングし、サービス境界の構成を更新します。
違反の種類別の是正措置
次の表に、違反の種類に基づいて修復エンジンが提案するアクションを示します。
| 違反のタイプ | 推奨される修復アクション |
|---|---|
| 上り(内向き)違反 |
|
| 下り(外向き)違反 | 送信元 ID またはプロジェクト、ターゲット サービス、メソッド セレクタ、外部リソースにスコープ設定された下り(外向き)ルールを追加します。 |
| VPC のアクセス可能なサービス | 制限付きサービスを境界の VPC アクセス可能サービスの許可リストに追加します。サービスがサポートされていない場合は、制限の更新を提案します。 |
例: アクセスレベルを使用した上り(内向き)の修復
アナリスト(analyst@example.com)が外部ワークステーション(198.51.100.42)からプロジェクト 803311519563 の Cloud Storage バケットのオブジェクトを読み取ろうとしたときにアクセスが拒否されたとします。
最小権限に従ってこの拒否を修正するために、修正エンジンは次の 2 つの連鎖アクションを提案します。
アクション 1: 既存のアクセスレベルを選択するか、スコープ付きアクセスレベルを作成する
呼び出し元のワークステーションを承認するには、既存のアクセスレベルを再利用するか、新しいアクセスレベルを作成します。
- 既存のアクセスレベルを選択する(推奨): [既存のアクセスレベル] タブで、リクエスト コンテキストにすでに一致する既存のアクセスレベル(
corp_trusted_workstationsなど)を選択します。既存のアクセスレベルを再利用すると、重複するアクセスレベルの作成を回避し、ポリシー管理を簡素化できます。 - 新しいアクセスレベルを作成する: [新しいアクセスレベル] タブで、呼び出し元のワークステーションをスコープとする新しいアクセスレベルをエンジンに作成させることもできます。
- 名前:
accessPolicies/POLICY_ID/accessLevels/analyst_secure_workstation - IP サブネットワーク:
198.51.100.0/24 - リージョン:
US - デバイス ポリシー: 画面ロック、ディスク暗号化、会社所有ステータス、管理者承認を必須とします。
- 名前:
アクション 2: スコープ付き上り(内向き)ルールを境界に追加する
エンジンは、選択した既存のアクセスレベルまたは新しく作成したアクセスレベルを参照する、狭いスコープの上り(内向き)ルールをサービス境界に追加します。
- ID:
user:analyst@example.com - ソース: 選択した既存のアクセスレベル(
corp_trusted_workstationsなど)または新しいanalyst_secure_workstationアクセスレベル - サービス:
storage.googleapis.com - メソッド セレクタ:
google.storage.objects.get - リソース:
projects/803311519563
[修復を適用] をクリックすると、VPC Service Controls は選択したアクセスレベルを適用(または新しいアクセスレベルを作成)し、サービス境界を順番に更新します。
制限事項
- センシティブ データの除去:
- 編集された内部 IP アドレスを使用して、特定のアクセスレベルを生成することはできません。
- 監査ログで呼び出し元 ID が秘匿化されているか、利用できない場合、候補では
ANY_USER_ACCOUNTなどの一般的な ID が使用されることがあります。 - サービス メソッドが細かくサポートされていない場合、候補でワイルドカード(
*)が使用されることがあります。 - ネットワーク名にアクセスできない場合、候補はプロジェクト番号にフォールバックします。
- 修復の提案には、Cloud Audit Logs からのアクセス拒否の詳細が必要です。ログ保持期間(デフォルトでは 30 日)より古いイベントは分析できません。
- 修復候補は、Google Cloud コンソールの組織レベルでのみ使用できます。
- サービス パターンと特定のサードパーティの Workforce Identity プール構成は、修復エンジンでサポートされていません。
次のステップ
- 詳しくは、違反分析ツールでアクセス拒否を診断するをご覧ください。
- 違反ダッシュボードを使用してアクセス拒否をモニタリングします。
- 上り(内向き)ポリシーと下り(外向き)ポリシーの構成について学習する。
- VPC Service Controls のトラブルシューティング ガイドを読む。