このページでは、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 と 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 ネットワークに接続します。 この追加の PSC エンドポイントは、外部ネットワークが Cloud VPN または Cloud Interconnect を使用して接続するネットワーク内に作成する必要があります。
次の図は、限定公開クラスタのアーキテクチャの例を示しています。
準備
始める前に、次の必須の設定手順を完了していることを確認してください。
- アカウントにログインします。 Google Cloud を初めて使用する場合は、 アカウントを作成して、実際のシナリオで Google プロダクトのパフォーマンスを評価してください。 Google Cloud新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Cloud Workstations API を有効にします。
API を有効にするために必要なロール
API を有効にするには、
serviceusage.services.enable権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。詳しくは、ロールを付与する方法をご覧ください。 -
ワークステーション構成を作成できるように、プロジェクトに Cloud Workstations 管理者の IAM ロールがあることを確認します。 コンソールで IAM ロールを確認するには、 [IAM] ページに移動します。 Google Cloud
-
Cloud Workstations は、Compute Engine の事前構成済み公開
Container-Optimized OS(COS)
イメージから起動された VM でホストされます。
constraints/compute.trustedimageProjects組織ポリシーの制約が適用されている場合は、イメージ アクセスの制限を設定して、ユーザーがprojects/cos-cloudまたはすべての公開イメージからブートディスクを作成できるようにする必要があります。 -
省略可: Container File System API を有効にすると、ワークステーションの起動を高速化できます。
Container File System API を有効にする
詳細については、 イメージ ストリーミングでワークステーションの起動時間を短縮するをご覧ください。
限定公開クラスタを作成する
プライベート クラスタを作成する手順は次のとおりです。
コンソールで、[Cloud Workstations] ページに移動します。 Google Cloud
ワークステーションの [クラスタ管理] ページに移動します。
[作成] をクリックします。
名前 を入力し、ワークステーション クラスタのリージョン を選択します。
[ネットワーキング] セクションで、[このプロジェクトのネットワーク] を選択します。
[ネットワーク] と [サブネットワーク] を選択します。
[ゲートウェイの種類] で [プライベート ゲートウェイ] を選択します。
省略可: 限定公開クラスタへの HTTP アクセスを有効にする Private Service Connect エンドポイントをホストするプロジェクトを 1 つ以上指定します。デフォルトでは、このエンドポイントはワークステーション クラスタ プロジェクトと VPC ネットワーク ホスト プロジェクトにのみ作成できます(異なる場合)。必要に応じて、クラスタの作成後にこれらのプロジェクトを指定することもできます。
[作成] をクリックします。クラスタの作成中は、ステータスが [更新中] と表示されます。
クラスタの作成には数分かかります。クラスタの作成が完了すると、クラスタのステータスが [デグレード] と表示されることがあります。 [PSC エンドポイントを作成する]の手順を完了すると、クラスタの ステータスが [準備完了] に変わります。
限定公開クラスタの接続を有効にする
クライアントは、公共のインターネットから限定公開ワークステーション クラスタ内のワークステーションに接続できません。クライアントは、 ワークステーション クラスタに Private Service Connect (PSC)を使用して接続するネットワーク上に存在する必要があります。 このセクションの手順に沿ってワークステーションに接続します。
PSC エンドポイントを作成します 。ターゲットはワークステーション サービス アタッチメントです。
クラスタのホスト名を PSC エンドポイントにマッピングする DNS レコードを Cloud DNS を使用して作成します。
Private Service Connect エンドポイントを作成する
PSC エンドポイントを作成する手順は次のとおりです。
コンソールで、[Private Service Connect] に移動します。 Google Cloud
[接続エンドポイント] タブをクリックし、追加 [エンドポイントを接続] をクリックします。
[ターゲット] で [公開済みのサービス] を選択します。
[ターゲット サービス] フィールドに、ワークステーション クラスタ用に作成されたサービス アタッチメント URI を入力します。コンソールでワークステーション クラスタに移動し、[掲載ネットワークの設定] の [サービス アタッチメント URI] フィールドを探して、これを見つけます。
[エンドポイント] フィールドにエンドポイント名を入力します。
エンドポイントの [ネットワーク] を選択してから、[サブネットワーク] を選択します。 このネットワークには、ワークステーションとの接続に使用するネットワークを指定し、外部ネットワークが Cloud VPN または Cloud Interconnect を使用して接続するネットワークと同じにする必要があります。
エンドポイントの [IP アドレス] を選択します。
新しい IP アドレスが必要な場合は、[IP アドレスを作成] を選択します。
- IP アドレスの名前と説明を入力します。
- [静的 IP アドレス] で、[自動的に割り当てる] を選択します。 [**カスタム IP アドレス**] で、[**自分で選択**] を選択し、使用する IP アドレスを入力します。
- [目的] で [非共有] を選択します。
- [予約] をクリックします。
プルダウン リストから名前空間を選択するか、新しい名前空間を作成します。 リージョン は、選択したサブネットワークに基づいて入力されます。
[エンドポイントを追加] をクリックします。
エンドポイントの IP アドレスをコピーして、次のセクションでプライベート DNS ゾーンと DNS レコードを作成するために使用できるようにします。
限定公開 DNS ゾーンを作成する
次の手順に従って、DNS 名が clusterHostname に設定されたこのワークステーション クラスタのプライベート DNS ゾーンを作成します。これは、コンソールのワークステーション クラスタに移動して確認します。
コンソールで、[DNS ゾーンの作成] ページに移動します。 Google Cloud
[ゾーンのタイプ] で [非公開] を選択します。
ゾーン名(例:
private-workstations-cluster-zone)を入力します。限定公開ゾーンの DNS 名のサフィックスを入力します。ゾーン内のすべてのレコードがこのサフィックスを共有します。この名前を
clusterHostnameに設定します。clusterHostnameを確認するには、コンソールで [Cloud Workstations] > [Cluster management] ページに移動し、ワークステーション クラスタをクリックして、ホスト名を表示します。 Google Cloud(省略可)説明を追加します。
[オプション] で、[デフォルト(限定公開)] を選択します。
IP アドレスはこのネットワークでのみ有効なため、前のセクションで PSC エンドポイントを作成したネットワークを選択します。
[作成] をクリックします。
限定公開 DNS ゾーンの詳細については、限定公開ゾーンを作成する方法、およびCloud DNS 限定公開ゾーンのベスト プラクティスに関する Cloud DNS のドキュメントをご覧ください
DNS レコードを作成する
Private Service Connect エンドポイントの作成時に予約した IP
アドレスに *.<clusterHostname> をマッピングするレコードを追加する手順は次のとおりです。
コンソールで、[Cloud DNS ゾーン] ページに移動します。 Google Cloud
レコードを追加するマネージド ゾーンの名前をクリックします。
[ゾーンの詳細] ページで、[標準を追加] をクリックします。
[レコードセットの作成] ページの [DNS 名] フィールドに「
*.<clusterHostname>」と入力します。[IP アドレス] フィールドに、前のセクションで Private Service Connect エンドポイント用に予約した IP アドレスを入力します。
[作成] をクリックします。
これで、VPC ネットワークがワークステーション クラスタに接続され、このネットワークを使用してワークステーションに接続できるようになります。
オンプレミスで DNS の解決を有効にする
ワークステーションでデフォルトのブラウザベースのエディタを使用するには、VPC ネットワークに接続されたマシンからブラウザを使用します。Cloud VPN または Cloud Interconnect を使用して、ブラウザを実行している外部ネットワークから VPC に接続できます。
外部ネットワークから接続するには、外部ネットワークで DNS を構成することが必要です。前述の手順と同様に、clusterHostname 用の DNS ゾーンを作成し、Private Service Connect エンドポイントの作成時に予約した IP
アドレスに *.<clusterHostname> をマッピングするレコードを追加できます。また、DNS 転送ゾーンまたは DNS サーバー ポリシーを設定して、オンプレミス環境と
環境の間で DNS 名の検索を許可することも可能です。 Google Cloud
オンプレミス インフラストラクチャの許可リストに *cloudworkstations.dev を追加する必要が生じる場合があります。