1. はじめに
VPC Service Controls(VPC-SC)は Google Cloud の組織レベルのセキュリティ管理で、企業のお客様がデータ引き出しのリスクを軽減できるようにします。VPC Service Controls は、マルチテナント サービスへのゼロトラスト スタイルのアクセスを提供します。クライアントは、インターネットやその他のサービスからマルチテナント サービスに接続する際に、アクセスを承認済み IP、クライアント コンテキスト、デバイス パラメータに制限して、意図的な損失と意図しない損失の両方を低減できます。VPC Service Controls を使用すると、明示的に指定したサービスのリソースとデータを保護する境界を作成できます。
このチュートリアルの目標は次のとおりです。
- VPC Service Controls の基本を理解する
- VPC サービス境界を作成する
- VPC Service Controls でプロジェクトを保護する
- VPC Service Controls の上り(内向き)違反のトラブルシューティング
2. 設定と要件
このチュートリアルでは、次の前提条件を満たす必要があります。
- GCP 組織。
- 組織のフォルダ。
- 同じ組織内の 2 つの GCP プロジェクトをフォルダに配置。
- 組織レベルで必要な権限。
- 両方のプロジェクトの請求先アカウント。
リソースの設定
- Google Cloud コンソールで、組織の下にフォルダを作成し、2 つの新しいプロジェクトを作成します(既存のプロジェクトは再利用できます)。
(Google Workspace アカウントまたは Cloud Identity アカウントをまだお持ちでない場合は、このチュートリアル用の組織が必要になるため、アカウントを取得する必要があります)。
- 組織レベルで、このチュートリアルに必要な権限があることを確認します。
- フォルダレベルでスコープ ポリシーを作成する必要があるため、フォルダで両方のプロジェクトを使用できるようにしてください。プロジェクトをフォルダに移動する方法を確認する。
費用
Cloud リソースまたは Cloud API を使用するには、Cloud コンソールで課金を有効にする必要があります。この Codelab の操作をすべて行って、費用が生じたとしても、少額です。このチュートリアルの終了後に請求が発生しないようにリソースをシャットダウンするには、作成したリソースを削除するか、プロジェクトを削除します。Google Cloud の新規ユーザーは、300 米ドル分の無料トライアル プログラムをご利用いただけます。
費用が発生する唯一のリソースは VM インスタンスです。推定費用は料金計算ツールで確認できます。
3. 境界を作成する
このラボでは、次の手順を実施します。
- Google コンソールで、組織を選択して [ Access VPC Service Controls] を選択します。組織レベルであることを確認してください。
- [ポリシーを管理] をクリックします「Codelab」をスコープとする新しいアクセス ポリシーを作成します。フォルダに配置されます。
- 自動適用モードで新しい境界を作成します。名前を「SuperProtection」にします。使用します。
- 境界を作成するときに、ProjectZ として適用するプロジェクトを選択します。
- 境界タイプとして [標準] を選択します。
- [制限するサービスの指定] ダイアログで、制限するサービスとして [Compute Engine] を選択します。
境界の設定は次のようになります。
4. 境界が適用されていることを確認する
- ProjectX にアクセスし、VM インスタンスのホームページにアクセスして、Compute Engine API にアクセスできるかどうかを確認します。projectX は作成された VPC SC 境界で保護されないため、このようにする必要があります。
- ProjectZ にアクセスして、Compute Engine にアクセスできるかどうかを確認します。サービス境界の SuperProtection が ProjectZ と Compute Engine API を保護しているため、リクエストが VPC Service Controls で禁止されていることがわかります。
5. 拒否に関するトラブルシューティング
まず、何が問題なのかを正確に特定して、トラブルシューティングの方法を決定する必要があります。
- VPC Service Controls のログには、保護されたリソースへのリクエストの詳細と、VPC Service Controls がリクエストを拒否された理由が含まれます。ログ エクスプローラで次のクエリを使用して、ProjectZ 監査ログ内の VPC Service Controls の一意の ID を見つけます。
resource.type="audited_resource" protoPayload.metadata."@type"="type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"
これにより、すべての VPC Service Controls 監査ログが表示されます。最後のエラーログを探します。
- [VPC Service Controls] ヘッダーをクリックし、[拒否のトラブルシューティング] を選択します。VPC Service Controls のトラブルシューティングが開きます。
この API はわかりやすい UI に、違反の理由と、これが上り(内向き)違反か下り(外向き)違反か、特に有用な情報を表示します。
この演習では、以下の項目を確認します。
"principalEmail": "user@domain" "callerIp": "PUBLIC_IP_ADDRESS" "serviceName": "compute.googleapis.com" "servicePerimeterName": "accessPolicies/[POLICY_NUMBER]/servicePerimeters/SuperProtection "ingressViolations": [ { "targetResource": "projects/[PROJECT_NUMBER]", "servicePerimeter": "accessPolicies/[POLICY_NUMBER]/servicePerimeters/SuperProtection" } ], "violationReason": "NO_MATCHING_ACCESS_LEVEL", "resourceNames": "[PROJECT_ID]"
ProjectZ でこの拒否を修正する方法は 2 つあります。
- システム IP へのアクセスを許可することで、境界内のプロジェクトへのアクセスを許可するアクセスレベルを作成する。
- API クライアントがサービス境界の外部からサービス境界内のリソースへのアクセスを許可する上り(内向き)ルールを作成する。
このチュートリアルでは、アクセスレベルを作成してトラブルシューティングを行います。
- フォルダ(Codelab)スコープの Access Context Manager に移動し、新しいアクセスレベルを作成します。
- 「基本モード」を使用するIP サブネットワークと地理的位置が満たされていれば アクセスが許可されます
- [組織] スコープの [VPC Service Controls] に移動します。この Codelab のアクセス ポリシーを選択し、前に作成した境界を編集します。
- フォルダ スコープで作成したアクセスレベルを追加して保存します。
6. テスト結果。
Compute Engine にアクセスでき、VM インスタンスを作成できることを確認します。これでアクセスレベルを作成したので、ProjectZ の Compute Engine にアクセスして VM インスタンスを作成してみましょう。
- Compute Engine に移動し、[インスタンスを作成] をクリックします。
- すべてをデフォルトのままにして、低コストの VM インスタンスを作成してみます。
約 1 分後、VM インスタンスが作成され、境界内で保護された Compute Engine への完全アクセス権があることを確認します。
7. クリーンアップ
サービスが使用されていない場合、VPC Service Controls の使用に対して別途料金はかかりませんが、このラボで使用した設定をクリーンアップすることをおすすめします。VM インスタンスや Cloud プロジェクトを削除して、料金が発生しないようにすることもできます。Cloud プロジェクトを削除すると、そのプロジェクト内で使用されているすべてのリソースに対する課金が停止します。
- VM インスタンスを削除するには、VM インスタンス名の左側にあるチェックボックスをオンにして、[削除] をクリックします。
- 境界を削除するには、次の操作を行います。
- Google Cloud コンソールで [セキュリティ] をクリックし、[組織] スコープで [VPC Service Controls] をクリックします。
- [VPC Service Controls] ページで、削除する境界に対応する表の行にある削除アイコンをクリックします。
- アクセスレベルを削除する手順は次のとおりです。
- Google Cloud コンソールで、フォルダ スコープで [Access Context Manager] ページを開きます。
- グリッドで、削除するアクセスレベルの行にある削除アイコン、[削除] の順にクリックします。
- プロジェクトをシャットダウンする手順は次のとおりです。
- Google Cloud コンソールで、[IAM &[Admin Settings] ページ。
- [IAM と[管理者設定] ページで [シャットダウン] をクリックします。
- プロジェクト ID を入力し、[シャットダウンする] をクリックします。
8. 完了
この Codelab では、VPC Service Controls の境界を作成して適用し、トラブルシューティングを行いました。
詳細
- VPC Service Controls のドキュメントをご覧ください。
- Access Context Manager のドキュメントをご覧ください。
- VPC-SC のトラブルシューティング ドキュメントをご覧ください。
ライセンス
この作業はクリエイティブ・コモンズの表示 2.0 汎用ライセンスにより使用許諾されています。