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

Google Cloud Skills Boost

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

11

Security Best Practices in Google Cloud - 日本語版

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

BeyondCorp Enterprise で Compute Engine アプリケーションを保護する

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

概要

このラボでは、BeyondCorp Enterprise の Identity-Aware Proxy(IAP)を使用して、ID に基づいてトラフィックを制限し、Compute Engine のワークロードを保護します。

IAP は BeyondCorp Enterprise の機能であり、Google Cloud のゼロトラスト ソリューションです。これにより、組織の従業員は VPN を必要とせず、マルウェア、フィッシング、データの損失を恐れることなく、どこからでもウェブ アプリケーションに安全にアクセスできます。

このラボでは、ゼロトラストの構成を有効にすることで、アクセスを制限するウェブベースの統合開発環境(IDE)をプロビジョニングします。

目標

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

  • OAuth の同意を構成する
  • OAuth アクセス認証情報を設定する
  • デプロイしたアプリケーションへの IAP アクセスを設定する
  • IAP を使用してアプリケーションへのアクセスを制限する

設定と要件

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

注: 以下の説明をお読みください。

ラボの時間は計測されており、一時停止することはできません。[ラボを開始] をクリックするとスタートするタイマーは、Google Cloud のリソースを利用できる時間を示しています。

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

必要なもの

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

  • 標準的なインターネット ブラウザ(Chrome を推奨)
  • ラボを完了するために十分な時間
注: すでに個人の Google Cloud アカウントやプロジェクトをお持ちの場合でも、ラボでは使用しないでください。 注: Pixelbook を使用している場合は、このラボをシークレット ウィンドウで実施してください。

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

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側のパネルには、このラボで使用する必要がある一時的な認証情報が表示されます。

    [認証情報] パネル

  2. ユーザー名をコピーし、[Google Console を開く] をクリックします。 ラボでリソースが起動し、別のタブで [アカウントの選択] ページが表示されます。

    注: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
  3. [アカウントの選択] ページで [別のアカウントを使用] をクリックします。[ログイン] ページが開きます。

    [別のアカウントを使用] オプションがハイライト表示されている、アカウントのダイアログ ボックスを選択します。

  4. [接続の詳細] パネルでコピーしたユーザー名を貼り付けます。パスワードもコピーして貼り付けます。

注: 認証情報は [接続の詳細] パネルに表示されたものを使用してください。Google Cloud Skills Boost の認証情報は使用しないでください。請求が発生する事態を避けるため、Google Cloud アカウントをお持ちの場合でも、このラボでは使用しないでください。
  1. その後次のように進みます。
  • 利用規約に同意してください。
  • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
  • 無料トライアルには登録しないでください。

しばらくすると、このタブで Cloud コンソールが開きます。

注: 左上にある [ナビゲーション メニュー] をクリックすると、Google Cloud のプロダクトやサービスのリストが含まれるメニューが表示されます。 Cloud コンソール メニュー

Google Cloud Shell の有効化

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

Google Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。

  1. Google Cloud コンソールで、右上のツールバーにある [Cloud Shell をアクティブにする] ボタンをクリックします。

    ハイライト表示された Cloud Shell アイコン

  2. [続行] をクリックします。

環境がプロビジョニングされ、接続されるまでしばらく待ちます。接続した時点で認証が完了しており、プロジェクトに各自のプロジェクト ID が設定されます。次に例を示します。

Cloud Shell ターミナルでハイライト表示されたプロジェクト ID

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

  • 次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
gcloud auth list

出力:

Credentialed accounts: - @.com (active)

出力例:

Credentialed accounts: - google1623327_student@qwiklabs.net
  • 次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
gcloud config list project

出力:

[core] project =

出力例:

[core] project = qwiklabs-gcp-44776a13dea667a6 注: gcloud ドキュメントの全文については、 gcloud CLI の概要ガイド をご覧ください。

タスク 1: Compute Engine テンプレートを作成する

