読み込んでいます...
一致する結果は見つかりませんでした。

Google Cloud コンソールでスキルを試す

Introduction to reCAPTCHA

700 以上のラボとコースにアクセス

Google Cloud Armor と reCAPTCHA を使用した bot 管理

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

GSP877

概要

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

Cloud Armor は、Google の分散型サービス拒否攻撃とウェブ アプリケーション ファイアウォール(WAF)の検出システムです。Cloud Armor は Google Cloud HTTP ロードバランサと緊密に連携し、Google Cloud のお客様のアプリケーションをインターネットからの攻撃から保護します。

reCAPTCHA Enterprise は、reCAPTCHA API を基盤とするサービスで、高度なリスク分析手法を使用して人間と bot を区別し、スパムや不正行為からサイトを保護します。Cloud Armor の bot 管理は、reCAPTCHA Enterprise の bot 検出とスコアリングを、ネットワークのエッジで Cloud Armor による適用と統合するエンドツーエンドのソリューションを提供し、ダウンストリーム アプリケーションを保護します。

このラボでは、次の図に示されるように、バックエンドを使用して HTTP ロードバランサを構成します。reCAPTCHA セッション トークン サイトキーを設定して、ウェブサイトに埋め込みます。また、reCAPTCHA Enterprise の手動チャレンジへのリダイレクトも設定します。次に、Cloud Armor bot 管理ポリシーを構成して、bot 検出がアプリケーションを悪意のある bot トラフィックからどのように保護するかを確認します。

学習内容

このラボでは、次の方法について学びます。

  • 適切なヘルスチェックを使用して HTTP ロードバランサを設定する
  • reCAPTCHA WAF 課題ページのサイトキーを作成し、Cloud Armor セキュリティ ポリシーに関連付ける
  • reCAPTCHA セッション トークン サイトキーを作成してウェブページにインストールする
  • Cloud Armor の bot 管理ポリシーを作成する
  • bot 管理ポリシーが、構成されたルールに基づいてトラフィックを処理していることを検証する

設定と要件

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

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、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 で、プロジェクト ID を設定します。
export PROJECT_ID=$(gcloud config get-value project) echo $PROJECT_ID gcloud config set project $PROJECT_ID

API を有効にする

  • 必要なサービスをすべて有効にします。
gcloud services enable compute.googleapis.com gcloud services enable logging.googleapis.com gcloud services enable monitoring.googleapis.com gcloud services enable recaptchaenterprise.googleapis.com

これで、最初のタスクを開始する準備が整いました。

タスク 1. バックエンドへの HTTP トラフィックと SSH トラフィックを許可するファイアウォール ルールを構成する

このラボでは、ラボの起動時にプロジェクトに作成されたデフォルトの VPC ネットワークを使用します。

このセクションでは、Google Cloud ヘルスチェックとロードバランサからバックエンドへの HTTP トラフィックを許可するファイアウォール ルールを構成します。次に、インスタンスへの SSH を許可するファイアウォール ルールを構成します。

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

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

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

  1. Google Cloud コンソールのメインメニューで、[プロダクト] セクションの [VPC ネットワーク] に移動し、[ファイアウォール] を選択します。
  2. すでに ICMP内部RDPSSH のファイアウォール ルールが存在します。各 Google Cloud プロジェクトには、default ネットワークとこれらのファイアウォール ルールが始めから用意されています。
  3. [ファイアウォール ルールを作成] をクリックします。
  4. 以下の値を設定し、他はすべてデフォルト値のままにします。
プロパティ 値(値を入力するか、指定されたオプションを選択)
名前 default-allow-health-check
ネットワーク デフォルト
ターゲット 指定されたターゲットタグ
ターゲットタグ allow-health-check
ソースフィルタ IPv4 範囲
送信元 IPv4 範囲 130.211.0.0/22、35.191.0.0/16
プロトコルとポート [指定したプロトコルとポート] と [TCP] のチェックボックスをオンにするポート番号に「80」と入力します。
注: 2 つの送信元 IPv4 範囲は 1 つずつ入力し、区切りには Space キーを使用します。
  1. [作成] をクリックします。

または、gCloud コマンドラインで次のコマンドを使用します。

gcloud compute firewall-rules create default-allow-health-check --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp:80 --source-ranges=130.211.0.0/22,35.191.0.0/16 --target-tags=allow-health-check
  1. 同様に、インスタンスへの SSH を許可するファイアウォール ルールを作成します。
