arrow_back

Cloud Armor によるレート制限

ログイン 参加
700 以上のラボとコースにアクセス

Cloud Armor によるレート制限

ラボ 1時間 30分 universal_currency_alt クレジット: 1 show_chart 入門
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
700 以上のラボとコースにアクセス

GSP975

Google Cloud セルフペース ラボのロゴ

概要

Google Cloud HTTP(S) ロード バランシングは、世界中の Google のポイント オブ プレゼンス(POP)で Google ネットワークのエッジに実装されています。HTTP(S) ロードバランサを送信先とするユーザー トラフィックは、ユーザーに最も近い POP に入った後、Google のグローバル ネットワークでロードバランスされて、十分な容量がある最も近いバックエンドに送られます。

Cloud Armor の IP の許可リスト / 拒否リストを使用すると、ユーザーや悪意のあるトラフィックにできるだけ近い Google Cloud のエッジで、HTTP(S) ロードバランサへのアクセスを制限または許可できます。これにより、悪意のあるユーザーまたはトラフィックがリソースを消費したり、Virtual Private Cloud(VPC)ネットワークに侵入したりすることを防止できます。

次の図に示されるように、このラボではグローバルなバックエンドを使って HTTP ロードバランサを構成します。次に、ロードバランサのストレステストを実施し、Cloud Armor のレート制限ポリシーを追加して IP に基づく制限を適用します。

ネットワーク図

学習内容

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

  • HTTP とヘルスチェックのファイアウォール ルールを作成する
  • インスタンス テンプレートを 2 つ構成する
  • マネージド インスタンス グループを 2 つ作成する
  • HTTP ロードバランサを IPv4 と IPv6 で構成する
  • HTTP ロードバランサのストレステストを実施する
  • IP に基づいて制限する Cloud Armor レート制限ポリシーを追加する
  • VM からストレステストを実行したときにトラフィックがブロックされることを確認する

設定と要件

[ラボを開始] ボタンをクリックする前に

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。

このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モード(推奨)またはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生しないようにすることができます。
  • ラボを完了するための時間(開始後は一時停止できません)
注: このラボでは、受講者アカウントのみを使用してください。別の Google Cloud アカウントを使用すると、そのアカウントに料金が発生する可能性があります。

ラボを開始して Google Cloud コンソールにログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 左側の [ラボの詳細] ペインには、以下が表示されます。

    • [Google Cloud コンソールを開く] ボタン
    • 残り時間
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
  2. [Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。

    ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。

    {{{user_0.username | "Username"}}}

    [ラボの詳細] ペインでもユーザー名を確認できます。

  4. [次へ] をクリックします。

  5. 以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。

    {{{user_0.password | "Password"}}}

    [ラボの詳細] ペインでもパスワードを確認できます。

  6. [次へ] をクリックします。

    重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  7. その後次のように進みます。

    • 利用規約に同意してください。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

その後、このタブで Google Cloud コンソールが開きます。

注: Google Cloud のプロダクトやサービスにアクセスするには、ナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。 ナビゲーション メニュー アイコンと検索フィールド

Cloud Shell をアクティブにする

Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。

  1. Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン 「Cloud Shell をアクティブにする」アイコン をクリックします。

  2. ウィンドウで次の操作を行います。

    • Cloud Shell 情報ウィンドウで操作を進めます。
    • Cloud Shell が認証情報を使用して Google Cloud API を呼び出すことを承認します。

接続した時点で認証が完了しており、プロジェクトに各自の Project_ID が設定されます。出力には、このセッションの PROJECT_ID を宣言する次の行が含まれています。

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。

  1. (省略可)次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
gcloud auth list
  1. [承認] をクリックします。

出力:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (省略可)次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
gcloud config list project

出力:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} 注: Google Cloud における gcloud ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。

タスク 1. HTTP とヘルスチェックのファイアウォール ルールを構成する

バックエンド宛ての HTTP トラフィックと Google Cloud ヘルス チェッカーからの TCP トラフィックを許可するファイアウォール ルールを構成します。

HTTP ファイアウォール ルールを作成する