このタスクでは、インスタンス テンプレートを作成します。これは、仮想マシン(VM)インスタンスやマネージド インスタンス グループ(MIG)を作成するために使用するリソースです。

  1. Google Cloud コンソールのナビゲーション メニューナビゲーション メニュー)で、[Compute Engine] > [インスタンス テンプレート] をクリックします。

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

  3. [インスタンス テンプレートの作成] ページで、次の設定を指定します。残りの設定はデフォルト値のままにします。

プロパティ
ロケーション グローバル
シリーズ E2
マシンタイプ e2-micro(2 vCPU)
アクセス スコープ API ごとにアクセス権を設定
アクセス スコープ > Compute Engine 読み取り専用
ファイアウォール HTTP トラフィックを許可する
  1. [詳細オプション] をクリックします。

  2. [管理] をクリックします。

  3. [自動化] > [起動スクリプト] で、次のスクリプトをコピーして貼り付けます:

# Copyright 2021 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License.# You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. sudo apt-get -y update sudo apt-get -y install git sudo apt-get -y install virtualenv git clone https://github.com/GoogleCloudPlatform/python-docs-samples cd python-docs-samples/iap virtualenv venv -p python3 source venv/bin/activate pip install -r requirements.txt cat example_gce_backend.py | sed -e "s/YOUR_BACKEND_SERVICE_ID/$(gcloud compute backend-services describe my-backend-service --global --format="value(id)")/g" | sed -e "s/YOUR_PROJECT_ID/$(gcloud config get-value account | tr -cd "[0-9]")/g" > real_backend.py gunicorn real_backend:app -b 0.0.0.0:80
  1. [作成] をクリックします。

新しいインスタンス テンプレートが作成されるまで少し時間がかかります。

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

このタスクでは、仮想マシン(VM)インスタンスを単一のエンティティとして管理するためのマネージド インスタンス グループ(MIG)を作成します。

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

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

  3. 左側のメニューから [新しいマネージド インスタンス グループ(ステートレス)] をクリックします。

  4. [新しいマネージド インスタンス グループ(ステートレス)] ページで、以下の設定を指定し、残りの設定はデフォルトのままにします。

プロパティ
名前 my-managed-instance-group
インスタンス テンプレート タスク 1 で作成したインスタンス テンプレートを選択します。
ロケーション マルチゾーン
リージョン us-central1(アイオワ)
自動スケーリング > 自動スケーリング モード オフ: 自動スケーリングを行いません
インスタンス数 インスタンスの数を変更するには、まず自動スケーリングをオフにする必要があります。以下を参照してください。これが完了したら、最大数の値を 3 に設定します。
注: 自動スケーリング モードを変更した後にインスタンスの数を設定することを忘れないでください。
  1. [作成] をクリックします。

MIG の作成には数分かかる場合があります。

タスク 3. Google Cloud のセルフマネージド SSL 証明書リソースを作成する

このタスクでは、まず秘密鍵を作成し、次に証明書を作成して、最後にセルフマネージド SSL 証明書リソースを作成します。Google Cloud SSL 証明書リソースを作成するには、事前に秘密鍵と証明書が必要です。

Google Cloud SSL 証明書には、PEM 形式の秘密鍵と証明書の両方が含まれます。

セルフマネージド SSL 証明書は、ユーザー自身で取得して、プロビジョニング、更新する証明書です。このリソースを使用して、クライアントとロードバランサ間の通信を保護します。なお、ロードバランサは次のタスクで作成します。

秘密鍵と証明書を作成する

  1. Google Cloud コンソールのタイトルバーで、[Cloud Shell をアクティブにする](Cloud Shell)をクリックします。プロンプトが表示されたら、[続行] をクリックします。

  2. OpenSSL の PEM 形式で RSA-2048 暗号化の新しい秘密鍵を作成するには、以下のコマンドを実行します。

openssl genrsa -out PRIVATE_KEY_FILE 2048

CSR を作成する

