GSP159
概要
このハンズオンラボでは、安全なネットワーク アーキテクチャを設計して実装する方法を学びます。Cloud Shell とコマンドライン言語「gcloud
」を使用して 3 つのサブネットワークを持つカスタム ネットワークを作成し、ファイアウォール ルールを適用して VM インスタンスに許可されるトラフィックを制御します。
学習内容
このラボでは、以下の作成方法について学びます。
カスタム ネットワーク
3 つのサブネットワーク
ネットワーク タグを持つファイアウォール ルール
設定と要件
[ラボを開始] ボタンをクリックする前に
こちらの手順をお読みください。ラボの時間は記録されており、一時停止することはできません。[ラボを開始 ] をクリックするとスタートするタイマーは、Google Cloud のリソースを利用できる時間を示しています。
このハンズオンラボでは、シミュレーションやデモ環境ではなく、実際のクラウド環境を使ってご自身でラボのアクティビティを行うことができます。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。
ラボを完了するために十分な時間を確保してください。ラボをいったん開始すると一時停止することはできません。
注: すでに個人の Google Cloud アカウントやプロジェクトをお持ちの場合でも、このラボでは使用しないでください。アカウントへの追加料金が発生する可能性があります。
ラボを開始して Google Cloud コンソールにログインする方法
[ラボを開始 ] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。
左側の [ラボの詳細 ] パネルには、以下が表示されます。
[Google Cloud コンソールを開く ] ボタン
残り時間
このラボで使用する必要がある一時的な認証情報
このラボを行うために必要なその他の情報(ある場合)
[Google Cloud コンソールを開く ] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウでリンクを開く ] を選択します)。
ラボでリソースが起動し、別のタブで [ログイン ] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
注: [アカウントの選択 ] ダイアログが表示されたら、[別のアカウントを使用 ] をクリックします。
必要に応じて、下のユーザー名 をコピーして、[ログイン ] ダイアログに貼り付けます。
{{{user_0.username | "Username"}}}
[ラボの詳細 ] パネルでも [ユーザー名 ] を確認できます。
[次へ ] をクリックします。
以下のパスワード をコピーして、[ようこそ ] ダイアログに貼り付けます。
{{{user_0.password | "Password"}}}
[ラボの詳細 ] パネルでも [パスワード ] を確認できます。
[次へ ] をクリックします。
重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。
注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
その後次のように進みます。
利用規約に同意してください。
一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
無料トライアルには登録しないでください。
その後、このタブで Google Cloud コンソールが開きます。
注: Google Cloud のプロダクトやサービスのリストを含むメニューを表示するには、左上のナビゲーション メニュー をクリックします。
Cloud Shell をアクティブにする
Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。
Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする 」アイコン をクリックします。
接続した時点で認証が完了しており、プロジェクトに各自の PROJECT_ID が設定されます。出力には、このセッションの PROJECT_ID を宣言する次の行が含まれています。
Your Cloud Platform project in this session is set to YOUR_PROJECT_ID
gcloud
は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。
(省略可)次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
gcloud auth list
[承認 ] をクリックします。
出力は次のようになります。
出力:
ACTIVE: *
ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net
To set the active account, run:
$ gcloud config set account `ACCOUNT`
(省略可)次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
gcloud config list project
出力:
[core]
project = <project_ID>
出力例:
[core]
project = qwiklabs-gcp-44776a13dea667a6
注: Google Cloud における gcloud
ドキュメントの全文については、gcloud CLI の概要ガイド をご覧ください。
リージョンとゾーンについて
一部の Compute Engine リソースは、リージョンまたはゾーンに属します。リージョンとは、リソースを実行できる特定の地理的位置です。各リージョンには、1 つまたは複数のゾーンがあります。たとえば、リージョン us-central1 は米国中部のリージョンを指し、ゾーン us-central1-a
、us-central1-b
、us-central1-c
、us-central1-f
が含まれています。
リージョン
ゾーン
米国西部
us-west1-a、us-west1-b
米国中部
us-central1-a、us-central1-b、us-central1-d、us-central1-f
米国東部
us-east1-b、us-east1-c、us-east1-d
西ヨーロッパ
europe-west1-b、europe-west1-c、europe-west1-d
東アジア
asia-east1-a、asia-east1-b、asia-east1-c
ゾーン内にあるリソースをゾーンリソースと呼びます。仮想マシン インスタンスと永続ディスクはゾーンに属します。永続ディスクを仮想マシン インスタンスにアタッチするには、両方のリソースを同じゾーン内に配置する必要があります。同様に、インスタンスに静的 IP アドレスを割り当てるには、インスタンスが静的 IP と同じリージョンに存在している必要があります。
Compute Engine ページのリージョンとゾーンのドキュメント で、リージョンとゾーンの詳細と一覧をご確認ください。
リージョンとゾーンを設定する
Cloud Shell で次の gcloud
コマンドを実行して、ラボのデフォルトのリージョンとゾーンを設定します。
gcloud config set compute/zone "{{{project_0.default_zone | Zone}}}"
export ZONE=$(gcloud config get compute/zone)
gcloud config set compute/region "{{{project_0.default_region | Region}}}"
export REGION=$(gcloud config get compute/region)
タスク 1. Cloud Shell でカスタム ネットワークを作成する
taw-custom-network
というネットワークを作成し、--subnet-mode custom
フラグを使用して、このネットワークに独自のサブネットワークを追加できるようにオプションを定義します。
gcloud compute networks create taw-custom-network --subnet-mode custom
出力:
NAME MODE IPV4_RANGE GATEWAY_IPV4
taw-custom-network custom
このネットワーク上のインスタンスは、ファイアウォール ルールが作成されるまでアクセスできません。
たとえば、以下を実行して、インスタンス間のすべての内部トラフィック、SSH、RDP、ICMP を許可できます。
$ gcloud compute firewall-rules create --network taw-custom-network --allow tcp,udp,icmp --source-ranges
$ gcloud compute firewall-rules create --network taw-custom-network --allow tcp:22,tcp:3389,icmp
次に、新しいカスタム ネットワークにサブネットを 3 つ作成します。各コマンドで、サブネットが属するリージョンとネットワークを指定します。
IP 接頭辞を指定して、subnet- を作成します。
gcloud compute networks subnets create subnet-{{{project_0.default_region | Region}}} \
--network taw-custom-network \
--region {{{project_0.default_region | Region}}} \
--range 10.0.0.0/16
出力:
Created [https://www.googleapis.com/compute/v1/projects/cloud-network-module-101/regions/{{{project_0.default_region | Region}}}/subnetworks/subnet-{{{project_0.default_region | Region}}}].
NAME REGION NETWORK RANGE
subnet-{{{project_0.default_region | Region}}} {{{project_0.default_region | Region}}} taw-custom-network 10.0.0.0/16
IP 接頭辞を指定して、subnet- を作成します。
gcloud compute networks subnets create subnet-{{{project_0.default_region_2 | Region}}} \
--network taw-custom-network \
--region {{{project_0.default_region_2 | Region}}} \
--range 10.1.0.0/16
出力:
Created [https://www.googleapis.com/compute/v1/projects/cloud-network-module-101/regions/{{{project_0.default_region_2 | Region}}}/subnetworks/subnet-{{{project_0.default_region_2 | Region}}}].
NAME REGION NETWORK RANGE
subnet-{{{project_0.default_region_2 | Region}}} {{{project_0.default_region_2 | Region}}} taw-custom-network 10.1.0.0/16
IP 接頭辞を指定して、subnet- を作成します。
gcloud compute networks subnets create subnet-{{{project_0.default_region_3 | Region}}} \
--network taw-custom-network \
--region {{{project_0.default_region_3 | Region}}} \
--range 10.2.0.0/16
出力:
Created [https://www.googleapis.com/compute/v1/projects/cloud-network-module-101/regions/{{{project_0.default_region_3 | Region}}}/subnetworks/subnet-{{{project_0.default_region_3 | Region}}}].
NAME REGION NETWORK RANGE
subnet-{{{project_0.default_region_2 | Region}}} {{{project_0.default_region_2 | Region}}} taw-custom-network 10.2.0.0/16
ネットワークを一覧表示します。
gcloud compute networks subnets list \
--network taw-custom-network
出力:
NAME REGION NETWORK RANGE
subnet-{{{project_0.default_region_3 | Region}}} {{{project_0.default_region_3 | Region}}} taw-custom-network 10.1.0.0/16
subnet-{{{project_0.default_region_2 | Region}}} {{{project_0.default_region_2 | Region}}} taw-custom-network 10.2.0.0/16
subnet-{{{project_0.default_region | Region}}} {{{project_0.default_region | Region}}} taw-custom-network 10.0.0.0/16
カスタム ネットワークとサブネットワークの作成
この時点で、ネットワークには、インターネットへのルートと作成した各インスタンスへのルートが用意されています。ただし、インスタンスへのアクセスを許可するファイアウォール ルールが存在しないため、他のインスタンスからのものも含め、アクセスは許可されません。
アクセスを許可するには、ファイアウォール ルール を作成する必要があります。
タスク 2. ファイアウォール ルールを追加する
仮想マシン(VM)インスタンスへのアクセスを許可するには、ファイアウォール ルールを適用する必要があります。ファイアウォール ルールを VM インスタンスに適用するには、ネットワーク タグ を使用します。
ネットワーク タグは、VM インスタンスのグループ全体でファイアウォール ルールを管理するための強力なツールです。たとえば、ウェブサイトを運用する VM クラスタがある場合、個々のインスタンスごとにファイアウォール ルールを手動で設定する必要はなく、関連するすべての VM に「web-server」といったタグを付与するだけで、そのタグを持つインスタンスへの HTTP トラフィックを許可するファイアウォール ルールを作成できます。このアプローチにより、ファイアウォール管理が簡素化されるだけでなく、タグベースのルールを更新することでアクセス制御を柔軟かつ迅速に調整できるようになります。
注: タグはメタデータ サーバーにも反映されるため、インスタンス上で実行中のアプリケーションにも使用できます。
まず、HTTP インターネット リクエストを許可するためにファイアウォールを開いてから、ファイアウォール ルールを追加します。
Cloud Shell を使用してファイアウォール ルールを追加する
次に、taw-custom-network
用に nw101-allow-http
というファイアウォール ルールを追加します。これは、http
タグを持つネットワーク内の VM にのみ適用されます。
次のコマンドを実行してファイアウォール ルールを作成します。
gcloud compute firewall-rules create nw101-allow-http \
--allow tcp:80 --network taw-custom-network --source-ranges 0.0.0.0/0 \
--target-tags http
出力:
追加のファイアウォール ルールを作成する
ICMP、内部通信、SSH、RDP を許可するファイアウォール ルールを追加で作成します。
次のコマンドを使用して、さらにファイアウォール ルールを作成します。
gcloud compute firewall-rules create "nw101-allow-icmp" --allow icmp --network "taw-custom-network" --target-tags rules
gcloud compute firewall-rules create "nw101-allow-internal" --allow tcp:0-65535,udp:0-65535,icmp --network "taw-custom-network" --source-ranges "10.0.0.0/16","10.2.0.0/16","10.1.0.0/16"
gcloud compute firewall-rules create "nw101-allow-ssh" --allow tcp:22 --network "taw-custom-network" --target-tags "ssh"
gcloud compute firewall-rules create "nw101-allow-rdp" --allow tcp:3389 --network "taw-custom-network"
コンソールを使用してネットワーク内のファイアウォール ルールを確認します。次のようになります。
注: ネットワーク コンソールに表示されるルートについて
Google Cloud ネットワーキングでは、サブネットワーク間で、またはインターネットにパケットを振り向けるためにルートを使用します。ネットワーク内にサブネットワークが新規に作成(または事前に作成)されると、サブネットワーク間でのパケットのルーティングを可能にするために、リージョンごとに自動的にルートが作成されます。これらのルートは変更できません。
ただし、インスタンス、VPN ゲートウェイ、デフォルトのインターネット ゲートウェイにトラフィックを送信するために、追加ルートを作成することができます。このルートは、希望のネットワーク アーキテクチャに合わせて変更できます。ルートとファイアウォールは連携してトラフィックを送信先に届けます。
[進行状況を確認 ] をクリックして、目標に沿って進んでいることを確認します。
ファイアウォール ルールの作成
ネットワーク内に VM を作成するときは、適切なファイアウォール ルールに対応するタグを VM に付けます。ファイアウォール ルールにより、VM へのインターネット トラフィックが許可され、VM がネットワーク経由で通信できるようになります。
お疲れさまでした
gcloud
コマンドを使用してネットワークを作成し、異なるリージョンに 3 つのサブネットワークを作成し、さまざまなファイアウォール ルールを適用して VM へのアクセスを許可しました。
Google Cloud トレーニングと認定資格
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラス では、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格 を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
マニュアルの最終更新日: 2025 年 1 月 17 日
ラボの最終テスト日: 2024 年 5 月 14 日
Copyright 2025 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。