バックエンド宛ての HTTP トラフィックを許可するファイアウォール ルールを作成します。

  1. Cloud コンソールで、ナビゲーション メニューナビゲーション メニュー アイコン) > [VPC ネットワーク] > [ファイアウォール] に移動します。

  2. すでに ICMP内部RDPSSH のファイアウォール ルールが存在します。

    各 Google Cloud プロジェクトには、default ネットワークとこれらのファイアウォール ルールが始めから用意されています。

  3. [ファイアウォール ルールを作成] をクリックします。

  4. 以下の値を設定し、他はすべてデフォルト値のままにします。

    プロパティ 値(値を入力するか、指定されたオプションを選択)
    名前 default-allow-http
    ネットワーク default
    ターゲット 指定されたターゲットタグ
    ターゲットタグ http-server
    ソースフィルタ IPv4 範囲
    ソース IP 範囲 0.0.0.0/0
    プロトコルとポート [指定したプロトコルとポート] と [TCP] のチェックボックスをオンにして「80」と入力
    注: すべてのネットワークを指定するために [送信元 IPv4 範囲] に /0 を含めます。
  5. [作成] をクリックします。

ヘルスチェックのファイアウォール ルールを作成する

ヘルスチェックでは、ロードバランサのどのインスタンスが新しい接続を受け取れるかを確認します。HTTP ロード バランシングでは、ロードバランスされたインスタンスへのヘルスチェックのプローブが、130.211.0.0/2235.191.0.0/16 の範囲のアドレスから送信されます。ファイアウォール ルールで、この接続を許可する必要があります。

  1. [ファイアウォール ルール] ページで、[ファイアウォール ルールを作成] をクリックします。

  2. 以下の値を設定し、他はすべてデフォルト値のままにします。

    プロパティ 値(値を入力するか、指定されたオプションを選択)
    名前 default-allow-health-check
    ネットワーク default
    ターゲット 指定されたターゲットタグ
    ターゲットタグ http-server
    ソースフィルタ IPv4 範囲
    ソース IP 範囲 130.211.0.0/2235.191.0.0/16
    プロトコルとポート [指定したプロトコルとポート] と [TCP] のチェックボックスをオンにする
    注: 2 つの送信元 IP 範囲は 1 つずつ入力し、区切りには Space キーを使用します。
  3. [作成] をクリックします。

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

タスク 2. インスタンス テンプレートを構成し、インスタンス グループを作成する

マネージド インスタンス グループは、インスタンス テンプレートを使用して同一インスタンスのグループを作成します。これらを使用して、HTTP ロードバランサのバックエンドを作成します。

インスタンス テンプレートを構成する

インスタンス テンプレートは、VM インスタンスとマネージド インスタンス グループの作成に使用する API リソースです。インスタンス テンプレートが、マシンタイプ、ブートディスク イメージ、サブネット、ラベル、その他のインスタンス プロパティを定義します。 のインスタンス テンプレートを 1 つずつ作成します。

  1. Cloud コンソールで、ナビゲーション メニューナビゲーション メニュー アイコン) > [Compute Engine] > [インスタンス テンプレート] に移動して、[インスタンス テンプレートを作成] をクリックします。
  2. [名前] に「-template」と入力します。
  3. [ロケーション] で [グローバル] を選択します。
  4. [シリーズ] で [E2] を選択します。
  5. [ネットワーク、ディスク、セキュリティ、管理、単一テナンシー] をクリックします。

[ID と API へのアクセス] ページ

  1. [管理] タブをクリックします。

[管理] タブ

  1. [メタデータ] で [+ 項目を追加] をクリックし、次の値を指定します。

    キー
    startup-script-url gs://cloud-training/gcpnet/httplb/startup.sh