OpenSSL を使用して PEM 形式で証明書署名リクエスト(CSR)を生成します。

  1. [エディタを開く] をクリックします。プロンプトが表示されたら、[新しいウィンドウで開く] をクリックします。

  2. Cloud Shell エディタで、メニューをクリックして [File] > [New File] を選択します。

  3. ファイル名は、「ssl_config」と入力して Enter キーを押します。

  4. ファイルの作成場所が /home > student-XX-XXXXXXXXX/ssl_config であることを確認し、[OK] をクリックします。

  5. 以下の構成をコピーして Cloud Editor のウィンドウに貼り付けます。

[req] default_bits = 2048 req_extensions = extension_requirements distinguished_name = dn_requirements prompt = no [extension_requirements] basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment [dn_requirements] countryName = US stateOrProvinceName = CA localityName = Mountain View 0.organizationName = Cloud organizationalUnitName = Example commonName = Test
  1. メニューをクリックして [File] > [Save] を選択します。

  2. 前のタブに戻ります。場合によっては、[ターミナルを開く] をクリックして、Cloud Shell セッションを再開する必要があります。

  3. 証明書署名リクエスト(CSR)ファイルを作成するには、以下の OpenSSL コマンドを実行します。

openssl req -new -key PRIVATE_KEY_FILE \ -out CSR_FILE \ -config ssl_config

CSR に署名する

認証局(CA)が CSR に署名する際、認証局は認証局独自の秘密鍵を使用して証明書を作成します。

  • テスト用の自己署名証明書を作成するには、以下の OpenSSL コマンドを実行します。
openssl x509 -req \ -signkey PRIVATE_KEY_FILE \ -in CSR_FILE \ -out CERTIFICATE_FILE.pem \ -extfile ssl_config \ -extensions extension_requirements \ -days 365

セルフマネージド SSL 証明書リソースを作成する

Google Cloud SSL 証明書リソースを作成するには、事前に秘密鍵と証明書が必要です。

  1. グローバル SSL 証明書を作成するには、gcloud compute ssl-certificates create コマンドを --global フラグとともに使用します。
gcloud compute ssl-certificates create my-cert \ --certificate=CERTIFICATE_FILE.pem \ --private-key=PRIVATE_KEY_FILE \ --global
  1. [Cloud Shell の承認] プロンプトで、[承認] をクリックします。

タスク 4. ロードバランサを作成する

このタスクでは、ロードバランサを作成します。HTTP(S) ロード バランシングは Google Front End(GFE)に実装されます。GFE はグローバルに分散しており、Google のグローバル ネットワークとコントロール プレーンを使用して連携します。

ロードバランサを設定するには、前のタスクで作成したインスタンス グループに VM が属している必要があります。

  1. Google Cloud コンソールのナビゲーション メニューナビゲーション メニュー)で、[すべてのプロダクトを表示] をクリックし、[ネットワーク サービス] > [ロード バランシング] をクリックします。

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

  3. [アプリケーション ロードバランサ(HTTP/S)] で [次へ] をクリックします。

  4. [インターネット接続または内部専用] で [インターネット接続(外部)] を選択し、[次へ] をクリックします。

  5. [グローバルまたはシングル リージョンのデプロイ] で [グローバル ワークロードに最適] を選択し、[次へ] をクリックします。

  6. [ロードバランサの世代] で [グローバル外部アプリケーション ロードバランサ] を選択し、[次へ] をクリックします。

  7. [構成] をクリックします。

  8. [ロードバランサの名前] に「my-load-balancer」と入力します。

  9. [バックエンドの構成] > [バックエンド サービスとバックエンド バケット] > [バックエンド サービスを作成] をクリックします。

  10. [バックエンド サービスの作成] パネルで、[名前] に「my-backend-service」と入力します。
    正確な名前(my-backend-service)を使用する必要があります。別の名前を使用すると、VM の起動スクリプトで、リクエストを認証する正しいバックエンド サービス ID が検出されません。

  11. [新しいバックエンド] で、次のように指定し、残りの設定はデフォルトのままにします。

