グローバルIP を持たず、インターネットとの接続が行えない GCP VM に対して SSH 接続するための設定を記載します。
インターネットアクセスを制限するための設定
以下のような制限が存在しているとします。
これらの制限がなされていたとしても SSH 接続できることの確認になります。
Firewall
ネットワーク 10.1.1.0/24 を作成しました。

インターネットとの接続制限

ただし、Cloud IAP が利用する 35.235.240.0/20 からの流入を許可する必要があります。
VPC-SC
Cloud IAP と HTTPS トンネルを張る User の外部 IP のみが記載された Access Level を作成して VPC-SC に紐付けます。
補足: Firewall で指定した 35.235.240.0/20 を Access Level に指定する必要はありません。

検証のためすべての GCP サービスを VPC-SC で制限してみます。

外部IP を持たない VM
VM を起動する際に 外部IP を持たないように設定します。

BeyondCorp Enterprise
組織内の User アカウントについて、Cloud Console (Web 管理画面) および GCP API に対する IP 制限を行います。

SSH パケットの通信経路について
Cloud IAP と User の間に HTTPS トンネルが張られるため、GCP VM はグローバル IP を持つ必要がありません。

tunnel.cloudproxy.app ドメインについて
Cloud IAP による HTTPS トンネルで TCP forwarding を行なうためには、
Cloud IAP と HTTPS トンネルを張るクライアントから tunnel.cloudproxy.app へのアクセスが行える必要があります。
参考: What domain does IAP for TCP use?
以下の二つの方法で Cloud IAP と HTTPS トンネルを張ることができます。
"SSH from the browser" の利用
VM 一覧における「SSH」ボタンをクリックします。

ポップアップウィンドウが開かれます。

以下のロールの権限が必要です。
roles/iap.tunnelResourceAccessor
roles/iam.serviceAccountUser
roles/compute.instanceAdmin
gcloud コマンドの利用
動作検証に先立ち、Cloud Shell で接続された端末の外部IP を確認して Access Level に追記しておきます。

SSH
gcloud compute ssh instance-1 --project myproject-20210411 --zone asia-northeast1-b

その他の TCP 通信
gcloud compute start-iap-tunnel instance-1 22 --local-host-port=localhost:2222 --project myproject-20210411 --zone asia-northeast1-b

記事の執筆者にステッカーを贈る
有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。
さらに詳しく →Feedbacks
ログインするとコメントを投稿できます。
関連記事
- GKE における Node および Pod の autoscaling
Google Kubernetes Engine (GKE) における autoscaling について、用語の意味を整理します。 GKE の機能による Node の autoscaling GKE のクラスタには Standard と Autopilot の二種類が存在します。 Autopilot の場合は Node は Google によって管理されるため、自動で autoscaling され... - Snowflake におけるネットワーク関連の設定
本ページではネットワーク関連の設定について記載します。 Network Policy によるアクセス元 IP 制限 IPv4 で指定します。IPv6 は 2021/9/21 時点では利用できません。 allowed list で許可されていない IP は block されます。 allowed list が /24 等で指定されており、その一部を - VPC Service Controls に関する雑多な事項の整理
VPC Service Controls (VPC-SC) に関する雑多な事項を記載します。 Private Google Access の基本形 Private Google Access は外部 IP を持たない VM のための機能です。VPC の機能ですが、VPC-SC と関連するため基本事項を記載します。 [Private Google Access](ht - AWS IAM Role を GCP から STS 認証で利用する設定例
GCP から AWS IAM Role を利用するための設定例を記載します。 GCP Service Account の作成 Service Account を作成して Unique ID を確認します。 AWS IAM Role の作成 Trust relationship の設定は Web Identity を選択します。Identity Provider - Amazon Comprehend を GCP VPC 内から実行する設定の例 (Public Internet 接続なし)GCP DLP に相当する AWS サービスに Amazon Comprehend が存在します。GCP VPC 内から Public Internet を経由せずに利用する設定の例を記載します。 AWS VPC と GCP VPC の作成 クラウド 項目 値 AWS VPC region ap-northeast-1 AWS VPC CIDR 10.2.0.0/16 AWS ap-north