注: startup-script-url では、インスタンスの開始時に実行されるスクリプトを指定しますこのスクリプトが Apache をインストールして、クライアント IP や、VM インスタンスの名前、リージョン、ゾーンを含めるようスタートページを変更します。こちらのスクリプトを参照してください。
  1. [ネットワーキング] をクリックし、[ネットワーク タグ] に「http-server」と入力します。

  2. [ネットワーク インターフェース] で、デフォルトのネットワークを開き、次の値を設定します。

    プロパティ 値(値を入力するか、指定されたオプションを選択)
    ネットワーク default
    サブネット デフォルト(
注: ネットワーク タグの http-server によって、HTTPヘルスチェックのファイアウォール ルールがこれらのインスタンスに確実に適用されます。
  1. [作成] をクリックします。
  2. インスタンス テンプレートの作成が完了するまで待ちます。

次に、-template をコピーして、subnet-b のインスタンス テンプレートを新たに 1 つ作成します。

  1. [-template] をクリックし、上部の [同様のものを作成] オプションをクリックします。
  2. [名前] に「-template」と入力します。
  3. [ロケーション] で [グローバル] を選択します。
  4. [ネットワーク、ディスク、セキュリティ、管理、単一テナンシー] をクリックします。
  5. [ネットワーキング] をクリックし、default ネットワークを展開します。
  6. [サブネット] で [default ()] を選択します。
  7. [作成] をクリックします。

マネージド インスタンス グループを作成する

マネージド インスタンス グループを に 1 つ、 に 1 つ作成します。

  1. ナビゲーション メニューナビゲーション メニュー アイコン)の左側のメニューで [Compute Engine] > [インスタンス グループ] をクリックします。

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

  3. 以下の値を設定し、他はすべてデフォルト値のままにします。

    プロパティ 値(値を入力するか、指定されたオプションを選択)
    名前 -mig
    ロケーション マルチゾーン
    リージョン
    インスタンス テンプレート -template
    [自動スケーリング] > [自動スケーリング シグナル](プルダウン アイコンをクリックして編集)> [シグナルタイプ] CPU 使用率
    CPU 使用率の目標値 80、[完了] をクリック
    初期化期間 45
    インスタンスの最小数 1
    インスタンスの最大数 5
    注: マネージド インスタンス グループには、負荷の増減に基づいて、マネージド インスタンス グループのインスタンスを自動的に追加または削除できる自動スケーリング機能が備わっています。自動スケーリングによってトラフィックの増加をアプリケーションで適切に処理できるようになり、リソースの必要性が低下した場合には費用を抑えることができます。自動スケーリングのポリシーを定義しておけば、測定した負荷に基づいてオートスケーラーで自動スケーリングが実行されます。
  4. [作成] をクリックします。

同じ手順を繰り返して、2 つ目のインスタンス グループ -mig に作成します。

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

  2. 以下の値を設定し、他はすべてデフォルト値のままにします。

    プロパティ 値(値を入力するか、指定されたオプションを選択)
    名前 -mig
    ロケーション マルチゾーン
    リージョン
    インスタンス テンプレート -template
    [自動スケーリング] > [自動スケーリング シグナル](プルダウン アイコンをクリックして編集)> [シグナルタイプ] CPU 使用率
    CPU 使用率の目標値 80、[完了] をクリック
    初期化期間 45
    インスタンスの最小数 1
    インスタンスの最大数 5
  3. [作成] をクリックします。

[進行状況を確認] をクリックして、目標に沿って進行していることを確認します。 インスタンス テンプレートとインスタンス グループを構成する

バックエンドを確認する

両方のリージョンで VM インスタンスが作成されていることを確認し、それらの HTTP サイトにアクセスします。

  1. 引き続き [Compute Engine] で、左側のメニューの [VM インスタンス] をクリックします。

  2. 名前が「-mig」で始まるインスタンスと「-mig」で始まるインスタンスが存在します。

    これらのインスタンスはマネージド インスタンス グループに含まれています。

  3. -mig のインスタンスの [外部 IP] をクリックします。

    [クライアント IP](自分の IP アドレス)、[ホスト名](-mig で始まるもの)、[サーバーのロケーション]( のゾーン)が表示されるはずです。

  4. -mig のインスタンスの [外部 IP] をクリックします。

    [クライアント IP](自分の IP アドレス)、[ホスト名](-mig で始まるもの)、[サーバーのロケーション]( のゾーン)が表示されるはずです。

注: [ホスト名] と [サーバーのロケーション] から、HTTP ロードバランサのトラフィックの送信先がわかります。

タスク 3. HTTP ロードバランサを構成する

以下のネットワーク図に示されるように、HTTP ロードバランサを構成して、2 つのバックエンド(-mig-mig)間でトラフィックを分散します。

ネットワーク図

