
始める前に
- ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
- ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
- 画面左上の [ラボを開始] をクリックして開始します
Create a Compute Engine template
/ 15
Create a managed instance group
/ 15
Create a Google Cloud self-managed SSL certificate resource
/ 15
Create a load balancer
/ 15
Restart your VMs
/ 15
Confirm OAuth Consent has been setup
/ 15
Allow a principal to access the application by configuring IAM
/ 10
このラボでは、BeyondCorp Enterprise の Identity-Aware Proxy(IAP)を使用して、ID に基づいてトラフィックを制限し、Compute Engine のワークロードを保護します。
IAP は BeyondCorp Enterprise の機能であり、Google Cloud のゼロトラスト ソリューションです。これにより、組織の従業員は VPN を必要とせず、マルウェア、フィッシング、データの損失を恐れることなく、どこからでもウェブ アプリケーションに安全にアクセスできます。
このラボでは、ゼロトラストの構成を有効にすることで、アクセスを制限するウェブベースの統合開発環境(IDE)をプロビジョニングします。
このラボでは、次のタスクの実行方法について学びます。
この Qwiklabs ハンズオンラボでは、シミュレーションやデモ環境ではなく、実際のクラウド環境を使ってご自身でラボのアクティビティを行うことができます。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側のパネルには、このラボで使用する必要がある一時的な認証情報が表示されます。
ユーザー名をコピーし、[Google Console を開く] をクリックします。 ラボでリソースが起動し、別のタブで [アカウントの選択] ページが表示されます。
[アカウントの選択] ページで [別のアカウントを使用] をクリックします。[ログイン] ページが開きます。
[接続の詳細] パネルでコピーしたユーザー名を貼り付けます。パスワードもコピーして貼り付けます。
しばらくすると、このタブで Cloud コンソールが開きます。
Google Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。
Google Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。
Google Cloud コンソールで、右上のツールバーにある [Cloud Shell をアクティブにする] ボタンをクリックします。
[続行] をクリックします。
環境がプロビジョニングされ、接続されるまでしばらく待ちます。接続した時点で認証が完了しており、プロジェクトに各自のプロジェクト ID が設定されます。次に例を示します。
gcloud は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。
出力:
出力例:
出力:
出力例:
このタスクでは、インスタンス テンプレートを作成します。これは、仮想マシン(VM)インスタンスやマネージド インスタンス グループ(MIG)を作成するために使用するリソースです。
Google Cloud コンソールのナビゲーション メニュー()で、[Compute Engine] > [インスタンス テンプレート] をクリックします。
[インスタンス テンプレートを作成] をクリックします。
[インスタンス テンプレートの作成] ページで、次の設定を指定します。残りの設定はデフォルト値のままにします。
プロパティ | 値 |
---|---|
ロケーション | グローバル |
シリーズ | E2 |
マシンタイプ | e2-micro(2 vCPU) |
アクセス スコープ | API ごとにアクセス権を設定 |
アクセス スコープ > Compute Engine | 読み取り専用 |
ファイアウォール | HTTP トラフィックを許可する |
[詳細オプション] をクリックします。
[管理] をクリックします。
[自動化] > [起動スクリプト] で、次のスクリプトをコピーして貼り付けます:
新しいインスタンス テンプレートが作成されるまで少し時間がかかります。
このタスクでは、仮想マシン(VM)インスタンスを単一のエンティティとして管理するためのマネージド インスタンス グループ(MIG)を作成します。
Google Cloud コンソールのナビゲーション メニュー()で、[Compute Engine] > [インスタンス グループ] をクリックします。
[インスタンス グループを作成] をクリックします。
左側のメニューから [新しいマネージド インスタンス グループ(ステートレス)] をクリックします。
[新しいマネージド インスタンス グループ(ステートレス)] ページで、以下の設定を指定し、残りの設定はデフォルトのままにします。
プロパティ | 値 |
---|---|
名前 | my-managed-instance-group |
インスタンス テンプレート | タスク 1 で作成したインスタンス テンプレートを選択します。 |
ロケーション | マルチゾーン |
リージョン | us-central1(アイオワ) |
自動スケーリング > 自動スケーリング モード | オフ: 自動スケーリングを行いません |
インスタンス数 | インスタンスの数を変更するには、まず自動スケーリングをオフにする必要があります。以下を参照してください。これが完了したら、最大数の値を 3 に設定します。 |
MIG の作成には数分かかる場合があります。
このタスクでは、まず秘密鍵を作成し、次に証明書を作成して、最後にセルフマネージド SSL 証明書リソースを作成します。Google Cloud SSL 証明書リソースを作成するには、事前に秘密鍵と証明書が必要です。
Google Cloud SSL 証明書には、PEM 形式の秘密鍵と証明書の両方が含まれます。
セルフマネージド SSL 証明書は、ユーザー自身で取得して、プロビジョニング、更新する証明書です。このリソースを使用して、クライアントとロードバランサ間の通信を保護します。なお、ロードバランサは次のタスクで作成します。
Google Cloud コンソールのタイトルバーで、[Cloud Shell をアクティブにする]()をクリックします。プロンプトが表示されたら、[続行] をクリックします。
OpenSSL の PEM 形式で RSA-2048 暗号化の新しい秘密鍵を作成するには、以下のコマンドを実行します。
OpenSSL を使用して PEM 形式で証明書署名リクエスト(CSR)を生成します。
[エディタを開く] をクリックします。プロンプトが表示されたら、[新しいウィンドウで開く] をクリックします。
Cloud Shell エディタで、メニューをクリックして [File] > [New File] を選択します。
ファイル名は、「ssl_config」と入力して Enter キーを押します。
ファイルの作成場所が /home > student-XX-XXXXXXXXX/ssl_config であることを確認し、[OK] をクリックします。
以下の構成をコピーして Cloud Editor のウィンドウに貼り付けます。
メニューをクリックして [File] > [Save] を選択します。
前のタブに戻ります。場合によっては、[ターミナルを開く] をクリックして、Cloud Shell セッションを再開する必要があります。
証明書署名リクエスト(CSR)ファイルを作成するには、以下の OpenSSL コマンドを実行します。
認証局(CA)が CSR に署名する際、認証局は認証局独自の秘密鍵を使用して証明書を作成します。
Google Cloud SSL 証明書リソースを作成するには、事前に秘密鍵と証明書が必要です。
gcloud compute ssl-certificates create
コマンドを --global
フラグとともに使用します。このタスクでは、ロードバランサを作成します。HTTP(S) ロード バランシングは Google Front End(GFE)に実装されます。GFE はグローバルに分散しており、Google のグローバル ネットワークとコントロール プレーンを使用して連携します。
ロードバランサを設定するには、前のタスクで作成したインスタンス グループに VM が属している必要があります。
Google Cloud コンソールのナビゲーション メニュー()で、[すべてのプロダクトを表示] をクリックし、[ネットワーク サービス] > [ロード バランシング] をクリックします。
[ロードバランサを作成] をクリックします。
[アプリケーション ロードバランサ(HTTP/S)] で [次へ] をクリックします。
[インターネット接続または内部専用] で [インターネット接続(外部)] を選択し、[次へ] をクリックします。
[グローバルまたはシングル リージョンのデプロイ] で [グローバル ワークロードに最適] を選択し、[次へ] をクリックします。
[ロードバランサの世代] で [グローバル外部アプリケーション ロードバランサ] を選択し、[次へ] をクリックします。
[構成] をクリックします。
[ロードバランサの名前] に「my-load-balancer」と入力します。
[バックエンドの構成] > [バックエンド サービスとバックエンド バケット] > [バックエンド サービスを作成] をクリックします。
[バックエンド サービスの作成] パネルで、[名前] に「my-backend-service」と入力します。
正確な名前(my-backend-service)を使用する必要があります。別の名前を使用すると、VM の起動スクリプトで、リクエストを認証する正しいバックエンド サービス ID が検出されません。
[新しいバックエンド] で、次のように指定し、残りの設定はデフォルトのままにします。
プロパティ | 値 |
---|---|
インスタンス グループ | my-managed-instance-group |
ポート番号 | 80 |
[Cloud CDN を有効にする] のチェックボックスをオフにします。
[ヘルスチェック] で、[ヘルスチェックの作成] をクリックします。
[名前] に「my-health-check」と入力します。
[プロトコル] で [HTTP] を選択します。
[保存] をクリックします。
[作成] をクリックします。
[Create global external Application Load balancer] ペインが再度表示されます。
プロパティ | 値 |
---|---|
プロトコル | HTTPS(HTTP/2 と HTTP/3 を含む) |
IP アドレス | [エフェメラル] をクリックして、[IP アドレスを作成] を選択します。 |
名前 | 「static-ip」と入力して、[予約] をクリックします。 |
証明書 | my-cert |
[Create global external Application Load balancer] ペインが再度表示されます。
[ロード バランシング] ページが表示され、ロードバランサのリストに新しいロードバランサが作成されます。
このタスクでは、IAP からのリクエストを正しく認証できるように、MIG の VM を再起動します。
Google Cloud コンソールのナビゲーション メニュー()で、[Compute Engine] > [インスタンス グループ] をクリックします。
[my-managed-instance-group] をクリックします。
[VM を再起動 / 置換] をクリックします。
[オペレーション] で [再起動] をクリックします。
[インスタンス] で、3 と入力します。
[最小待機時間] で、0 と入力します。
[VM を再起動] をクリックします。
このタスクでは、ファイアウォールを構成し、基礎となる VM へのアクセスをブロックして、IAP を介したアクセスのみを許可します。
Google Cloud コンソールのナビゲーション メニュー()で、[VPC ネットワーク] > [ファイアウォール] をクリックします。
[default-allow-internal] チェックボックスをオンにします。
[削除] をクリックし、もう一度 [削除] を選択して確定します。
[ファイアウォール ルールを作成] をクリックします。次のように指定し、残りの設定はデフォルトのままにします。
プロパティ | 値 |
---|---|
名前 | allow-iap-traffic |
ターゲット | ネットワーク上のすべてのインスタンス |
送信元 IPv4 範囲 | 130.211.0.0/22, 35.191.0.0/16(ボックスに各値を貼り付けた後に Enter キーを押します) |
プロトコルとポート | 指定したプロトコルとポート |
TCP | 80 |
このステップでは、プロジェクトに IAP を設定します。
Google Cloud コンソールのナビゲーション メニュー()で、[セキュリティ] > [Identity-Aware Proxy] をクリックします。
[API を有効にする] をクリックします。
[Identity Aware Proxy に移動] をクリックします。
[同意画面を構成] をクリックします。
[ユーザーの種類] で [外部] を選択し、[作成] をクリックします。
[アプリ名] で「IAP」と入力します。
[ユーザー サポートメール] で、受講者アカウントを選択します。アカウントには、student-00-*****@qwiklabs.net が含まれています。
[デベロッパーの連絡先情報] に、ラボウィンドウの受講者アカウントの [ユーザー名] をコピーして貼り付けます。これは前のステップでの値と一致しています
[保存して次へ] を 3 回クリックし、[ダッシュボードに戻る] を選択します。
プロダクト名やメールアドレスなど、OAuth 同意画面の情報を後で変更する場合は、前の手順を繰り返して同意画面を構成します。
Google Cloud コンソールのナビゲーション メニュー()で、[セキュリティ] > [Identity-Aware Proxy] をクリックします。
my-backend-service の隣で、[IAP] 列にあるオン / オフ スイッチを切り替えます。
[IAP の有効化] ダイアログで、チェックボックスをオンにし、構成要件を読んだことを確認します。
[オンにする] をクリックします。
このステップでは、プロジェクトの IAP アクセスリストにプリンシパルを追加します。
[Identity-Aware Proxy] で、my-backend-service のチェックボックスをオンにします。
[プリンシパルを追加] をクリックします。
自分自身にアクセス権を付与するには、[新しいプリンシパル] の部分に、ラボの認証情報ペインから自分の Qwiklabs の [ユーザー名] をコピーして貼り付けます。
[ロール] で [Cloud IAP] > [IAP で保護されたウェブアプリ ユーザー] を選択します。
[保存] をクリックします。
このタスクでは、外部ロードバランサへのアクセスをテストするために curl コマンドを実行し、その後 IAP によって保護されていることを確認します。
Google Cloud コンソールのナビゲーション メニュー()で、[すべてのプロダクトを表示] をクリックし、[ネットワーク サービス] > [ロード バランシング] をクリックします。
[フロントエンド] をクリックします。
Google Cloud コンソールのタイトルバーで、[Cloud Shell をアクティブにする]()をクリックします。プロンプトが表示されたら、[続行] をクリックします。
以下の curl コマンドを実行してください。その際、Load Balancer External IP address の部分をご利用のロードバランサの外部 IP アドレスに置き換えてください。
コンソール ページを上にスクロールし、accounts.google.com への Http/2 302 リダイレクションを見つけます。
ロケーション リンクをクリックします。
リンクをクリックすると、Google アカウントの統合認証ページが開きます。
Compute Engine インスタンス上で実行されているウェブ アプリケーションを安全に保護するために、IAP を正常に使用しました。
このラボでは、以下の操作について学習しました。
ラボが完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Google Cloud Skills Boost から削除され、アカウントの情報も消去されます。
ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。
星の数は、それぞれ次の評価を表します。
フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。
フィードバックやご提案の送信、修正が必要な箇所をご報告いただく際は、[サポート] タブをご利用ください。
Copyright 2020 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
1 回に 1 つのラボ
既存のラボをすべて終了して、このラボを開始することを確認してください