プロパティ
インスタンス グループ my-managed-instance-group
ポート番号 80
  1. [Cloud CDN を有効にする] のチェックボックスをオフにします。

  2. [ヘルスチェック] で、[ヘルスチェックの作成] をクリックします。

  3. [名前] に「my-health-check」と入力します。

  4. [プロトコル] で [HTTP] を選択します。

  5. [保存] をクリックします。

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

[Create global external Application Load balancer] ペインが再度表示されます。

  1. [フロントエンドの構成] をクリックします。次のように指定し、残りの設定はデフォルトのままにします。
プロパティ
プロトコル HTTPS(HTTP/2 と HTTP/3 を含む)
IP アドレス [エフェメラル] をクリックして、[IP アドレスを作成] を選択します。
名前 static-ip」と入力して、[予約] をクリックします。
証明書 my-cert
  1. [完了] をクリックします。

[Create global external Application Load balancer] ペインが再度表示されます。

  1. [Create global external Application Load Balancer] で、[作成] をクリックします。

[ロード バランシング] ページが表示され、ロードバランサのリストに新しいロードバランサが作成されます。

  1. Cloud コンソールで新しいロードバランサの作成が完了したら、ロードバランサの名前をクリックし、[詳細] > [フロントエンド] の外部 IP アドレスを書き留めます。これはタスク 7 で必要になります。

タスク 5. VM を再起動する

このタスクでは、IAP からのリクエストを正しく認証できるように、MIG の VM を再起動します。

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

  2. [my-managed-instance-group] をクリックします。

  3. [VM を再起動 / 置換] をクリックします。

  4. [オペレーション] で [再起動] をクリックします。

  5. [インスタンス] で、3 と入力します。

  6. [最小待機時間] で、0 と入力します。

  7. [VM を再起動] をクリックします。

タスク 6. IAP を設定する

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

このタスクでは、ファイアウォールを構成し、基礎となる VM へのアクセスをブロックして、IAP を介したアクセスのみを許可します。

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

  2. [default-allow-internal] チェックボックスをオンにします。

  3. [削除] をクリックし、もう一度 [削除] を選択して確定します。

  4. [ファイアウォール ルールを作成] をクリックします。次のように指定し、残りの設定はデフォルトのままにします。

プロパティ
名前 allow-iap-traffic
ターゲット ネットワーク上のすべてのインスタンス
送信元 IPv4 範囲 130.211.0.0/22, 35.191.0.0/16(ボックスに各値を貼り付けた後に Enter キーを押します)
プロトコルとポート 指定したプロトコルとポート
TCP 80
  1. [作成] をクリックします。

IAP を設定する

このステップでは、プロジェクトに IAP を設定します。

  1. Google Cloud コンソールのナビゲーション メニューナビゲーション メニュー)で、[セキュリティ] > [Identity-Aware Proxy] をクリックします。

  2. [API を有効にする] をクリックします。

  3. [Identity Aware Proxy に移動] をクリックします。

  4. [同意画面を構成] をクリックします。

注: OAuth 同意画面に機密情報を入力しないでください。OAuth 同意画面に保存した情報は、URL にアクセスするすべてのユーザーに公開される可能性があります。メールとプロダクトの詳細は、ログイン画面だけでなく、ユーザーが権限のないリソースにアクセスしようとしたときにも表示されます。
  1. [ユーザーの種類] で [外部] を選択し、[作成] をクリックします。

  2. [アプリ名] で「IAP」と入力します。

  3. [ユーザー サポートメール] で、受講者アカウントを選択します。アカウントには、student-00-*****@qwiklabs.net が含まれています。

  4. [デベロッパーの連絡先情報] に、ラボウィンドウの受講者アカウントの [ユーザー名] をコピーして貼り付けます。これは前のステップでの値と一致しています

  5. [保存して次へ] を 3 回クリックし、[ダッシュボードに戻る] を選択します。