構成を開始する

  1. Cloud コンソールで、ナビゲーション メニューナビゲーション メニュー アイコン) > [ネットワーク サービス] > [ロード バランシング] をクリックし、[ロードバランサを作成] をクリックします。
  2. [アプリケーション ロードバランサ(HTTP/S)] で [次へ] をクリックします。
  3. [インターネット接続または内部] で [インターネット接続(外部)] を選択し、[次へ] をクリックします。
  4. [グローバルまたはシングル リージョンのデプロイ] で [グローバル ワークロードに最適] を選択し、[次へ] をクリックします。
  5. [ロードバランサの世代] で [グローバル外部アプリケーション ロードバランサ] を選択し、[次へ] をクリックします。
  6. [構成] をクリックします。
  7. [ロードバランサの名前] に「http-lb」と入力します。

バックエンドを構成する

バックエンド サービスによって、受信トラフィックが、接続されている 1 つ以上のバックエンドに振り向けられます。各バックエンドは、1 つのインスタンス グループと、追加の提供容量メタデータで構成されます。

  1. [バックエンドの構成] をクリックします。

  2. [バックエンド サービスとバックエンド バケット] プルダウンをクリックし、[バックエンド サービスを作成] をクリックします。

  3. 以下の値を設定し、他はすべてデフォルト値のままにします。

    プロパティ 値(指定されたオプションを選択)
    名前 http-backend
    インスタンス グループ -mig
    ポート番号 80
    分散モード レート
    最大 RPS 50
    容量 100
    注: この構成は、ロードバランサが -mig の各インスタンスの 1 秒あたりのリクエスト数(RPS)を 50 以下に維持しようとすることを意味します。
  4. [完了] をクリックします。

  5. [バックエンドを追加] をクリックします。

  6. 以下の値を設定し、他はすべてデフォルト値のままにします。

    プロパティ 値(指定されたオプションを選択)
    インスタンス グループ -mig
    ポート番号 80
    分散モード 使用率
    バックエンドの最大使用率 80
    容量 100
    注: この構成は、ロードバランサが -mig の各インスタンスの CPU 使用率を 80% 以下に維持しようとすることを意味します。
  7. [完了] をクリックします。

  8. [ヘルスチェック] で [ヘルスチェックを作成] を選択します。

  9. 以下の値を設定し、他はすべてデフォルト値のままにします。

    プロパティ 値(指定されたオプションを選択)
    名前 http-health-check
    プロトコル TCP
    ポート 80
    注: ヘルスチェックでは、どのインスタンスが新しい接続を受け取れるかが判別されます。この HTTP ヘルスチェックは、5 秒ごとにインスタンスをポーリングし、レスポンスを最大 5 秒間待機して、2 回連続して成功した場合は成功、2 回連続して失敗した場合は失敗として処理します。
  10. [保存] をクリックします。

  11. [ロギングを有効にする] チェックボックスをオンにします。

  12. [サンプルレート] を「1」に設定します。

  13. [作成] をクリックしてバックエンド サービスを作成し、[OK] をクリックします。

フロントエンドを構成する

ホストとパスのルールによって、トラフィックの転送方法が決定されます。たとえば、動画のトラフィックと静的トラフィックをそれぞれ異なるバックエンドに転送できます。ただし、このラボではホストとパスのルールは構成しません。

  1. [フロントエンドの構成] をクリックします。

  2. 以下の値を設定し、他はすべてデフォルト値のままにします。

    プロパティ 値(値を入力するか、指定されたオプションを選択)
    プロトコル HTTP
    IP バージョン IPv4
    IP アドレス エフェメラル
    ポート 80
  3. [完了] をクリックします。

  4. [フロントエンドの IP とポートを追加] をクリックします。

  5. 以下の値を設定し、他はすべてデフォルト値のままにします。

    プロパティ 値(値を入力するか、指定されたオプションを選択)
    プロトコル HTTP
    IP バージョン IPv6
    IP アドレス 自動割り当て
    ポート 80
  6. [完了] をクリックします。

注: HTTP(S) ロード バランシングは、IPv4 アドレスと IPv6 アドレスのクライアント トラフィックに対応しています。クライアントの IPv6 リクエストはグローバル ロード バランシング層で終端され、IPv4 経由でバックエンドにプロキシされます。

