ラボの設定手順と要件
アカウントと進行状況を保護します。このラボを実行するには、常にシークレット ブラウジング ウィンドウとラボの認証情報を使用してください。

VPC ネットワークへのアクセス制御

ラボ 1時間 30分 universal_currency_alt クレジット: 5 show_chart 入門
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
このコンテンツはまだモバイル デバイス向けに最適化されていません。
快適にご利用いただくには、メールで送信されたリンクを使用して、デスクトップ パソコンでアクセスしてください。

概要

このラボでは、2 つの nginx ウェブサーバーを作成し、タグ付きのファイアウォール ルールを使用して、ウェブサーバーへの外部 HTTP アクセスを制御します。そして IAM のロールとサービス アカウントについて確認します。

目標

このラボでは、次のタスクの実行方法について学びます。

  • nginx ウェブサーバーを作成する
  • タグ付きのファイアウォール ルールを作成する
  • IAM ロールでサービス アカウントを作成する
  • ネットワーク管理者とセキュリティ管理者のロールの権限を確認する

設定と要件

各ラボでは、新しい Google Cloud プロジェクトとリソースセットを一定時間無料で利用できます。

  1. Qwiklabs にシークレット ウィンドウでログインします。

  2. ラボのアクセス時間(例: 1:15:00)に注意し、時間内に完了できるようにしてください。
    一時停止機能はありません。必要な場合はやり直せますが、最初からになります。

  3. 準備ができたら、[ラボを開始] をクリックします。

  4. ラボの認証情報(ユーザー名パスワード)をメモしておきます。この情報は、Google Cloud Console にログインする際に使用します。

  5. [Google Console を開く] をクリックします。

  6. [別のアカウントを使用] をクリックし、このラボの認証情報をコピーしてプロンプトに貼り付けます。
    他の認証情報を使用すると、エラーが発生したり、料金の請求が発生したりします。

  7. 利用規約に同意し、再設定用のリソースページをスキップします。

タスク 1. ウェブサーバーを作成する

default VPC ネットワーク内に 2 つのウェブサーバー(bluegreen)を作成します。次に、ウェブサーバー上に nginx をインストールし、2 つのサーバーを区別できるようにスタートページを変更します。

blue サーバーを作成する

ネットワーク タグを指定して blue サーバーを作成します。

  1. Google Cloud コンソールのナビゲーション メニューナビゲーション メニュー アイコン)で、[Compute Engine] > [VM インスタンス] の順にクリックします。

  2. [インスタンスを作成] をクリックします。

  3. 次のように指定し、残りの設定はデフォルトのままにします。

    プロパティ 値(値を入力するか、指定されたオプションを選択)
    名前 blue
    リージョン
    ゾーン
  4. [詳細オプション] をクリックします。

  5. [ネットワーキング] をクリックします。

  6. [ネットワーク タグ] に「web-server」と入力します。

注: ネットワーク タグは、特定のファイアウォール ルールとネットワーク ルートが適用される VM インスタンスの識別に使用されます。次のタスクで、web-server タグが付いた VM インスタンスに HTTP アクセスを許可するファイアウォール ルールを作成します。

あるいは、[HTTP トラフィックを許可する] チェックボックスをオンにすることもできます。この場合、このインスタンスに http-server のタグが付けられ、「tcp:80」のタグ付きファイアウォール ルールが自動的に作成されます。
  1. [作成] をクリックします。

green サーバーを作成する

ネットワーク タグを指定せずに green サーバーを作成します。

  1. [インスタンスを作成] をクリックします。

  2. 次のように指定し、残りの設定はデフォルトのままにします。

    プロパティ 値(値を入力するか、指定されたオプションを選択)
    名前 green
    リージョン
    ゾーン
  3. [作成] をクリックします。

nginx をインストールしてスタートページをカスタマイズする

