このチュートリアルでは、サービス境界を使用して Compute Engine を保護し、上り(内向き)違反のトラブルシューティングを行い、Compute Engine への承認済みアクセスを許可する方法について説明します。
VPC Service Controls を使用すると、Google マネージド サービスのリソースにサービス境界を定義して、それらのサービスとの通信やサービス間の通信を管理できます。機密性の高いリソースの周囲にゼロトラスト境界を確立し、承認済みの IP アドレス、ユーザー、デバイスへのアクセスを制限できます。この機能を使用すると、信頼できる境界の外部にある Google マネージド サービスへのアクセスを禁止し、信頼できない場所からのデータへのアクセスをブロックし、データ漏洩のリスクを軽減するセキュリティ ポリシーを定義できます。
このチュートリアルは、 Google Cloud VPC Service Controls の基本コンセプトを学習する組織管理者を対象としています。
目標
- VPC Service Controls の基本を理解する。
- サービス境界を作成する。
- VPC Service Controls を使用してプロジェクトを保護する。
- VPC Service Controls の上り(内向き)違反のトラブルシューティングを行う。
料金
このドキュメントでは、Google Cloud の次の課金対象のコンポーネントを使用します。
料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを生成できます。
このドキュメントに記載されているタスクの完了後、作成したリソースを削除すると、それ以上の請求は発生しません。詳細については、クリーンアップをご覧ください。
始める前に
Google Cloud 組織リソースが必要です。Google Workspace アカウントまたは Cloud Identity アカウントをまだお持ちでない場合は、アカウントを取得する必要があります。これにより、組織リソースが自動的に作成されます。
組織レベルでフォルダ
Exercise
を作成します。同じ組織内の
Exercise
フォルダにMy-Project-1
とMy-Project-2
の2 つのプロジェクトを作成します。組織レベルで次の権限とロールがあることを確認します。
サービス境界を作成する
My-Project-2
プロジェクトで Compute Engine API を保護するサービス境界を作成します。
Google Cloud コンソールで、[VPC Service Controls] ページに移動します。
組織スコープ内にいることを確認します。
[ポリシーを管理する] をクリックします。
Exercise
フォルダにスコープを設定した新しいアクセス ポリシーを作成します。次の詳細を使用して新しい境界を作成します。
タイトル:
MyFirstPerimeter
境界のタイプ: 標準
適用モード: 自動適用
保護するリソース:
My-Project-2
プロジェクト制限付きサービス: Compute Engine API
境界を確認する
このセクションでは、プロジェクト内のリソースへのアクセス リクエストを行い、境界が目的のリソースを保護しているかどうかを確認します。
My-Project-1
プロジェクトにアクセスし、[VM インスタンス] ページにアクセスして、Compute Engine にアクセスできることを確認します。My-Project-1
は、前に作成した境界で保護されていないため、アクセスできるはずです。My-Project-2
プロジェクトにアクセスし、[VM インスタンス] ページにアクセスして、Compute Engine にアクセスできることを確認します。MyFirstPerimeter
境界がMy-Project-2
と Compute Engine API を保護しているため、VPC Service Controls が Compute Engine へのアクセス リクエストを拒否していることを確認できます。
違反のトラブルシューティング
VPC Service Controls の監査ログには、保護されたリソースへのリクエストの詳細と、VPC Service Controls がリクエストを拒否した理由が含まれます。この情報は、My-Project-2
プロジェクトの違反を特定してトラブルシューティングを行うために必要です。
監査ログの表示
My-Project-2
プロジェクトの監査ログで、VPC Service Controls 違反の一意の ID を見つけます。-
Google Cloud コンソールで、[ログ エクスプローラ] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが「Logging」の結果を選択します。
My-Project-2
プロジェクトを選択します。すべての監査ログを表示するには、クエリエディタ フィールドに次のクエリを入力します。
resource.type="audited_resource" protoPayload.metadata."@type"="type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"
[クエリを実行] をクリックします。
このクエリは、すべての VPC Service Controls 監査ログを表示します。
My-Project-2
プロジェクトで Compute Engine API にアクセスする違反の詳細を確認するには、最後のエラーログを確認します。詳細については、ログの表示をご覧ください。
-
[クエリ結果] ペインで、トラブルシューティングする拒否の横にある [VPC Service Controls] をクリックし、[拒否のトラブルシューティング] をクリックします。
[VPC Service Controls トラブルシューティング] ページが開きます。このページには、違反の理由や、違反が上り(内向き)違反か下り(外向き)違反かなどの情報が表示されます。
このチュートリアルでは、次の情報を確認します。
"principalEmail": "USER@DOMAIN" "callerIp": "PUBLIC_IP_ADDRESS" "serviceName": "compute.googleapis.com" "servicePerimeterName": "accessPolicies/POLICY_NUMBER/servicePerimeters/MyFirstPerimeter "ingressViolations": [ { "targetResource": "projects/PROJECT_NUMBER", "servicePerimeter": "accessPolicies/POLICY_NUMBER/servicePerimeters/MyFirstPerimeter" } ], "violationReason": "NO_MATCHING_ACCESS_LEVEL", "resourceNames": "PROJECT_ID"
違反の理由は
"NO_MATCHING_ACCESS_LEVEL"
です。"NO_MATCHING_ACCESS_LEVEL"
違反は、IP アドレス、デバイスタイプ、またはユーザー ID が境界に関連付けられている上り(内向き)ルールまたはアクセスレベルと一致しない場合に発生します。呼び出し元の IP アドレスがないか、ログに内部 IP アドレスとして表示されている場合、この違反は、VPC Service Controls でサポートされていないサービスが原因で発生している可能性があります。 Google Cloud
My-Project-2
プロジェクトでこの拒否を修正するには、次の 2 つの方法があります。
境界内のプロジェクトへのシステム IP アドレスへのアクセスを許可するアクセスレベルを作成します。
境界外の API クライアントから境界内のリソースへのアクセスを許可する上り(内向き)ルールを作成します。
次のセクションでは、アクセスレベルを作成してこの拒否のトラブルシューティングを行う方法について説明します。
アクセスレベルを作成する
Google Cloud コンソールで、
Exercise
フォルダ スコープの [Access Context Manager] ページに移動します。次の詳細を指定してアクセスレベルを作成します。
[条件の作成] で、[基本モード] を選択します。
[条件を満たしている場合に返される値:] で [True] を選択します。
[IP サブネットワーク] 属性を選択し、システムのパブリック IP アドレスを指定します。
[地域] 属性を選択し、地域を指定します。
このアクセスレベルでは、IP アドレスと地理的位置が一致する場合にのみアクセスが許可されます。
組織スコープの [VPC Service Controls] ページに移動します。
このチュートリアルの前半で作成したアクセス ポリシーを選択します。
Exercise
フォルダ スコープで作成したアクセスレベルをMyFirstPerimeter
境界に追加します。
アクセスをテストする
アクセスレベルを追加したら、My-Project-2
プロジェクトで Compute Engine にアクセスして VM インスタンスを作成できることを確認します。
Google Cloud コンソールで [VM インスタンス] ページに移動します。
VM インスタンスを作成します。
約 1 分後に、Compute Engine によって VM インスタンスが作成されます。このアクションにより、境界内で保護されている Compute Engine への完全アクセス権があることが確認されます。
クリーンアップ
このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。
プロジェクトを削除する
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
リソースを個別に削除する
VM インスタンスを削除する
- In the Google Cloud console, go to the VM instances page.
- Select the checkbox for the instance that you want to delete.
- To delete the instance, click More actions, click Delete, and then follow the instructions.
VPC Service Controls リソースを削除する
Exercise
フォルダ スコープで作成したアクセスレベルを削除します。