HTTP ロードバランサを確認して作成する

  1. [確認と完了] をクリックします。

    オプションの確認と完了

  2. [バックエンド サービス] と [フロントエンド] を確認します。

    フロントエンドとバックエンドのセクション

  3. [作成] をクリックします。

  4. ロードバランサの作成が完了するまで待ちます。

  5. ロードバランサの名前(http-lb)をクリックします。

  6. 次のタスクのために、ロードバランサの IPv4 アドレスと IPv6 アドレスをメモしておきます。これ以降は、これらのアドレスをそれぞれ [LB_IP_v4][LB_IP_v6] と呼びます。

注: 16 進数形式のアドレスが IPv6 アドレスです。

[進行状況を確認] をクリックして、目標に沿って進行していることを確認します。 HTTP ロードバランサを構成する

タスク 4. HTTP ロードバランサをテストする

バックエンドのための HTTP ロードバランサを作成できたので、トラフィックがバックエンド サービスに転送されるかどうかを確認します。

HTTP ロードバランサにアクセスする

  • HTTP ロードバランサへの IPv4 アクセスをテストするには、ブラウザで新しいタブを開いて http://[LB_IP_v4] に移動します。[LB_IP_v4] はロードバランサの IPv4 アドレスに置き換えてください。
注: HTTP ロードバランサへのアクセスには最大で 5 分ほどかかることがあります。その間に 404 エラーまたは 502 エラーが表示される場合があります。いずれかのバックエンドのページが表示されるまで繰り返し試してください。 注: への近さに応じて、トラフィックが -mig インスタンスまたは -mig インスタンスに転送されます。

ローカル IPv6 アドレスがある場合は、http://[LB_IP_v6] に移動して HTTP ロードバランサの IPv6 アドレスも試してください。[LB_IP_v6] はロードバランサの IPv6 アドレスに置き換えてください。

HTTP ロードバランサのストレステストを実施する

新しい VM を作成し、HTTP ロードバランサに対する負荷を siege でシミュレートして、負荷が高くなるとトラフィックが両方のバックエンドに分散されることを確認します。

  1. コンソールで、ナビゲーション メニューナビゲーション メニュー アイコン)> [Compute Engine] > [VM インスタンス] に移動します。

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

  3. 以下の値を設定し、他はすべてデフォルト値のままにします。

    プロパティ 値(値を入力するか、指定されたオプションを選択)
    名前 siege-vm
    リージョン
    ゾーン
    シリーズ E2
注: よりも の方に近いため、負荷が高すぎる場合を除いてトラフィックは -mig のみに転送されるはずです。
  1. [作成] をクリックします。
  2. siege-vm インスタンスの作成が完了するまで待ちます。
  3. siege-vm で [SSH] をクリックし、ターミナルを起動して接続します。
  4. 次のコマンドを実行して siege をインストールします。
sudo apt-get -y install siege

[進行状況を確認] をクリックして、目標に沿って進行していることを確認します。 HTTP ロードバランサをテストする

  1. 次のコマンドを実行して、HTTP ロードバランサの IPv4 アドレスを環境変数に保存します。[LB_IP_v4] はロードバランサの IPv4 アドレスに置き換えてください。
export LB_IP=[LB_IP_v4]
  1. 次のコマンドを実行して負荷をシミュレートします。
siege -c 250 http://$LB_IP

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

New configuration template added to /home/cloudcurriculumdeveloper/.siege Run siege -C to view the current settings in that file
  1. Cloud コンソールのナビゲーション メニューナビゲーション メニュー アイコン)で、[ネットワーク サービス] > [ロード バランシング] をクリックします。
  2. [バックエンド] をクリックします。
  3. [http-backend] をクリックします。
  4. [http-lb] に移動します。
  5. [モニタリング] タブをクリックします。
  6. [フロントエンドの場所(合計受信トラフィック)] で、北アメリカと 2 つのバックエンドの間のトラフィックを 2~3 分モニタリングします。

最初はトラフィックが -mig のみに転送されていますが、RPS が増加すると -mig にも転送されるようになります。

モニタリング グラフ