nginx を両方の VM インスタンスにインストールし、2 つのサーバーを区別できるようにスタートページを変更します。

  1. blue の [SSH] をクリックし、ターミナルを起動して接続します。
  2. 次のコマンドを実行して、nginx をインストールします。
sudo apt-get install nginx-light -y
  1. 次のコマンドを実行して、nano エディタでスタートページを開きます。
sudo nano /var/www/html/index.nginx-debian.html
  1. <h1>Welcome to nginx!</h1> 行を <h1>Welcome to the blue server!</h1> に置き換えます。
  2. Ctrl+OEnterCtrl+X キーの順に押します。
  3. 次のコマンドを実行して、変更を確認します。
cat /var/www/html/index.nginx-debian.html

出力に次の内容が含まれているはずです。

... <h1>Welcome to the blue server!</h1> <p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p> ...
  1. blue の SSH ターミナルを閉じます。
exit

green サーバーにも同じ手順を繰り返します。

  1. green で [SSH] をクリックし、ターミナルを起動して接続します。
  2. 次のコマンドを実行して、nginx をインストールします。
sudo apt-get install nginx-light -y
  1. 次のコマンドを実行して、nano エディタでスタートページを開きます。
sudo nano /var/www/html/index.nginx-debian.html
  1. <h1>Welcome to nginx!</h1> 行を <h1>Welcome to the green server!</h1> に置き換えます。
  2. Ctrl+OEnterCtrl+X キーの順に押します。
  3. 次のコマンドを実行して、変更を確認します。
cat /var/www/html/index.nginx-debian.html

出力に次の内容が含まれているはずです。

... <h1>Welcome to the green server!</h1> <p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p> ...
  1. green の SSH ターミナルを閉じます。
exit

[進行状況を確認] をクリックして、目標に沿って進行していることを確認します。 ウェブサーバーを作成する

タスク 2. ファイアウォール ルールを作成する

タグ付きのファイアウォール ルールを作成して、HTTP 接続をテストします。

タグ付きのファイアウォール ルールを作成する

web-server ネットワーク タグが付いた VM インスタンスに適用されるファイアウォール ルールを作成します。

  1. Cloud Console のナビゲーション メニューで、[VPC ネットワーク] > [ファイアウォール] をクリックします。
  2. default-allow-internal ファイアウォール ルールが存在しています。
注: default-allow-internal ファイアウォール ルールは、default ネットワーク内のすべてのプロトコルまたはポートへのトラフィックを許可します。ネットワーク タグ web-server を使用して、このネットワークの外部から blue サーバーへのトラフィックのみを許可するファイアウォール ルールを作成します。
  1. [ファイアウォール ルールを作成] をクリックします。

  2. 次のように指定し、残りの設定はデフォルトのままにします。

    プロパティ 値(値を入力するか、指定されたオプションを選択)
    名前 allow-http-web-server
    ネットワーク default
    ターゲット 指定されたターゲットタグ
    ターゲットタグ web-server
    ソースフィルタ IPv4 範囲
    送信元 IPv4 範囲 0.0.0.0/0
    プロトコルとポート 指定したプロトコルとポート
  3. [tcp] にポート 80 を指定します。

注: すべてのネットワークを指定するために、[送信元 IPv4 範囲] には /0 を含めます。
  1. [作成] をクリックします。

test-vm を作成する

gcloud コマンドラインを使用して test-vm インスタンスを作成します。

  1. Google Cloud コンソールで、Cloud Shell をアクティブにするアイコン(Cloud Shell をアクティブにするアイコン)をクリックします。
  2. プロンプトが表示されたら、[続行] をクリックします。
  3. 次のコマンドを実行して test-vm インスタンスを作成します。
gcloud compute instances create test-vm --machine-type=e2-medium --subnet=default --zone={{{ project_0.default_zone | "filled at lab start" }}}

出力は次のようになります(ゾーンは異なる場合があります)。

NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS test-vm us-central1-a e2-medium 10.142.0.4 35.237.134.68 RUNNING 注: VM インスタンスは、Cloud コンソールまたは gcloud コマンドラインから簡単に作成できます。

