Deploy sample App Engine application

進行状況を確認

/ 100

このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。

GSP112

Google Cloud セルフペース ラボ

概要

Security Command Center の組み込みサービスの一つである Web Security Scanner は、Google App Engine、Google Kubernetes Engine(GKE)、Compute Engine の各ウェブ アプリケーションにおけるセキュリティの脆弱性を特定します。このサービスは、アプリケーションをクロールして、開始 URL の範囲内にあるすべてのリンクをたどり、できる限り多くのユーザー入力とイベント ハンドラを実行します。

Web Security Scanner は、既存の安全な設計プロセスと開発プロセスを補完することを目的としています。誤検出があると開発者の注意がそがれるため、あまり多くの情報が報告されないようになっています。また信頼度が低いアラートは表示されません。Web Security Scanner は、人によるセキュリティ レビューに代わるものではなく、アプリケーションにセキュリティの欠陥がないことを保証するものでもありません。

学習内容

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

  • Web Security Scanner を使用してスキャンを実行する

設定と要件

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

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、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. スキャンするアプリを事前に用意する

このラボでは、Hello World サンプル アプリケーションをデプロイして Security Scanner を実行します。

  1. Cloud Shell で次のコマンドを実行し、Hello World サンプル アプリケーションのリポジトリのクローンを作成します。
gsutil -m cp -r gs://spls/gsp067/python-docs-samples .
  1. 次に、サンプルコードを含むディレクトリに移動します。
cd python-docs-samples/appengine/standard_python3/hello_world
  1. sed コマンドで Python のバージョンを変更します。
sed -i "s/python37/python39/g" app.yaml
  1. 以下のコマンドを実行し、itsdangerous==2.0.1Jinja2==3.0.3werkzeug==2.0.1requirements.txt ファイルに追加します。
nano requirements.txt

ファイルは以下のようになります。

Flask==1.1.2 itsdangerous==2.0.1 Jinja2==3.0.3 werkzeug==2.0.1
  1. ファイルを保存して(Ctrl+O キー、Enter キーの順に押す)、nano を終了します(Ctrl+X キーを押す)。
注: itsdangerous==2.0.1 パッケージを requirements.txt ファイルに追加することで、信頼できない環境にデータを渡し、再び安全に取り戻せます。

タスク 2. アプリをテストする

  1. 前提条件である Python 環境をインストールします。
sudo apt update sudo apt install python3-venv -y python3 -m venv create myvenv source myvenv/bin/activate
  1. アプリの app.yaml 構成ファイルがある hello_world ディレクトリから、次のコマンドを使用してローカルの開発用サーバーを起動します。
flask --app main run
  1. Cloud Shell のツールバーにある [ウェブでプレビュー] アイコンをクリックします。

  2. [ポートを変更] をクリックします。

  3. [ポート番号] を「5000」に変更し、[変更してプレビュー] をクリックします。

展開された [ウェブでプレビュー] メニュー

注: [ウェブでプレビュー] アイコンが表示されない場合は、左上のナビゲーション メニューを閉じます。
  1. Ctrl+C キーを押してローカルアプリを停止し、コマンドラインに戻ります。

タスク 3. アプリをデプロイする

このラボでは、 をApp Engine のリージョンとして使用します。

  1. アプリケーションのルート ディレクトリ(hello_world)で次のコマンドを実行して、アプリを App Engine にデプロイします。
gcloud app create gcloud app deploy
  1. リージョンの選択を求められたら、近いリージョンの番号を選択します。

  2. ラボでアプリが作成されると、続行するかどうか尋ねられます。[Y] をクリックして続行します。

アプリのデプロイが始まります。

注: タイムアウト エラーが表示される場合は、コマンドを再度実行してください。

タスク 4. アプリを表示する

  • ブラウザでアプリを起動するには、次のコマンドを実行します。
gcloud app browse

Cloud Shell 内のリンクを使用するか、http://[YOUR_PROJECT_ID].uc.r.appspot.com にアクセスしてアプリを表示します。この URL が脆弱性スキャンの対象になり、次のステップでスキャン パラメータに追加されます。

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが付与されます。

サンプル App Engine アプリケーションをデプロイする。

タスク 5. スキャンを実行する

スキャンは直ちに実行されるのではなく、まずキューに追加されて後で実行されます。その時点の負荷によっては、スキャンが実行されるまでに数時間かかることがあります。これらのフォームの設定について詳しくは、Web Security Scanner の使用をご覧ください。

  1. ナビゲーション メニュー > [API とサービス] > [ライブラリ] を開きます。

  2. [API とサービスを検索] に「Web Security Scanner」と入力します。

  3. [Web Security Scanner API] を選択し、[有効にする] をクリックしてこの API を有効にします。

  4. ナビゲーション メニューで [セキュリティ] > [Web Security Scanner] を選択します。

  5. [新しいスキャン] をクリックします。

  6. [開始 URL 1] に、スキャンするアプリケーションの URL を入力します。

  7. [保存] をクリックして、スキャンを作成します。

  8. [実行] をクリックしてスキャンを開始します。

[実行] ボタンが表示された Web Security Scanner ページ

スキャンがキューに追加され、進行状況がステータスバーに表示されます。スキャンが完了すると、スキャンの概要ページに結果のセクションが表示されます。次の画像は、脆弱性が検出されない場合のスキャン結果を示しています。

スキャンで検出された URL の数が予想外に少なかったことを示すメッセージが表示された [結果] タブ

注: スキャンの完了まで 4~5 分かかる場合があります。出力されない場合はページを更新してみてください。

これで、Web Security Scanner を使用したスキャンが完了しましたが、1 つの URL をスキャンするだけでは十分でないことを示す警告が表示されます。このラボは簡単な例を示すことを目的としていますが、本番環境では多数の URL をスキャンする必要があります。

タスク 6. 理解度を確認する

以下の選択問題に取り組み、今回のラボで学習した内容の理解を深めましょう。正解を目指して頑張ってください。

お疲れさまでした

このラボでは、Web Security Scanner を使用してスキャンを実行する方法を学びました。

次のステップと詳細情報

このラボは、Google Cloud の多くの機能を体験できる「Qwik Start」と呼ばれるラボシリーズの一部でもあります。ラボカタログで「Qwik Start」を検索し、興味のあるラボを探してみてください。

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

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

マニュアルの最終更新日: 2025 年 5 月 30 日

ラボの最終テスト日: 2025 年 5 月 30 日

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

始める前に

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

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

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

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

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

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

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

ありがとうございます。

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

1 回に 1 つのラボ

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

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

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

ラボを開始するには、この簡単な手順を完了してください。