
始める前に
- ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
- ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
- 画面左上の [ラボを開始] をクリックして開始します
Create a VPC network and firewall rules
/ 5
Create the VM instance with no public IP address
/ 5
Create the Bastion host
/ 5
Create a Cloud Storage Bucket and Enable Private Google Access
/ 5
Configure a Cloud NAT gateway
/ 5
Google Cloud のネットワーク アドレス変換(NAT)サービスを使用すると、パブリック IP アドレスなしでアプリケーション インスタンスをプロビジョニングできるだけでなく、更新、パッチの適用、構成管理などのために、制御された効率的な方法でインスタンスからインターネットへのアクセスを許可できます。
このラボでは、外部 IP アドレスを設定していない VM インスタンスに対して、プライベート Google アクセスと Cloud NAT を構成します。その後、Google の API およびサービスのパブリック IP アドレスへのアクセスと、その他のインターネット接続を検証します。最後に、Cloud NAT ロギングを使用して、ゲートウェイで行われた接続を記録します。
このラボでは、次のタスクの実行方法について学びます。
こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。
このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 左側の [ラボの詳細] ペインには、以下が表示されます。
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。
ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。
[ラボの詳細] ペインでもユーザー名を確認できます。
[次へ] をクリックします。
以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。
[ラボの詳細] ペインでもパスワードを確認できます。
[次へ] をクリックします。
その後次のように進みます。
その後、このタブで Google Cloud コンソールが開きます。
Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。
Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン をクリックします。
ウィンドウで次の操作を行います。
接続した時点で認証が完了しており、プロジェクトに各自の Project_ID、
gcloud
は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。
出力:
出力:
gcloud
ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。
外部 IP アドレスが設定されていない VM インスタンスを作成します。また、踏み台インスタンスとして機能する別の VM インスタンスも作成します。
まず、VM インスタンス用の VPC ネットワークと、SSH アクセスを許可するファイアウォール ルールを作成します。
Cloud コンソールのナビゲーション メニュー()で [VPC ネットワーク] > [VPC ネットワーク] の順にクリックします。
[VPC ネットワークを作成] をクリックします。
[名前] に「privatenet」と入力します。
[サブネット作成モード] で [カスタム] をクリックします。
次のように指定し、残りの設定はデフォルトのままにします。
プロパティ | 値(値を入力するか、指定されたオプションを選択) |
---|---|
名前 | privatenet-us |
リージョン | |
IP アドレス範囲 | 10.130.0.0/20 |
[完了] をクリックします。
[作成] をクリックし、ネットワークが作成されるまで待ちます。
左側のペインで、[ファイアウォール] をクリックします。
[ファイアウォール ルールを作成] をクリックします。
次のように指定し、残りの設定はデフォルトのままにします。
プロパティ | 値(値を入力するか、指定されたオプションを選択) |
---|---|
名前 | privatenet-allow-ssh |
ネットワーク | privatenet |
ターゲット | ネットワーク上のすべてのインスタンス |
ソースフィルタ | IPv4 範囲 |
送信元 IPv4 範囲 | 0.0.0.0/0 |
プロトコルとポート | 指定したプロトコルとポート |
tcp にはポート 22 を指定します。
[作成] をクリックします。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
Cloud コンソールのナビゲーション メニュー()で、[Compute Engine] > [VM インスタンス] をクリックします。
[インスタンスを作成] をクリックします。
[マシンの構成] を参照します。
以下の値を選択します。
プロパティ | 値(値を入力するか、指定されたオプションを選択) |
---|---|
名前 | vm-internal |
リージョン | |
ゾーン | |
シリーズ | E2 |
マシンタイプ | e2-medium(2 vCPU、1 コア、4 GB メモリ) |
[ネットワーキング] をクリックします。
[ネットワーク インターフェース] で [default] を開き、以下のように指定します。
プロパティ | 値(値を入力するか、指定されたオプションを選択) |
---|---|
ネットワーク | privatenet |
サブネットワーク | privatenet-us |
外部 IPv4 アドレス | None |
[完了] をクリックします。
[作成] をクリックします。
[VM インスタンス] ページで [vm-internal] の [外部 IP] が なしになっていることを確認します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
外部 IP アドレスが設定されていない vm-internal に他のインスタンスからアクセスするには、そのインスタンスが同じネットワーク上にあるか、マネージド VPN ゲートウェイを経由する必要があります。これには、Cloud コンソールでグレー表示(使用不可)になっている vm-internal への SSH アクセスが含まれます。
SSH 経由で vm-internal に接続するには、vm-internal と同じ VPC ネットワーク上に踏み台インスタンス vm-bastion を作成します。
Cloud コンソールの [VM インスタンス] ページで、[インスタンスを作成] をクリックします。
[マシンの構成] を参照します。
以下の値を選択します。
プロパティ | 値(値を入力するか、指定されたオプションを選択) |
---|---|
名前 | vm-bastion |
リージョン | |
ゾーン | |
シリーズ | E2 |
マシンタイプ | e2-micro(2 vCPU) |
[ネットワーキング] をクリックします。
[ネットワーク インターフェース] で [default] を開き、以下のように指定します。
プロパティ | 値(値を入力するか、指定されたオプションを選択) |
---|---|
ネットワーク | privatenet |
サブネットワーク | privatenet-us |
外部 IPv4 アドレス | Ephemeral |
[完了] をクリックします。
[セキュリティ] をクリックします。
API ごとにアクセス権を設定
読み取り / 書き込み
[作成] をクリックします。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
vm-bastion 経由で vm-internal にアクセスできることを確認します。
2. vm-bastion の SSH ターミナルで次のコマンドを実行して、外部接続を検証します。
これは動作するはずです。
Y
」と入力します。vm-internal には外部 IP アドレスが設定されていないので、これは動作しないはずです。
ping
コマンドが完了するのを待ちます。外部 IP アドレスが設定されていない VM インスタンスでプライベート Google アクセスを使用すると、Google の API およびサービスの外部 IP アドレスにアクセスできます。プライベート Google アクセスは、デフォルトでは VPC ネットワークで無効になっています。
Google の API およびサービスへのアクセスをテストするための Cloud Storage バケットを作成します。
Cloud コンソールのナビゲーション メニュー()で、[Cloud Storage] > [バケット] をクリックします。
[作成] をクリックします。
次のように指定し、残りの設定はデフォルトのままにします。
プロパティ | 値(値を入力するか、指定されたオプションを選択) |
---|---|
名前 | グローバルに一意の名前を入力 |
デフォルトのストレージ クラス | Multi-region |
[作成] をクリックします。
ストレージ バケットの名前をメモしておきます(次のサブタスクで使用します)。ここからはこのストレージ バケットを [my_bucket]
と呼びます。
Cloud Storage の公開バケットから自分のバケットに画像をコピーします。
[my_bucket]
を自分のバケットの名前に置き換えます。Cloud コンソール内の画像の名前をクリックすると、プライベート Google アクセスの実装例が表示されます。
[my_bucket]
は自分のバケットの名前に置き換えます。vm-bastion に外部 IP アドレスが設定されているため、これは動作するはずです。
[my_bucket]
は自分のバケットの名前に置き換えます。最初の試行後のリクエストを終了するために、Ctrl+C キーを押します。
SSH ターミナルを終了します。
プライベート Google アクセスは、サブネット レベルで有効になっています。この場合、サブネット内でプライベート IP アドレスしか設定されていないインスタンスは、デフォルト ルート(0.0.0.0/0)を通じて Google の API およびサービスにトラフィックを送信できます。このとき、デフォルト インターネット ゲートウェイへのネクストホップを使用します。
vm-internal のサブネットでプライベート Google アクセスが有効化されているため、これは正常に動作するはずです。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
vm-internal は、外部 IP アドレスがなくても Google の特定の API およびサービスにアクセスできるようになりましたが、更新やパッチ適用のためにインターネットにアクセスすることはできません。Cloud NAT ゲートウェイを構成すると、vm-internal からインターネットに接続できるようになります。
出力は次のようになります。
vm-bastion に外部 IP アドレスが設定されているため、これは動作するはずです。
vm-internal がアクセスできるのは Google の API およびサービスだけであるため、これは Google Cloud パッケージでのみ正常に動作するはずです。
Cloud NAT はリージョン リソースです。範囲を限定せずリージョン内の全サブネットからのトラフィックを許可する構成のほか、リージョン内の特定のサブネットからのトラフィックのみを許可する構成、プライマリ CIDR やセカンダリ CIDR の特定範囲からのトラフィックのみを許可する構成も可能です。
Cloud コンソールのナビゲーション メニュー()で、[ネットワーク サービス] > [Cloud NAT] をクリックします。
[開始] をクリックして Cloud NAT ゲートウェイを構成します。
以下を指定します。
プロパティ | 値(値を入力するか、指定されたオプションを選択) |
---|---|
ゲートウェイの名前 | nat-config |
ネットワーク | privatenet |
リージョン |
[Cloud Router] で、[新しいルーターを作成] を選択します。
[名前] に「nat-router」と入力します。
[作成] をクリックします。
NAT 構成が VM に反映されるまで最長で 3 分ほどかかります。少なくとも 1 分待ってからもう一度インターネットにアクセスしてみてください。
出力は次のようになります。
vm-internal で NAT ゲートウェイを使用しているため、これは正常に動作するはずです。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
Cloud NAT ロギングを使用すると、Cloud NAT の接続とエラーをログに記録できます。Cloud NAT ロギングを有効にすると、次のシナリオごとに 1 つのログエントリを生成できます。
両方のイベントを記録するか、一方だけを記録するかを選べます。作成されたログは Cloud Logging に送信されます。
ロギングが有効になっている場合、収集されたすべてのログはデフォルトで Stackdriver に送信されます。特定のログのみが送信されるように、フィルタすることもできます。
これらの値は、Cloud NAT ゲートウェイを作成する際や作成済みの Cloud NAT ゲートウェイを編集する際に指定できます。以下の手順では、既存の Cloud NAT ゲートウェイのロギングを有効にする方法を説明します。
Google Cloud コンソールのナビゲーション メニュー()で、[ネットワーク サービス] > [Cloud NAT] をクリックします。
nat-config
ゲートウェイをクリックしてから、[編集] をクリックします。
[高度な構成] をクリックします。
[ロギング] で [変換とエラー] を選択し、[保存] をクリックします。
nat-config
ゲートウェイの Cloud NAT ロギングを設定したので、ログを表示できる場所を確認しましょう。次のページに、更新されたゲートウェイが表示されているはずです。
nat-config
をクリックして詳細を表示します。[ログ エクスプローラで表示] リンクをクリックします。
新しいタブが開き、ログ エクスプローラが表示されます。ページの上部は次のようになっています。
ゲートウェイに対してこの機能を有効にしたばかりなので、ログはまだ記録されていません。このタブを開いたままにして、Google Cloud コンソールのタブに戻ります。
前述のとおり、Cloud NAT のログは次のシーケンスに対して生成されます。
踏み台インスタンスを内部 VM に再び接続して、ログが生成されるかどうかを確認しましょう。
出力は次のようになります。
この接続を開始したことで、ログに新しいエントリが記録されたかどうかを確認しましょう。
NAT ロギングのタブに戻り、[現在の位置に移動] ボタンをクリックします。
踏み台インスタンスを内部 VM に接続した後に生成された 2 つの新しいログが表示されるはずです。
ログを見ると、接続先の VPC ネットワークと使用した接続方法の詳細がわかります。さまざまなラベルや詳細を展開して、内容を確認してください。
これで、セルフペース ラボ「プライベート Google アクセスと Cloud NAT の構成」は終了です。
外部 IP アドレスが設定されていないインスタンスである vm-internal を作成しました。また、その vm-internal に安全に接続するための踏み台インスタンスである vm-bastion を作成しました。次に、プライベート Google アクセスの有効化と Cloud NAT ゲートウェイの構成を行って、vm-internal が Google の API およびサービス、ならびにその他のパブリック IP アドレスに接続できることを確認しました。最後に、NAT ロギングの構成方法と、Stackdriver でこれらのログを生成して表示する方法について学びました。
外部 IP アドレスを設定していない VM インスタンスは、外部ネットワークから隔離されています。Cloud NAT を使用すると、これらのインスタンスがインターネットにアクセスして、更新、パッチ適用、場合によってはブートストラッピングを実行することが可能になります。Cloud NAT はマネージド サービスとして高可用性を実現します。その際にユーザーによる管理や介入は必要ありません。
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
Copyright 2025 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
1 回に 1 つのラボ
既存のラボをすべて終了して、このラボを開始することを確認してください