gcloud compute firewall-rules create allow-ssh --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp:22 --source-ranges=0.0.0.0/0 --target-tags=allow-health-check

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 バックエンドへの HTTP トラフィックと SSH トラフィックを許可するファイアウォール ルールを構成する

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

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

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

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

インスタンス テンプレートを作成するには:

  1. コンソールのメインメニューで、[プロダクト] セクションの [Compute Engine] に移動し、[仮想マシン] セクションから [インスタンス テンプレート] を選択します。
  2. [インスタンス テンプレート] ページの上部にある [インスタンス テンプレートを作成] をクリックします。
  3. [名前] に「lb-backend-template」と入力します。
  4. [ロケーション] で [グローバル] を選択します。
  5. [シリーズ] で [N1] を選択します。
  6. [詳細オプション] をクリックします。
  7. [管理] タブで、[自動化] セクションまで下にスクロールし、[起動スクリプト] フィールドに次のスクリプトを挿入します。
#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo a2enmod ssl sudo su vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html
  1. [詳細オプション] で [ネットワーキング] タブをクリックし、[ネットワーク タグ] テキストボックスに「allow-health-check」と入力します。
  2. 以下の値を設定し、他はすべてデフォルト値のままにします。
プロパティ 値(値を入力するか、指定されたオプションを選択)
ネットワーク([ネットワーク インターフェース] の下) デフォルト
サブネットワーク(ネットワーク インターフェースの下) デフォルト(
ネットワーク タグ allow-health-check
注: ネットワーク タグの allow-health-check によって、HTTP ヘルスチェックと SSH のファイアウォール ルールがこれらのインスタンスに適用されます。
  1. [作成] をクリックします。

インスタンス テンプレートの作成が完了するまで待ちます。

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

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

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

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

  3. [新しいマネージド インスタンス グループ(ステートレス)] が選択されていることを確認します。

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

プロパティ 値(値を入力するか、指定されたオプションを選択)
名前 lb-backend-example
インスタンス テンプレート lb-backend-template
ロケーション シングルゾーン
リージョン
ゾーン
自動スケーリング [自動スケーリング モード] を [オフ: 自動スケーリングを行いません] に設定します。
インスタンスの最小数 1
  1. [作成] をクリックします。

インスタンス グループに名前付きポートを追加する

  • インスタンス グループに HTTP サービスを定義し、ポート名を該当するポートにマッピングするには、次のコード スニペットを Cloud Shell に貼り付けます。
gcloud compute instance-groups set-named-ports lb-backend-example \ --named-ports http:80 \ --zone {{{project_0.startup_script.lab_zone|lab_zone}}}

ロード バランシング サービスは、名前付きポートにトラフィックを転送します。

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

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

このセクションでは、HTTP ロードバランサを構成して、トラフィックをバックエンド lb-backend-example に送信します。

構成を開始する

  1. コンソールのナビゲーション メニューで [すべてのプロダクトを表示] をクリックし、[ネットワーク サービス] を選択します。[ロード バランシング] ページに自動的に移動します。

  2. [ロードバランサを作成] をクリックします。

  3. [アプリケーション ロードバランサ(HTTP/HTTPS)] が選択されていることを確認し、[次へ] をクリックします。

  4. [インターネット接続(外部)] が選択されていることを確認し、[次へ] をクリックします。

  5. [グローバル ワークロードに最適] が選択されていることを確認し、[次へ] をクリックします。

  6. [グローバル外部アプリケーション ロードバランサ] が選択されていることを確認し、[次へ] をクリックします。

  7. [Configure] を選択します。

  8. [ロードバランサ名] テキスト ボックスに「http-lb」と入力します。

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

  1. [フロントエンドの構成] をクリックします。
  2. 以下の値を設定し、他はすべてデフォルト値のままにします。
プロパティ 値(値を入力するか、指定されたオプションを選択)
Protocol HTTP
IP バージョン IPv4
IP アドレス エフェメラル
Port 80
  1. [完了] をクリックします。

バックエンドを構成する

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

  1. [Create global external Application Load Balancer] ページで、[バックエンドの構成] をクリックします。
  2. [バックエンド サービスとバックエンド バケット] で、[バックエンド サービスを作成] をクリックします。
  3. 以下の値を設定し、他はすべてデフォルト値のままにします。
プロパティ 値(指定されたオプションを選択)
名前 http-backend
Protocol HTTP
名前付きポート http
インスタンス グループ([新しいバックエンド] の下) lb-backend-example
ポート番号 80
キャッシュ モード Cache-Control ヘッダーに基づいて送信元の設定を使用する
ヘルスチェック ヘルスチェックを作成する
  1. [ヘルスチェック] ページで、以下の値を設定し、他はすべてデフォルト値のままにします。

  1. 以下の値を設定し、他はすべてデフォルト値のままにします。
プロパティ 値(指定されたオプションを選択)
名前 http-health-check
Protocol TCP
Port 80
注: ヘルスチェックでは、どのインスタンスが新しい接続を受け取れるかが判別されます。

この HTTP ヘルスチェックは、5 秒ごとにインスタンスをポーリングし、レスポンスを最大 5 秒間待機して、2 回連続して成功した場合は成功、2 回連続して失敗した場合は失敗として処理します。
  1. [作成] をクリックしてヘルスチェックを作成します。
  2. [ロギングを有効にする] チェックボックスをオンにします。
  3. [サンプルレート] が 1 に設定されていることを確認します。
  4. [作成] をクリックしてバックエンド サービスを作成し、[OK] をクリックします。

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

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

  1. [確認と完了(省略可)] をクリックします。

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

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

  1. ロードバランサの名前(http-lb)をクリックします。
  2. ロードバランサの IPv4 アドレスをメモします(次のタスクで使用します)。このラボでは、これを [LB_IP_v4] と呼びます。

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

HTTP ロードバランサをテストする

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

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

タスク 4. reCAPTCHA セッション トークンと課題ページのサイトキーを作成してデプロイする

WAF 用の reCAPTCHA Enterprise と Google Cloud Armor の統合には、reCAPTCHA 課題ページreCAPTCHA アクション トークンreCAPTCHA セッション トークンの機能があります。このタスクでは、reCAPTCHA セッション トークンのサイトキーと reCAPTCHA WAF 課題ページのサイトを実装します。

reCAPTCHA セッション トークンと WAF 課題ページのサイトキーを作成する

セッション トークン サイトキーとチャレンジ ページ サイトキーを作成する前に、前のAPI の有効化セクションで説明したように、reCAPTCHA Enterprise API が有効になっていることを再確認してください。

reCAPTCHA JavaScript は、評価後に reCAPTCHA セッション トークンをエンドユーザーのブラウザの Cookie として設定します。エンドユーザーのブラウザには Cookie が添付され、reCAPTCHA JavaScript がアクティブである限り、その Cookie は更新されます。

  1. reCAPTCHA セッション トークン サイトキーを作成し、そのキーに対して WAF 機能を有効にする:
gcloud recaptcha keys create --display-name=test-key-name \ --web --allow-all-domains --integration-type=score --testing-score=0.5 \ --waf-feature=session-token --waf-service=ca

上記のコマンドの出力には、作成したセッション トークン サイトキーが表示されます。このタスクで後で使用するため、これを記録します。

また、Cloud Armor の統合を有効にするために、WAF サービスを Cloud Armor に設定します。

注: Cloud Armor ポリシーで利用される統合タイプ score を使用しています。代わりに、checkboxinvisible を使用することもできます。

また、キーを作成するときにテストスコアを設定して、Cloud Armor で作成したボット管理ポリシーが意図したとおりに機能していることを検証します。ボットトラフィックを再現するのは簡単ではないため、この機能のテストには最適な方法です。
  1. reCAPTCHA WAF 課題ページのサイトキーを作成し、そのキーに対して WAF 機能を有効にします。reCAPTCHA 課題ページ機能を使用して、受信リクエストを reCAPTCHA Enterprise にリダイレクトし、各リクエストが不正なものか正当なものかを判断します。後で、このキーを Cloud Armor セキュリティ ポリシーに関連付けて、手動チャレンジを有効にします。このラボでは、後のステップでこのキーを CHALLENGE-PAGE-KEY として参照します。
gcloud recaptcha keys create --display-name=challenge-page-key \ --web --allow-all-domains --integration-type=INVISIBLE \ --waf-feature=challenge-page --waf-service=ca
  1. ナビゲーション メニュー()> [セキュリティ] > [reCAPTCHA] に移動します。作成したキーが [reCAPTCHA キー] リストに表示されます。

reCAPTCHA セッション トークン サイトキーを実装する

  1. Google Cloud コンソールのメインメニューから、[Compute Engine] に移動し、[VM インスタンス] を選択します。インスタンス グループで VM を見つけ、[接続] 列の [SSH] をクリックします。リダイレクト先のページで [承認] をクリックします。

  1. ウェブサーバーのルート ディレクトリに移動し、SSH-in-browser シェルで次のコードを入力してユーザーを root に変更します。
cd /var/www/html/ sudo su
  1. ランディング index.html ページを更新し、reCAPTCHA セッション トークン サイトキーを埋め込みます。セッション トークン サイトキー(先ほど記録したもの)は、ランディング ページの head セクションに次のように設定されます。

src="https://www.google.com/recaptcha/enterprise.js?render=<SESSION_TOKEN_SITE_KEY>&waf=session" async defer>

次のコマンドを実行する前に、<SESSION_TOKEN_SITE_KEY> をサイトトークンに置き換えてください。

echo '<!doctype html><html><head><title>ReCAPTCHA Session Token</title><script src="https://www.google.com/recaptcha/enterprise.js?render=<SESSION_TOKEN_SITE_KEY>&waf=session" async defer></script></head><body><h1>Main Page</h1><p><a href="/good-score.html">Visit allowed link</a></p><p><a href="/bad-score.html">Visit blocked link</a></p><p><a href="/median-score.html">Visit redirect link</a></p></body></html>' > index.html
  1. bot 管理ポリシーをテストするために、他の 3 つのサンプルページを作成します。
  • good-score.html
echo '<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"></head><body><h1>おめでとうございます!You have a good score!!</h1></body></html>' > good-score.html
  • bad-score.html
echo '<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"></head><body><h1>Sorry, You have a bad score!</h1></body></html>' > bad-score.html
  • median-score.html
echo '<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"></head><body><h1>You have a median score that we need a second verification.</h1></body></html>' > median-score.html

ブラウザで開いて、すべてのウェブページにアクセスできることを検証します。[LB_IP_v4] はロードバランサの IPv4 アドレスに置き換えてください。

  1. http://[LB_IP_v4]/index.html を開きます。ページ右下のに「protected by reCAPTCHA」と表示されていれば、reCAPTCHA の実装が機能していることを確認できます。

  1. 各リンクをクリックします。

  1. すべてのページにアクセスできることを検証する。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 reCAPTCHA セッション トークンと課題ページ サイトキーをデプロイする

タスク 5. Bot Management 用の Cloud Armor セキュリティ ポリシー ルールを作成する

このセクションでは、Cloud Armor の bot 管理ルールを使用して、reCAPTCHA スコアに基づいてリクエストを許可、拒否、リダイレクトします。

  1. Cloud Shell で、gcloud を使用してセキュリティ ポリシーを作成します。
gcloud compute security-policies create recaptcha-policy \ --description "policy for bot management"
  1. reCAPTCHA Enterprise の手動チャレンジを使用して人間と自動クライアントを区別するには、手動チャレンジ用に以前作成した reCAPTCHA WAF チャレンジ サイトキー(CHALLENGE-PAGE-KEY)をセキュリティ ポリシーに関連付けます。次のスクリプトでは、「CHALLENGE-PAGE-KEY」を以前に作成したキーに必ず置き換えてください。
gcloud compute security-policies update recaptcha-policy \ --recaptcha-redirect-site-key "CHALLENGE-PAGE-KEY"
  1. URL パスが good-score.html と一致し、スコアが 0.4 より大きい場合にトラフィックを許可するボット管理ルールを追加します。
gcloud compute security-policies rules create 2000 \ --security-policy recaptcha-policy\ --expression "request.path.matches('good-score.html') && token.recaptcha_session.score > 0.4"\ --action allow
  1. URL パスが bad-score.html と一致し、スコアが 0.6 未満の場合にトラフィックを拒否するボット管理ルールを追加します。
gcloud compute security-policies rules create 3000 \ --security-policy recaptcha-policy\ --expression "request.path.matches('bad-score.html') && token.recaptcha_session.score < 0.6"\ --action "deny-403"
  1. URL パスが median-score.html と一致し、スコアが 0.5 の場合に、トラフィックを Google reCAPTCHA にリダイレクトする bot 管理ルールを追加します。
gcloud compute security-policies rules create 1000 \ --security-policy recaptcha-policy\ --expression "request.path.matches('median-score.html') && token.recaptcha_session.score == 0.5"\ --action redirect \ --redirect-type google-recaptcha
  1. セキュリティ ポリシーをバックエンド サービス http-backend に接続します。
gcloud compute backend-services update http-backend \ --security-policy recaptcha-policy --global
  1. Google Cloud コンソールのメインメニューから [ネットワーク セキュリティ] に移動し、[Cloud Armor ポリシー] を選択します。

  2. [recaptcha-policy] をクリックします。

ポリシーは次のようになります。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 Bot 管理用の Cloud Armor セキュリティ ポリシー ルールを作成する

タスク 6. Cloud Armor で bot 管理を検証する

  1. ブラウザを開き、URL http://[LB_IP_v4]/index.html を入力します。[許可されたリンクにアクセス] に移動します。

  1. 新しいウィンドウをシークレット モードで開くと、新しいセッションが開始されます。

  2. URL http://[LB_IP_v4]/index.html を入力し、「Visit blocked link」に移動します。HTTP 403 エラーが返されます。

注: 403 Forbidden エラーが表示されない場合は、reCAPTCHA ルールが有効になるまでしばらくお待ちください。5 分ほど待ってから、もう一度この手順をお試しください。各リンクをテストする際は、必ず新しいシークレット ウィンドウを使用してください。
  1. 新しいウィンドウをシークレット モードで開くと、新しいセッションが開始されます。

  2. URL http://[LB_IP_v4]/index.html を入力し、[Visit redirect link] に移動します。以下のように、Google reCAPTCHA へのリダイレクトと手動チャレンジ ページが表示されます。

注: ユーザー操作が評価に合格すると、reCAPTCHA Enterprise は免除 Cookie を発行します。ブラウザは、Cookie が期限切れになるまで、同じサイトに対するユーザーの後続のリクエストにこの免除 Cookie を添付します。デフォルトでは、免除 Cookie は 3 時間後に期限切れになります。 注: 自動化されたソフトウェアがサイトで不正行為を行うのを防ぐため、reCAPTCHA は高度なリスク分析エンジンと適応型 CAPTCHA を使用します。この機能は、有効なユーザーが簡単に通過できるようにしながら、これを実現します。アルゴリズムがユーザーを人間だと判断した場合、ユーザーが追加の操作をしなくても reCaptcha が検証されます。そうでない場合は、さまざまな画像が表示されるので、先に進む前に分類する必要があります。デフォルトでは、最も疑わしいトラフィックに対してのみ、CAPTCHA の解決が要求されます。 解決すべきチャレンジが提示されなかった場合でも、ポリシーログを確認して、チャレンジの解決が免除されたことを確認できます。

Cloud Armor のログを確認する

セキュリティ ポリシーのログを調べて、ボット管理が想定どおりに機能していることを確認します。

  1. コンソールで、ナビゲーション メニュー > [ネットワーク セキュリティ] > [Cloud Armor ポリシー] に移動します。
  2. [recaptcha-policy] をクリックします。
  3. [ログ] をクリックします。
  4. [ポリシーログを表示] をクリックします。
  5. 以下は MQL(モニタリング クエリ言語)クエリです。コピーしてクエリエディタに貼り付けます。
resource.type:(http_load_balancer) AND jsonPayload.enforcedSecurityPolicy.name:(recaptcha-policy)
  1. [クエリを実行] をクリックします。
  2. クエリ結果で、リクエストが http://[LB_IP_v4]/good-score.html であるログエントリを探します。jsonPayload を展開し、enforcedSecurityPolicy を展開します。

注: ログエントリが表示されない場合は、ポリシーが伝播するまで数分待ってから、先ほど使用した URL を更新し、再度ログを確認してください。
  1. http://[LB_IP_v4]/bad-score.htmlhttp://[LB_IP_v4]/median-score.html についても同じ手順を繰り返します。

[configuredAction] が ALLOW、DENY、GOOGLE_RECAPTCHA のいずれかに設定され、名前が recaptcha-policy になっています。

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

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 Cloud Armor で bot 管理を検証する

お疲れさまでした

Cloud Armor を使用して bot 管理を正常に実装しました。HTTP ロードバランサを構成しました。次に、reCAPTCHA セッション トークン サイトキーを作成してウェブページに実装しました。また、課題ページのサイトキーも作成しました。Cloud Armor のボット管理ポリシーを設定し、ルールに基づいてリクエストがどのように処理されるかを検証しました。セキュリティ ポリシーのログを調べて、トラフィックが許可、ブロック、またはリダイレクトされた理由を特定しました。

マニュアルの最終更新日: 2025 年 7 月 17 日

ラボの最終テスト日: 2025 年 7 月 22 日

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

前へ 次へ

始める前に

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

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

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

ありがとうございます。

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

1 回に 1 つのラボ

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

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

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