VPC Service Controls と限定公開クラスタを構成する

このページでは、VPC Service Controls と限定公開クラスタの仕組みと、Cloud Workstations でそれらを設定する方法について説明します。

VPC Service Controls

VPC Service Controls は、ワークステーションのセキュリティをさらに強化して、データの引き出しのリスクを低減します。VPC Service Controls の活用により、境界の外部から発生するリクエストからリソースとサービスの保護に役立つサービス境界にプロジェクトを追加できます。

VPC サービス境界で Cloud Workstations を使用する場合の要件は次のとおりです。

  • Cloud Workstations 保護を促進するには、Cloud Workstations API を制限する場合は常に、サービス境界内の Compute Engine API を制限する必要があります。
  • Google Cloud Storage API、Google Container Registry API、Artifact Registry API がサービス境界で VPC からアクセスできることを確認します。これは、ワークステーションにイメージを pull するために必要です。 また、Cloud Logging API と Cloud Error Reporting API にサービス境界で VPC からアクセスできるようにすることをおすすめします。ただし、これは Cloud Workstations の使用には必要ありません。

  • ワークステーション クラスタが非公開であることを確認します。 限定公開クラスタを構成すると、VPC サービス境界の外部からワークステーションに接続できなくなります。 Cloud Workstations サービスでは、VPC サービス境界に一般公開クラスタを作成できません。
  • ワークステーション構成でパブリック IP アドレスがオフになっていることを確認します。無効にしないと、プロジェクトにパブリック IP アドレスを持つ VM が作成されます。constraints/compute.vmExternalIpAccess 組織のポリシーの制約を使用して、VPC サービス境界内のすべての VM のパブリック IP アドレスを無効にすることを強くおすすめします。詳細については、外部 IP アドレスを特定の VM に制限するをご覧ください。

サービス境界の詳細については、サービス境界の詳細と構成をご覧ください。

アーキテクチャ

ワークステーション クラスタを限定公開として構成した場合、ワークステーション クラスタのコントロール プレーンには内部 IP アドレスしかありません。つまり、公共のインターネットからのクライアントは、ワークステーション クラスタに属するワークステーションに接続できません。限定公開クラスタを使用するには、Private Service Connect エンドポイントを介して、限定公開クラスタを Virtual Private Cloud(VPC)ネットワークに手動で接続する必要があります。

限定公開クラスタを使用する構成には、次の 2 つの PSC エンドポイントが必要です。

  • デフォルトでは、Cloud Workstations は、コントロール プレーンをワークステーション VM に接続するための個別の PSC エンドポイントを作成します。

  • 限定公開クラスタ用に追加の PSC エンドポイントを作成する必要があります。ローカルマシンから限定公開クラスタのワークステーションに接続するには、ローカルマシンを VPC ネットワークに接続する必要があります。Cloud VPN または Cloud Interconnect を使用して、マシンを実行している外部ネットワークを VPC ネットワークに接続します。

次の図は、限定公開クラスタのアーキテクチャの例を示しています。

図 1.
限定公開クラスタ

準備

始める前に、次の必要な設定手順を完了してください。

  1. Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  3. Google Cloud プロジェクトで課金が有効になっていることを確認します

  4. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  5. Google Cloud プロジェクトで課金が有効になっていることを確認します

  6. Cloud Workstations API を有効にします。

    API を有効にする

  7. ワークステーション構成を作成できるように、プロジェクトに Cloud Workstations 管理者の IAM ロールがあることを確認します。 Google Cloud コンソールで IAM ロールを確認するには、[IAM] ページに移動します。

    IAM に移動

  8. constraints/compute.trustedimageProjects 組織ポリシーの制約が適用されている場合は、イメージの取得元であるプロジェクトを許可リストに追加する必要があります。
    • ネストされた仮想化を使用しない場合は、cos-cloud プロジェクトの Compute Engine VM イメージを使用する権限をプロジェクトに付与する必要があります。
    • ネストされた仮想化を使用する場合は、ubuntu-os-gke-cloud プロジェクトの Compute Engine VM イメージを使用するための権限をプロジェクトに付与する必要があります。

    詳細については、イメージ アクセスの制限を設定するをご覧ください。

  9. 省略可: Container File System API を有効にして、ワークステーションの起動を高速化します。

    Container File System API を有効にする

    詳細については、イメージ ストリーミングでワークステーションの起動時間を短縮するをご覧ください。

限定公開クラスタを作成する

限定公開クラスタを作成するには、次の手順を行います。

  1. Google Cloud コンソールで、[Cloud Workstations] ページに移動します。

    Cloud Workstations に移動

  2. ワークステーションの [クラスタの管理] ページに移動します。

  3. [作成] をクリックします。

  4. [名前] を入力し、ワークステーション クラスタの [リージョン] を選択します。

  5. [ネットワーキング] セクションで、[このプロジェクトのネットワーク] を選択します。

  6. [ネットワーク] と [サブネットワーク] を選択します。

  7. [ゲートウェイの種類] で [プライベート ゲートウェイ] を選択します。

  8. 省略可: 限定公開クラスタへの HTTP アクセスを有効にする Private Service Connect エンドポイントをホストする 1 つ以上の追加プロジェクトを指定します。デフォルトでは、このエンドポイントはワークステーション クラスタ プロジェクトと VPC ネットワーク ホスト プロジェクトにのみ作成できます(異なる場合)。必要に応じて、クラスタの作成後にこれらのプロジェクトを指定することもできます。

  9. [作成] をクリックします。