[進行状況を確認] をクリックして、目標に沿って進行していることを確認します。 ファイアウォール ルールとインスタンスを作成する

HTTP 接続をテストする

test-vm から、bluegreen の内部 IP アドレスと外部 IP アドレスに対して curl コマンドを実行します。

  1. Cloud Console のナビゲーション メニューで、[Compute Engine] > [VM インスタンス] の順にクリックします。
    bluegreen の内部 IP アドレスと外部 IP アドレスを確認します。
  2. test-vm で [SSH] をクリックし、ターミナルを起動して接続します。
  3. blue の内部 IP アドレスへの HTTP 接続をテストするために、blue の内部 IP を入力して次のコマンドを実行します。
curl <blue の内部 IP をこちらに入力>

Welcome to the blue server! ヘッダーが表示されます。

  1. green の内部 IP アドレスへの HTTP 接続をテストするために、green の内部 IP を入力して次のコマンドを実行します。
curl <green の内部 IP をこちらに入力>

Welcome to the green server! ヘッダーが表示されます。

注: 内部 IP アドレスを使用して両方のサーバーに HTTP アクセスすることができました。test-vm はウェブサーバーと同じ VPC ネットワーク(default ネットワーク)上にあるため、「tcp:80」の接続は default-allow-internal ファイアウォール ルールによって許可されます。
  1. blue の外部 IP アドレスへの HTTP 接続をテストするために、blue の外部 IP を入力して次のコマンドを実行します。
curl <blue の外部 IP をこちらに入力>

Welcome to the blue server! ヘッダーが表示されます。

  1. green の外部 IP アドレスへの HTTP 接続をテストするために、green の外部 IP を入力して次のコマンドを実行します。
curl <green の外部 IP をこちらに入力> 注: これは正常に完了しません。
  1. Ctrl+C キーを押して HTTP リクエストを停止します。
注: allow-http-web-serverweb-server タグが付いた VM インスタンスにのみ適用されるため、外部 IP アドレスに HTTP アクセスできるのは想定どおり blue サーバーのみです。
  1. ブラウザから同じ動作を確認するには、新しいタブを開いて http://[サーバーの外部 IP] にアクセスします。

タスク 3. ネットワーク管理者とセキュリティ管理者のロールについて調べる

Cloud IAM を使用すると、特定のリソースに対するアクションの実行を、承認を受けたユーザーのみに許可できます。これはクラウドのリソースを集約して可視化し、管理するうえで役立ちます。次のロールは、単一プロジェクト ネットワーキングと組み合わせて使用され、各 VPC ネットワークへの管理者権限を個別に制御します。

  • ネットワーク管理者: ネットワーキング リソース(ファイアウォール ルールと SSL 証明書を除く)を作成、変更、削除するための権限。
  • セキュリティ管理者: ファイアウォール ルールと SSL 証明書を作成、変更、削除するための権限。

これらのロールをサービス アカウントに適用することでロールについて確認していきます。サービス アカウントは、個々のエンドユーザーではなく VM インスタンスに属する特別な Google アカウントです。ユーザーを新たに作成せずに、サービス アカウントの利用を test-vm に許可して、ネットワーク管理者セキュリティ管理者のロールの権限を確認します。

現在の権限を確認する

現在、test-vm では Compute Engine のデフォルトのサービス アカウントを使用しています。このアカウントは、gcloud コマンドライン ツールと Cloud Console で作成されるすべてのインスタンスで有効です。

test-vm で利用可能なファイアウォール ルールを表示または削除してみます。

  1. test-vm インスタンスの SSH ターミナルに戻ります。
  2. 次のコマンドを実行して、利用可能なファイアウォール ルールのリストを取得してみます。
gcloud compute firewall-rules list

出力は次のようになります。

