
始める前に
- ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
- ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
- 画面左上の [ラボを開始] をクリックして開始します
Create VPC networks and instances
/ 40
Create custom ingress firewall rules
/ 30
Create a firewall rule with priority and egress firewall rule.
/ 30
このラボでは、Virtual Private Cloud(VPC)ネットワークを調査し、ネットワークとインスタンスへのアクセスを許可または拒否するファイアウォール ルールを作成します。
まず、自動 VPC ネットワークとカスタム VPC ネットワークを作成し、それらのネットワークで VPC インスタンスをいくつか作成します。default-allow-ssh ファイアウォール ルールが機能することを確認し、default-allow-ssh ファイアウォール ルールとユーザーが作成したカスタム ネットワークを比較して、カスタム ファイアウォール ルールなしで上り(内向き)が許可されないことを検証します。
デフォルトのネットワークを削除したら、ファイアウォール ルールの優先値を使用して、VM への上り(内向き)と下り(外向き)の両方のネットワーク トラフィックを許可します。
このラボでは、次の方法について学びます。
各ラボでは、新しい Google Cloud プロジェクトとリソースセットを一定時間無料で利用できます。
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側の [ラボの詳細] パネルには、以下が表示されます。
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。
ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。
[ラボの詳細] パネルでもユーザー名を確認できます。
[次へ] をクリックします。
以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。
[ラボの詳細] パネルでもパスワードを確認できます。
[次へ] をクリックします。
その後次のように進みます。
その後、このタブで Google Cloud コンソールが開きます。
Google Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。
Google Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。
Google Cloud コンソールで、右上のツールバーにある [Cloud Shell をアクティブにする] ボタンをクリックします。
[続行] をクリックします。
環境がプロビジョニングされ、接続されるまでしばらく待ちます。接続した時点で認証が完了しており、プロジェクトに各自のプロジェクト ID が設定されます。次に例を示します。
gcloud は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。
出力:
出力例:
出力:
出力例:
このタスクでは、自動 VPC ネットワークとカスタム VPC ネットワークを作成し、それらのネットワークで初期 VPC インスタンスをいくつか作成します。
次に、カスタム サブネットを持つネットワークを作成します。サブネットのプライマリ IP アドレス範囲に対して、任意のプライベート RFC 1918 CIDR ブロックを選択できます。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
このタスクでは、デフォルト ネットワークを調べて、default-allow-ssh ファイアウォール ルールが機能することを検証します。その後、default-vm-1 インスタンスとデフォルト ネットワークが不要になるので、それらを削除します。
Cloud コンソールに戻り、ファイアウォール ルールを参照します。
デフォルト ネットワークのために、次の 4 つのデフォルト ルールが作成されています。
すべてのネットワークには、コンソールに表示されない次の 2 つのルールもあることに注意してください。
default-allow-ssh ファイアウォール ルールが機能することを確認するために、デフォルト ネットワークの default-vm-1 インスタンスに SSH 接続してテストします。
ナビゲーション メニューで、[Compute Engine] > [VM インスタンス] の順にクリックして、VM インスタンスのリストを表示します。
default-vm-1 インスタンスの行で、[SSH] をクリックします。
default-allow-ssh ルールが機能していれば、インスタンスに SSH 接続できるはずです。www.google.com
に ping することで、下り(外向き)の接続をテストできます。Ctrl+C キーを押して ping を停止します。
default-vm-1 インスタンスは必要なくなったため、削除します。
ナビゲーション メニューで、[Compute Engine] > [VM インスタンス] をクリックし、[default-vm-1] インスタンスを選択して、[削除] をクリックします。
確認のボックスで [削除] をクリックします。
Cloud コンソールのナビゲーション メニューで [VPC ネットワーク] > [VPC ネットワーク] をクリックし、VPC ネットワークのリストを表示します。
デフォルトのネットワークをクリックして、ネットワークの詳細を参照します。
[VPC ネットワークの削除] をクリックします。
確認のボックスで [削除] をクリックします。
ネットワークが削除されるまで待ち、デフォルト ネットワークが [VPC ネットワーク] ページに表示されなくなったことを確認します。
このタスクでは、ユーザーが作成したネットワークを調べて、カスタム ファイアウォール ルールなしで上り(内向き)が許可されないことを検証します。
すべてのネットワークには、すべての受信トラフィックをブロックし、すべての発信トラフィックを許可するという 2 つのルール(コンソールに表示されない)があるので注意してください。デフォルト ネットワークとは異なり、ユーザーが作成したネットワークにはデフォルトで他のルールがないため、現時点では受信トラフィックが一切許可されていません。
ナビゲーション メニューで、[Compute Engine] > [VM インスタンス] の順にクリックして、VM インスタンスのリストを表示します。
mynet-vm-1 または mynet-vm-2 の行で、[SSH] をクリックします。
SSH 経由でインスタンスに接続することはできません。
次に、Cloud Shell からインスタンスへの SSH 接続を試行します。
Cloud Shell に戻るか、再度開きます。
次のコマンドを実行して、mynet-vm-2 インスタンスへの SSH 接続を試行します。
プロンプトが表示されたら、「Y
」と入力し、Enter キーを 2 回押して続行します。
このタスクでは、クライアント ホストとして Cloud Shell を使用して、インスタンスへの SSH 接続をテストします。Cloud Shell インスタンスの外部 IP アドレスは簡単に取得できます。
ただし、Cloud Shell インスタンスの IP アドレスは、クローズして再オープンした場合や、一定期間操作がなかったためリサイクルされたことによって変化する可能性があります。このラボではこれが問題となることはありません。実際のプロジェクトでは SSH クライアント ホストの IP アドレスを許可してください。これにより、問題がなくなります。
Cloud Shell に戻るか、再度開きます。
Cloud Shell インスタンスの外部 IP アドレスを取得するために、次のコマンドを実行します。
出力例(実際の IP アドレスは異なります):
このファイアウォール ルールには lab-ssh というターゲットタグも付けられ、このことは、lab-ssh タグでタグ付けされたインスタンスにのみ該当することを意味します。
次のように表示されますが、実際の IP アドレスは異なります。
このファイアウォール ルールは、lab-ssh でタグ付けされたインスタンスにのみ適用されます。現在、これはいずれのインスタンスにも適用されていません。
VPC ネットワークでは、ファイアウォール ルールはステートフルです。このため、ある方向の許可ルールによって追跡されている、開始された各接続の戻りトラフィックは、その他のルールに関係なく自動的に許可されます。
SSH 認証鍵とのネゴシエーションに数秒かかりますが、接続は成功します。これにより、ファイアウォール ルールでトラフィックが許可されることを確認できます。
「exit
」と入力して mynet-vm-2 インスタンスからログオフします。
mynet-vm-1 インスタンスに SSH 接続するには、Cloud Shell で次のコマンドを実行します。
この接続も成功します。これは、mynet-vm-1 インスタンスが同じネットワークにあり、かつ、作成したファイアウォール ルールがすべてのインスタンスへのアクセスを許可するためです。
ping コマンドは成功しません。mynet-vm-1 インスタンスと mynet-vm-2 インスタンスが同じ VPC ネットワーク内にあっても、トラフィックを許可するファイアウォール ルールがなければ、すべてのトラフィックはデフォルトでブロックされます。
必要に応じて、Ctrl+C キーを押して ping を停止します。まだ mynet-vm-1 インスタンスからログアウトしないでください。
[新しいタブを開く](+)をクリックして新しい Cloud Shell ウィンドウを開きます。
mynetwork VPC のすべてのインスタンスが相互に ping することを許可するファイアウォール ルールを追加するために、次のコマンドを実行します。
ホスト名 mynet-vm-2 がインスタンスの内部 IP アドレスに解決されています。内部 IP の先頭は 10.132.0 になります(10.132.0.2 など)。Google Cloud によって内部ホスト名が解決されます。
Ctrl+C キーを押して ping を停止します。
また、内部 IP アドレスに対して直接 ping してみることもでき、これも動作します。Ctrl+C キーを押して ping を停止します。
mynet-vm-2 の外部 IP アドレスを見つけるために、ナビゲーション メニューで [Compute Engine] > [VM インスタンス] の順にクリックします。
mynet-vm-2 をクリックし、インスタンスの外部 IP アドレスを見つけてコピーします。
mynet-vm-1 に接続された Cloud Shell セッションから、mynet-vm-2 インスタンスの外部 IP アドレスへの ping を試行します。
これは動作しません。外部 IP アドレスを ping すると、接続がインターネット ゲートウェイを通過することで、リクエストが NAT 変換されます。リクエストは、mynet-vm-1 インスタンスの外部 IP アドレスから到着するようになりました。ファイアウォール ルールは内部 IP アドレスからの ICMP リクエストのみを許可します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
このタスクでは、ICMP トラフィックを拒否するファイアウォール ルールの優先値を設定します。その後、ルールの優先値と一致しないすべてのトラフィックが拒否されることを検証します。
これまでに作成したすべてのルールは上り(内向き)許可ルールでしたので、優先値は重要ではありませんでした。ファイアウォール ルールは許可と拒否の両方にすることができます。上り(内向き)と下り(外向き)の指定のほか、0 から 65,535 までの優先値の設定が可能です。優先値を指定しないと、デフォルトは 1,000 になります。ルールは優先値に基づき、小さい値から順に評価されます。最初に一致したルールが適用されます。
qwiklabs@mynet-vm-1:~$
というプロンプトからわかります。接続していない場合は、次のコマンドを使用して再接続します。
Ctrl+C キーを押して ping を停止します。
2 番目の Cloud Shell ウィンドウに切り替えます(または新しいウィンドウを開きます)。
2 番目の Cloud Shell で、すべての IP からの ICMP トラフィックを拒否するファイアウォール上り(内向き)ルールを作成します。ここでは、優先値を 500 とします。
動作しなくなりました。この新しいルールの優先値は 500 で、許可ルールの優先値は 1,000 です。
次に、拒否ルールの優先値を 2,000 に変更します。
2000
に変更します。今度は動作します。これは拒否ルールの優先値のほうが小さくなり、許可ルールが最初に一致するルールになるためです。
このタスクでは、下り(外向き)ファイアウォール ルールを作成し、優先値を 10,000 に設定します。その後、上り(内向き)と下り(外向き)の両方のトラフィックが許可されることを検証します。
現在、VM はまだ相互に ping できます。これは、ICMP を拒否するルールの優先値が、ICMP を許可するルールよりも大きいためです。
次に、下り(外向き)ルールを試します。
10000
とします。下り(外向き)ルールの優先値が、前に作成したルールよりも大幅に大きい 10,000 に設定されていることに注意してください。
動作しなくなりました。下り(外向き)ルールが 10,000 という大幅に大きい優先値を持つにもかかわらず、依然としてトラフィックが下り(外向き)ルールによってブロックされています。これは、トラフィックが許可されるには、そのトラフィックを許可する上り(内向き)と下り(外向き)の両方のルールがある必要があるためです。上り(内向き)ルールの優先値は下り(外向き)ルールの優先値に影響しません。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
このラボでは次の作業を行いました。
ラボが完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Google Cloud Skills Boost から削除され、アカウントの情報も消去されます。
ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。
星の数は、それぞれ次の評価を表します。
フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。
フィードバックやご提案の送信、修正が必要な箇所をご報告いただく際は、[サポート] タブをご利用ください。
Copyright 2020 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
1 回に 1 つのラボ
既存のラボをすべて終了して、このラボを開始することを確認してください