限定公開クラスタの接続を有効にする

クライアントは、公共のインターネットからプライベート ワークステーション クラスタのワークステーションに接続できません。クライアントは、Private Service Connect(PSC)を使用してワークステーション クラスタに接続するネットワーク上にある必要があります。このセクションの手順に沿ってワークステーションに接続します。

  1. ワークステーション サービス アタッチメントをターゲットとする PSC エンドポイントを作成します。

  2. 限定公開 DNS ゾーンを作成します

  3. クラスタのホスト名を PSC エンドポイントにマッピングする DNS レコードを Cloud DNS を使用して作成します。

Private Service Connect エンドポイントを作成する

PSC エンドポイントを作成する手順は次のとおりです。

  1. Google Cloud コンソールで [Private Service Connect] に移動します。

    [Private Service Connect] に移動

  2. [接続エンドポイント] タブをクリックし、追加 [エンドポイントを接続] をクリックします。

  3. [ターゲット] で [公開済みのサービス] を選択します。

  4. [ターゲット サービス] フィールドに、ワークステーション クラスタ用に作成されたサービス アタッチメント URI を入力します。コンソールでワークステーション クラスタに移動して、[ネットワーク設定] の [サービス アタッチメント URI] フィールドを探します。

  5. [エンドポイント] フィールドにエンドポイント名を入力します。

  6. エンドポイントの [ネットワーク] を選択してから、[サブネットワーク] を選択します。 このネットワークは、ワークステーションへの接続に使用するネットワークにする必要があります。

  7. エンドポイントの [IP アドレス] を選択します。

    新しい IP アドレスが必要な場合は、[IP アドレスの作成] を選択します。

    1. IP アドレスの名前説明を入力します。
    2. [静的 IP アドレス] で、[自動的に割り当てる] を選択します。 [カスタム IP アドレス] で [自分で選択] を選択し、使用する IP アドレスを入力します。
    3. [目的] で [非共有] を選択します。
    4. [予約] をクリックします。
  8. プルダウン リストから名前空間を選択するか、新しい名前空間を作成します。 [リージョン] には、選択したサブネットワークに基づいてデータが入力されます。

  9. [エンドポイントを追加] をクリックします。

  10. エンドポイントの IP アドレスをコピーして、次のセクションでプライベート DNS ゾーンと DNS レコードを作成するために使用できるようにします。

限定公開 DNS ゾーンを作成する

次の手順に従って、DNS 名が clusterHostname に設定されたこのワークステーション クラスタの限定公開 DNS ゾーンを作成します。これは、コンソールのワークステーション クラスタに移動して確認します。

  1. Google Cloud コンソールで、[DNS ゾーンの作成] ページに移動します。

    [DNS ゾーンの作成] に移動

  2. [ゾーンのタイプ] で [非公開] を選択します。

  3. ゾーン名(例: private-workstations-cluster-zone)を入力します。

  4. 限定公開ゾーンの DNS 名のサフィックスを入力します。ゾーン内のすべてのレコードがこのサフィックスを共有します。この名前を clusterHostname に設定します。

    clusterHostname を確認するには、Google Cloud コンソールで [Cloud Workstations] > [クラスタ管理] ページに移動し、ワークステーション クラスタをクリックして、ホスト名を表示します。

  5. (省略可)説明を追加します。

  6. [オプション] で、[デフォルト(限定公開)] を選択します。

  7. IP アドレスはこのネットワークでのみ有効なため、前のセクションで PSC エンドポイントを作成したネットワークを選択します。

  8. [作成] をクリックします。

限定公開 DNS ゾーンの詳細については、限定公開ゾーンを作成する方法、およびCloud DNS 限定公開ゾーンのベスト プラクティスに関する Cloud DNS のドキュメントをご覧ください

DNS レコードを作成する

Private Service Connect エンドポイントの作成時に予約された IP アドレスに *.<clusterHostname> をマッピングするレコードを追加するには、次の手順を行います。

  1. Google Cloud コンソールで、Cloud DNS の [ゾーン] ページに移動します。

    Cloud DNS の [ゾーン] に移動

  2. レコードを追加するマネージド ゾーンの名前をクリックします。

  3. [ゾーンの詳細] ページで、[標準を追加] をクリックします。

  4. [レコードセットの作成] ページの [DNS 名] フィールドに「*.<clusterHostname>」と入力します。

  5. [IP アドレス] フィールドに、前のセクションで Private Service Connect エンドポイント用に予約した IP アドレスを入力します。

  6. [作成] をクリックします。

  7. これで VPC ネットワークがワークステーション クラスタに接続されました。このネットワークを使用してワークステーションに接続できます。

オンプレミスで DNS 解決を有効にする

ワークステーションでデフォルトのブラウザベースのエディタを使用するには、VPC ネットワークに接続されたマシンのブラウザを使用します。Cloud VPN または Cloud Interconnect を使用して、ブラウザを実行している外部ネットワークから VPC に接続できます。

外部ネットワークから接続するには、外部ネットワークで DNS を構成する必要があります。前の手順と同様に、clusterHostname 用の DNS ゾーンを作成し、Private Service Connect エンドポイントの作成時に予約した IP アドレスに *.<clusterHostname> をマッピングするレコードを追加できます。また、DNS 転送ゾーンまたは DNS サーバー ポリシーを設定して、オンプレミス環境と Google Cloud 環境の間で DNS 名の検索を許可することも可能です。

オンプレミス インフラストラクチャの許可リストに *cloudworkstations.dev を追加する必要が生じる場合があります。

次のステップ