これで、デフォルトではトラフィックが最も近いバックエンドに転送され、負荷が非常に高くなるとバックエンド間で分散されることがわかりました。

  1. siege-vmSSH ターミナルに戻ります。
  2. Ctrl+C キーを押して siege を停止します。

タスク 5. Cloud Armor のレート制限ポリシーを作成する

このセクションでは、Cloud Armor を使用してレート制限ポリシーを設定し、siege-vm が HTTP ロードバランサにアクセスできないように拒否リストに登録します。

  1. Cloud Shell で、gcloud を使用してセキュリティ ポリシーを作成します。
gcloud compute security-policies create rate-limit-siege \ --description "policy for rate limiting"
  1. 次に、レート制限ルールを追加します。
gcloud beta compute security-policies rules create 100 \ --security-policy=rate-limit-siege \ --expression="true" \ --action=rate-based-ban \ --rate-limit-threshold-count=50 \ --rate-limit-threshold-interval-sec=120 \ --ban-duration-sec=300 \ --conform-action=allow \ --exceed-action=deny-404 \ --enforce-on-key=IP
  1. セキュリティ ポリシーをバックエンド サービス http-backend に接続します。
gcloud compute backend-services update http-backend \ --security-policy rate-limit-siege --global
  1. コンソールで、ナビゲーション メニュー > [ネットワーク セキュリティ] > [Cloud Armor] に移動します。

  2. [rate-limit-siege] をクリックします。ポリシーは次のようになります。

rate-limit-security-policy ページ

[進行状況を確認] をクリックして、目標に沿って進行していることを確認します。 Cloud Armor のレート制限ポリシーを作成する

タスク 6. セキュリティ ポリシーを確認する

  1. siege-vm の SSH ターミナルに戻ります。

  2. LB IP に対して curl を実行し、接続できることを確認します。200 レスポンスが返されるはずです。

curl http://$LB_IP
  1. siege-vm の SSH ターミナルで、次のコマンドを実行して負荷をシミュレートします。
siege -c 250 http://$LB_IP

このコマンドでは何も出力されません。

  1. セキュリティ ポリシーのログを調べて、このトラフィックもブロックされているかどうかを確認します。

  2. コンソールで、ナビゲーション メニュー > [ネットワーク セキュリティ] > [Cloud Armor ポリシー] に移動します。

  3. [rate-limit-siege] をクリックします。

  4. [ログ] をクリックします。

  5. [ポリシーログを表示] をクリックします。

  6. [ロギング] ページで [クエリのプレビュー] のテキストすべてを削除します。

  7. [アプリケーション ロードバランサ] > [http-lb-forwarding-rule] > [http-lb] でリソースを選択し、[適用] をクリックします。

  8. [クエリを実行] をクリックします。

  9. [クエリ結果] でログエントリを展開します。

    [クエリ結果] ページ

  10. [httpRequest] を展開します。

リクエストの送信元が siege-vm の IP アドレスになっているはずです。そうでない場合は、別のログエントリを展開します。

  1. [jsonPayload] を展開します。

  2. [enforcedSecurityPolicy] を展開します。

    [クエリ結果] ページ

[configuredAction] が DENY に設定されていて、その名前として rate-limit-siege が指定されています。

注: Cloud Armor セキュリティ ポリシーによって作成されるログを調べると、トラフィックが拒否または許可された日時や、トラフィックの送信元を特定できます。

お疲れさまでした

のバックエンドを使用して HTTP ロードバランサを構成しました。次に、VM を使用してロードバランサのストレステストを実施し、Cloud Armor のレート制限を使用して IP アドレスを拒否リストに登録しました。最後に、セキュリティ ポリシーのログを調べて、トラフィックがブロックされた理由を特定しました。

次のステップと詳細情報

Cloud Armor の基本コンセプトについては、Cloud Armor のドキュメントをご覧ください。

ロード バランシングの詳細については、ロード バランシングをご覧ください。

Google Cloud トレーニングと認定資格

Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。

マニュアルの最終更新日: 2024 年 5 月 14 日

ラボの最終テスト日: 2024 年 5 月 14 日

Copyright 2025 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

始める前に

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

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

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

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

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

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

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

ありがとうございます。

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

1 回に 1 つのラボ

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

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

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