プロダクト名やメールアドレスなど、OAuth 同意画面の情報を後で変更する場合は、前の手順を繰り返して同意画面を構成します。

  1. Google Cloud コンソールのナビゲーション メニューナビゲーション メニュー)で、[セキュリティ] > [Identity-Aware Proxy] をクリックします。

  2. my-backend-service の隣で、[IAP] 列にあるオン / オフ スイッチを切り替えます。

  3. [IAP の有効化] ダイアログで、チェックボックスをオンにし、構成要件を読んだことを確認します。

  4. [オンにする] をクリックします。

注: エラーが表示された場合は、エラーをクリックしてください。ファイアウォール ルールを追加するように求められた場合は、前に作成したルールを編集して、エラーで言及されたポート番号を含めてください。 IAP ステータス エラー OAuth 同意画面が設定されていることを確認します。

アクセスリストにプリンシパルを追加する

このステップでは、プロジェクトの IAP アクセスリストにプリンシパルを追加します。

  1. [Identity-Aware Proxy] で、my-backend-service のチェックボックスをオンにします。

  2. [プリンシパルを追加] をクリックします。

  3. 自分自身にアクセス権を付与するには、[新しいプリンシパル] の部分に、ラボの認証情報ペインから自分の Qwiklabs の [ユーザー名] をコピーして貼り付けます。

  4. [ロール] で [Cloud IAP] > [IAP で保護されたウェブアプリ ユーザー] を選択します。

  5. [保存] をクリックします。

IAM を構成して、アプリケーションへのアクセスを許可するプリンシパルを確認します。

タスク 7. IAP をテストする

このタスクでは、外部ロードバランサへのアクセスをテストするために curl コマンドを実行し、その後 IAP によって保護されていることを確認します。

  1. Google Cloud コンソールのナビゲーション メニューナビゲーション メニュー)で、[すべてのプロダクトを表示] をクリックし、[ネットワーク サービス] > [ロード バランシング] をクリックします。

  2. [フロントエンド] をクリックします。

  3. Google Cloud コンソールのタイトルバーで、[Cloud Shell をアクティブにする](Cloud Shell)をクリックします。プロンプトが表示されたら、[続行] をクリックします。

  4. 以下の curl コマンドを実行してください。その際、Load Balancer External IP address の部分をご利用のロードバランサの外部 IP アドレスに置き換えてください。

curl -kvi https://<Load Balancer External IP address> 注: IAP が生成したレスポンスとして「true」と表示された場合、Compute Engine インスタンスの IAP の構成が正常に完了しています。 構成が正常に完了した場合のメッセージ
  1. コンソール ページを上にスクロールし、accounts.google.com への Http/2 302 リダイレクションを見つけます。

  2. ロケーション リンクをクリックします。

リンクをクリックすると、Google アカウントの統合認証ページが開きます。

Google アカウントの統合認証ダイアログ 注: 自己署名証明書を使用したため、アプリケーション自体にアクセスすることはできません。しかし、これにより IAP が構成され、トラフィックが保護されていることを確認できます。 IAP によるアクセス制限を確認します。

お疲れさまでした

Compute Engine インスタンス上で実行されているウェブ アプリケーションを安全に保護するために、IAP を正常に使用しました。

このラボでは、以下の操作について学習しました。

  • インスタンス テンプレートを作成する。
  • インスタンス グループを作成する。
  • 自己署名証明書を作成する。
  • ロードバランサを作成する。
  • OAuth 同意画面を構成する。
  • IAP を使用してアプリケーションへのアクセスを許可する。

ラボを終了する

ラボが完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Google Cloud Skills Boost から削除され、アカウントの情報も消去されます。

ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。

星の数は、それぞれ次の評価を表します。

  • 星 1 つ = 非常に不満
  • 星 2 つ = 不満
  • 星 3 つ = どちらともいえない
  • 星 4 つ = 満足
  • 星 5 つ = 非常に満足

フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。

フィードバックやご提案の送信、修正が必要な箇所をご報告いただく際は、[サポート] タブをご利用ください。

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

前へ 次へ

始める前に

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

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

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

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

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

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

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

ありがとうございます。

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

1 回に 1 つのラボ

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

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

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