
始める前に
- ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
- ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
- 画面左上の [ラボを開始] をクリックして開始します
Create the VM instance
/ 30
Create a Cloud Storage bucket and Enable Private Google Access
/ 40
Configure a Cloud NAT gateway
/ 30
ネットワーク エンジニアやソリューション アーキテクトの方は、ネットワーク アーキテクチャのセキュリテイやプライバシーの強化が必要になる場面を経験するかもしれません。たとえば、外部ネットワーク、もしくは公共のインターネットへの接続を開始するために特定のリソースが必要だが、プライベート リソースにアクセスしようとする不正な接続は拒否したいといった場面です。
AWS では、ユーザーがサービスとリソース(EC2 インスタンスなど)への接続を許可する際にきめ細かく制御できるように、さまざまな戦略を設定します。
以上の内容を踏まえると、Google Cloud で作業する際に以下のような疑問を持たれるかもしれません。
それでは、Google Cloud のネットワーク アーキテクチャのセキュリティを確保する方法を学んでいきましょう。
このラボでは、外部 IP アドレスを設定していない VM インスタンスに対して、プライベート Google アクセスと Cloud NAT を実装します。その後、Google の API およびサービスのパブリック IP アドレスへのアクセスと、その他のインターネット接続を検証します。
外部 IP アドレスを設定していない VM インスタンスは、外部ネットワークから隔離されています。Cloud NAT を使用すると、これらのインスタンスがインターネットにアクセスして、更新、パッチ適用、場合によってはブートストラッピングを実行することが可能になります。Cloud NAT はマネージド サービスとして高可用性を実現します。その際にユーザーによる管理や介入は必要ありません。
このラボでは、次のタスクの実行方法について学びます。
各ラボでは、新しい Google Cloud プロジェクトとリソースセットを一定時間無料で利用できます。
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側の [ラボの詳細] パネルには、以下が表示されます。
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。
ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。
[ラボの詳細] パネルでもユーザー名を確認できます。
[次へ] をクリックします。
以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。
[ラボの詳細] パネルでもパスワードを確認できます。
[次へ] をクリックします。
その後次のように進みます。
その後、このタブで Google Cloud コンソールが開きます。
いくつかのファイアウォール ルールを含む VPC ネットワークと、外部 IP アドレスが設定されていない VM インスタンスを作成し、IAP トンネルを使用してそのインスタンスに接続します。
まず、VM インスタンス用の VPC ネットワークと、SSH 接続を許可するファイアウォール ルールを作成します。
Cloud コンソールのナビゲーション メニュー()で [VPC ネットワーク] > [VPC ネットワーク] の順にクリックします。
[VPC ネットワークを作成] をクリックします。
[名前] に「privatenet」と入力します。
[サブネット] で [カスタム] をクリックします。
[新しいサブネット] で、次のように指定し、残りの設定はデフォルトのままにします。
プロパティ | 値(値を入力するか、指定されたオプションを選択) |
---|---|
名前 | privatenet-us |
リージョン | |
IPv4 アドレス範囲 | 10.130.0.0/20 |
[完了] をクリックします。
[作成] をクリックし、ネットワークが作成されるまで待ちます。
左側のペインで、[ファイアウォール] をクリックします。
[ファイアウォール ルールを作成] をクリックします。
次のように指定し、残りの設定はデフォルトのままにします。
プロパティ | 値(値を入力するか、指定されたオプションを選択) |
---|---|
名前 | privatenet-allow-ssh |
ネットワーク | privatenet |
ターゲット | ネットワーク上のすべてのインスタンス |
ソースフィルタ | IPv4 範囲 |
送信元 IPv4 範囲 | 35.235.240.0/20 |
プロトコルとポート | 指定したプロトコルとポート |
[TCP] の場合、チェックボックスをクリックし、ポート「22」を指定します。
[作成] をクリックします。
Cloud コンソールのナビゲーション メニュー()で、[Compute Engine] > [VM インスタンス] をクリックします。
[インスタンスを作成] をクリックします。
[マシンの構成] ページで、次の設定を指定します。残りの設定はデフォルトのままにします。
プロパティ | 値(値を入力するか、指定されたオプションを選択) |
---|---|
名前 | vm-internal |
リージョン | |
ゾーン | |
シリーズ | E2 |
マシンタイプ | e2-medium(2 個の vCPU、4 GB メモリ) |
[OS とストレージ] をクリックします。
表示されるイメージが「Debian GNU/Linux 12(bookworm)」でない場合は、[変更] をクリックして [Debian GNU/Linux 12(bookworm)] を選択し、[選択] をクリックします。
[ネットワーキング] をクリックします。
[ネットワーク インターフェース] で、次の値を指定してネットワーク インターフェースを編集します。
プロパティ | 値(値を入力するか、指定されたオプションを選択) |
---|---|
ネットワーク | privatenet |
サブネットワーク | privatenet-us |
外部 IPv4 アドレス | なし |
[進行状況を確認] をクリックして、目標に沿って進行していることを確認します。
vm-internal には外部 IP アドレスが設定されていないので、これは動作しないはずです。
ping
コマンドが完了するのを待ちます。外部 IP アドレスが設定されていない VM インスタンスでプライベート Google アクセスを使用すると、Google の API およびサービスの外部 IP アドレスにアクセスできます。プライベート Google アクセスは、デフォルトでは VPC ネットワークで無効になっています。
Google の API およびサービスへのアクセスをテストするための Cloud Storage バケットを作成します。
Cloud コンソールのナビゲーション メニュー()で、[Cloud Storage] > [バケット] をクリックします。
[作成] をクリックします。
次のように指定し、残りの設定はデフォルトのままにします。
プロパティ | 値(値を入力するか、指定されたオプションを選択) |
---|---|
名前 | グローバルに一意の名前を入力 |
ロケーション タイプ | マルチリージョン |
[作成] をクリックします。パブリック アクセスの防止を有効にするよう求められたら、その設定がオンになっていることを確認して [確認] をクリックします。 ストレージ バケットの名前をメモしておきます。
バケットの名前を環境変数に格納します。
Cloud Storage の公開バケットから自分のバケットに画像をコピーします。
Google Cloud コンソール内の画像の名前をクリックすると、プライベート Google アクセスの実装例が表示されます。
Cloud Shell には外部 IP アドレスが設定されているので、これは正常に動作するはずです。
プロンプトが表示されたら、「Y」と入力して続行します。
バケットの名前を環境変数に格納します。
プライベート Google アクセスが無効になっているため(デフォルト)、これは正常に動作しないはずです。vm-internal がトラフィックを送信できるのは VPC ネットワーク内に限られます。
プライベート Google アクセスは、サブネット レベルで有効になっています。この場合、サブネット内でプライベート IP アドレスしか設定されていないインスタンスは、デフォルト ルート(0.0.0.0/0)を通じて Google の API およびサービスにトラフィックを送信できます。このとき、デフォルト インターネット ゲートウェイへのネクストホップを使用します。
[進行状況を確認] をクリックして、目標に沿って進行していることを確認します。
vm-internal のサブネットでプライベート Google アクセスが有効化されているため、これは正常に動作するはずです。
vm-internal は、外部 IP アドレスがなくても Google の特定の API およびサービスにアクセスできるようになりましたが、更新やパッチ適用のためにインターネットにアクセスすることはできません。Cloud NAT ゲートウェイを構成すると、vm-internal からインターネットに接続できるようになります。
出力の最後は次のように表示されます(出力例です)。
Cloud Shell には外部 IP アドレスが設定されているので、これは正常に動作するはずです。
vm-internal がアクセスできるのは Google の API およびサービスだけであるため、これは Google Cloud パッケージでのみ正常に動作するはずです。
Cloud NAT はリージョン リソースです。範囲を限定せずリージョン内の全サブネットのトラフィックを許可する構成のほか、リージョン内の特定のサブネットのみを許可する構成、プライマリ CIDR やセカンダリ CIDR の特定範囲のみを許可する構成も可能です。
Google Cloud コンソールのタイトルバーにある検索フィールドに「ネットワーク サービス」と入力し、[プロダクトとページ] セクションの [ネットワーク サービス] をクリックします。
[ネットワーク サービス] ページで、[ネットワーク サービス] の横にある固定アイコンをクリックします。
[Cloud NAT] をクリックします。
[開始] をクリックして NAT ゲートウェイを構成します。
以下を指定します。
プロパティ | 値(値を入力するか、指定されたオプションを選択) |
---|---|
ゲートウェイの名前 | nat-config |
ネットワーク | privatenet |
リージョン |
[Cloud Router] で、[新しいルーターを作成] を選択します。
[名前] に「nat-router」と入力します。
[作成] をクリックします。
[進行状況を確認] をクリックして、目標に沿って進行していることを確認します。
NAT 構成が VM に反映されるまで最長で 3 分ほどかかります。少なくとも 1 分待ってからもう一度インターネットにアクセスしてみてください。
出力の最後は次のように表示されます(出力例です)。
vm-internal で NAT ゲートウェイを使用しているため、これは正常に動作するはずです。
Cloud NAT ロギングを使用すると、Cloud NAT の接続とエラーをログに記録できます。Cloud NAT ロギングを有効にすると、次のシナリオごとに 1 つのログエントリを生成できます。
両方のイベントを記録するか、一方だけを記録するかを選べます。作成されたログは Cloud Logging に送信されます。
ロギングが有効になっている場合、収集されたすべてのログはデフォルトで Cloud Logging に送信されます。特定のログのみが送信されるように、フィルタすることもできます。
これらの値は、Cloud NAT ゲートウェイを作成する際や作成済みの Cloud NAT ゲートウェイを編集する際に指定できます。以下の手順では、既存の Cloud NAT ゲートウェイのロギングを有効にする方法を説明します。
Google Cloud コンソールのナビゲーション メニュー()で、[ネットワーク サービス] > [Cloud NAT] の順にクリックします。
nat-config
ゲートウェイをクリックしてから、[編集] をクリックします。
[高度な構成] プルダウンをクリックして、そのセクションを開きます。
[ロギング] で [変換とエラー] を選択し、[保存] をクリックします。
nat-config
ゲートウェイの Cloud NAT ロギングを設定したので、ログを表示できる場所を確認しましょう。
nat-config
をクリックして詳細を表示します。[ログ エクスプローラで表示] をクリックします。
新しいタブが開き、ログ エクスプローラが表示されます。
ゲートウェイに対してこの機能を有効にしたばかりなので、ログはまだ記録されていません。
前述のとおり、Cloud NAT のログは次のシーケンスに対して生成されます。
ホストを内部 VM に再び接続して、ログが生成されるかどうかを確認しましょう。
出力は次の例のようになります(出力例)。
この接続を開始したことで、ログに新しいエントリが記録されたかどうかを確認しましょう。
内部 VM への接続後に生成された 2 つの新しいログが表示されます。
ログを見ると、接続先の VPC ネットワークと使用した接続方法の詳細がわかります。さまざまなラベルや詳細を展開して、内容を確認してください。
外部 IP アドレスが設定されていないインスタンス vm-internal を作成し、IAP トンネルを使ってこのインスタンスに安全に接続できました。次に、プライベート Google アクセスの有効化と Cloud NAT ゲートウェイの構成を行って、vm-internal が Google の API およびサービス、ならびにその他のパブリック IP アドレスに接続できることを確認しました。
外部 IP アドレスを設定していない VM インスタンスは、外部ネットワークから隔離されています。Cloud NAT を使用すると、これらのインスタンスがインターネットにアクセスして、更新、パッチ適用、場合によってはブートストラッピングを実行することが可能になります。Cloud NAT はマネージド サービスとして高可用性を実現します。その際にユーザーによる管理や介入は必要ありません。
Cloud IAP は、VM インスタンスに接続するときに既存のプロジェクトのロールと権限を使用します。デフォルトでは、インスタンスのオーナーが IAP で保護されたトンネル ユーザーのロールを持つ唯一のユーザーです。
他のユーザーが IAP トンネルを使用して VM にアクセスできるようにする方法については、Cloud アーキテクチャ センターの追加のユーザーにアクセスを許可するをご覧ください。
Google Cloud には、AWS の場合と同様に、ネットワークにプライバシーとセキュリティを実装するためのオプションが用意されています。
ラボが完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Google Cloud Skills Boost から削除され、アカウントの情報も消去されます。
ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。
星の数は、それぞれ次の評価を表します。
フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。
フィードバックやご提案の送信、修正が必要な箇所をご報告いただく際は、[サポート] タブをご利用ください。
Copyright 2020 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
1 回に 1 つのラボ
既存のラボをすべて終了して、このラボを開始することを確認してください