ERROR: (gcloud.compute.firewall-rules.list) Some requests did not succeed: - Insufficient Permission 注: これは正常に完了しません。
  1. 次のコマンドを実行して、allow-http-web-server ファイアウォール ルールを削除してみます。
gcloud compute firewall-rules delete allow-http-web-server
  1. 続行するかどうかを尋ねられたら「Y」と入力します。

出力は次のようになります。

ERROR: (gcloud.compute.firewall-rules.delete) Could not fetch resource: - Insufficient Permission 注: これは正常に完了しません。 注: Compute Engine のデフォルトのサービス アカウントには、ファイアウォール ルールのリスト取得または削除を行うための適切な権限がありません。これは適切なロールがない他のユーザーにも当てはまります。

サービス アカウントを作成する

サービス アカウントを作成してネットワーク管理者のロールを適用します。

  1. Cloud Console のナビゲーション メニューナビゲーション メニュー アイコン)で、[IAM と管理] > [サービス アカウント] の順にクリックします。
    Compute Engine のデフォルトのサービス アカウントが表示されます。
  2. [サービス アカウントを作成] をクリックします。
  3. [サービス アカウント名] に「Network-admin」と入力します。
  4. [作成して続行] をクリックします。
  5. [ロールを選択] で、[Compute Engine] > [Compute ネットワーク管理者] を選択します。
  6. [続行] をクリックします。
  7. [完了] をクリックします。
注: ここで、秘密鍵を含むファイルを作成してダウンロードすることもできますが、今回は、このまま test-vm を停止して、このサービス アカウントの使用を許可します。

test-vm に許可を与える

Network-admin サービス アカウントを使用できるよう test-vm に許可を与えます。

  1. ナビゲーション メニューで、[Compute Engine] > [VM インスタンス] の順にクリックします。
  2. test-vm インスタンスの名前をクリックして、[VM インスタンスの詳細] ページを開きます。
  3. [停止] をクリックし、インスタンスを停止することを確認します。インスタンスが停止するまで次のステップに進まないでください。
注: インスタンスが停止していないとサービス アカウントを編集できません。
  1. インスタンスが停止したら、[編集] をクリックします。

  2. [サービス アカウント] で [Network-admin] を選択します。

  3. [アクセス スコープ] で [API ごとにアクセス権を設定] を選択し、[Compute Engine] プルダウンで [読み取り / 書き込み] オプションを選択します。

  4. [保存] をクリックし、インスタンスが更新されるまで待ちます。

  5. [開始 / 再開] をクリックし、インスタンスを起動することを確認します。

  6. [VM インスタンス] ページに戻り、test-vm のステータスが実行中に変わるまで待ちます。

  7. test-vm インスタンスの [SSH] をクリックします。

権限を確認する

  1. 次のコマンドを実行して、利用可能なファイアウォール ルールのリストを取得してみます。
gcloud compute firewall-rules list

出力は次のようになります。

NAME NETWORK DIRECTION PRIORITY ALLOW DENY allow-http-web-server default INGRESS 1000 tcp:80 default-allow-icmp default INGRESS 65534 icmp default-allow-internal default INGRESS 65534 all default-allow-rdp default INGRESS 65534 tcp:3389 default-allow-ssh default INGRESS 65534 tcp:22

コマンドは正常に完了します。

  1. 次のコマンドを実行して、allow-http-web-server ファイアウォール ルールを削除してみます。
gcloud compute firewall-rules delete allow-http-web-server
  1. 続行するかどうかを尋ねられたら「Y」と入力します。

出力は次のようになります。

ERROR: (gcloud.compute.firewall-rules.delete) Could not fetch resource: - Required 'compute.firewalls.delete' permission for 'projects/[PROJECT_ID]/global/firewalls/allow-http-web-server' 注: これは正常に完了しません。 注: 想定したとおり、ネットワーク管理者のロールでは、ファイアウォール ルールのリスト取得は可能ですが、変更や削除はできません。

サービス アカウントを更新して権限を確認する

Network-admin サービス アカウントにセキュリティ管理者のロールを指定してアカウントを更新します。

  1. Cloud Console のナビゲーション メニューナビゲーション メニュー アイコン)で、[IAM と管理] > [IAM] の順にクリックします。
  2. Network-admin アカウントを見つけます。このアカウントは [名前] 列で特定します。
  3. Network-admin アカウントの鉛筆アイコンをクリックします。
  4. [ロール] を [Compute Engine] > [Compute セキュリティ管理者] に変更します。
  5. [保存] をクリックします。
  6. test-vm インスタンスの SSH ターミナルに戻ります。
  7. 次のコマンドを実行して、利用可能なファイアウォール ルールのリストを取得してみます。
gcloud compute firewall-rules list

出力は次のようになります。

NAME NETWORK DIRECTION PRIORITY ALLOW DENY allow-http-web-server default INGRESS 1000 tcp:80 default-allow-icmp default INGRESS 65534 icmp default-allow-internal default INGRESS 65534 all default-allow-rdp default INGRESS 65534 tcp:3389 default-allow-ssh default INGRESS 65534 tcp:22

コマンドは正常に完了します。

  1. 次のコマンドを実行して、allow-http-web-server ファイアウォール ルールを削除してみます。
gcloud compute firewall-rules delete allow-http-web-server
  1. 続行するかどうかを尋ねられたら「Y」と入力します。

出力は次のようになります。

Deleted [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-00e186e4b1cec086/global/firewalls/allow-http-web-server].

コマンドは正常に完了します。

注: 想定したとおり、セキュリティ管理者のロールでは、ファイアウォール ルールのリスト取得と削除が可能です。

ファイアウォール ルールの削除を確認する

allow-http-web-server ファイアウォール ルールを削除したので、blue サーバーの外部 IP に HTTP アクセスできなくなったことを確認します。

  1. test-vm インスタンスの SSH ターミナルに戻ります。
  2. blue の外部 IP アドレスへの HTTP 接続をテストするために、blue の外部 IP を入力して次のコマンドを実行します。
curl <blue の外部 IP をこちらに入力> 注: これは正常に完了しません。
  1. Ctrl+C キーを押して HTTP リクエストを停止します。
注: ファイアウォール ルールに不要な変更が行われないように、セキュリティ管理者のロールは適切なユーザーやサービス アカウントに指定してください。

[進行状況を確認] をクリックして、目標に沿って進行していることを確認します。 ネットワーク管理者とセキュリティ管理者のロールについて調べる

タスク 4. まとめ

このラボでは、2 つの nginx ウェブサーバーを作成し、タグ付きのファイアウォール ルールを使用して外部 HTTP アクセスを制御しました。そして先にネットワーク管理者のロール、次にセキュリティ管理者のロールを持つサービス アカウントを作成して、これらのロールのそれぞれの権限を確認しました。

ファイアウォールと SSL 証明書を管理するセキュリティ チームと、その他のネットワーキング リソースを管理するネットワーキング チームが社内にいる場合は、セキュリティ チームにセキュリティ管理者のロール、ネットワーキング チームにネットワーク管理者のロールを付与します。

ラボを終了する

ラボが完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Google Cloud Skills Boost から削除され、アカウントの情報も消去されます。

ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。

星の数は、それぞれ次の評価を表します。

  • 星 1 つ = 非常に不満
  • 星 2 つ = 不満
  • 星 3 つ = どちらともいえない
  • 星 4 つ = 満足
  • 星 5 つ = 非常に満足

フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。

フィードバックやご提案の送信、修正が必要な箇所をご報告いただく際は、[サポート] タブをご利用ください。

Copyright 2026 Google LLC All rights reserved. Google および Google のロゴは、Google LLC の商標です。その他すべての社名および製品名は、それぞれ該当する企業の商標である可能性があります。

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名パスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボを実行するには、シークレット モードまたはシークレット ブラウジング ウィンドウを使用することをおすすめします。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。