LoginSignup
0
0

More than 3 years have passed since last update.

【GCP】BeyondCorp Remote Access実装〜GCPを介して公開中サイトへ接続〜

Last updated at Posted at 2020-10-13

構成図
作成中

準備
テスト用のドメインを2つ用意(Azureのインスタンスにひもづけるもの、HTTPSロードバランサにひもづけるもの)お名前ドットコムなどで用意してください。

AzureにWebサーバを構築する
以下のドキュメントにもとづき、「WordPress の構成」の最後まで実施する。
https://docs.microsoft.com/ja-jp/azure/virtual-machines/linux/tutorial-lamp-stack
生成されたIPアドレスを、準備していた「Azureのインスタンスにひもづけるもの」のドメインのAレコードにひもづける
※取得したドメイン事業者の設定方法に準じてください。

IAP Connectorを設定する
【参考URL】
https://dev.classmethod.jp/articles/beyondcorp-remote-access-getting-started1/
https://cloud.google.com/iap/docs/enabling-on-prem-howto?authuser=2&hl=ja&_ga=2.167698558.-1346874108.1593496033&_gac=1.28074574.1601269179.CjwKCAjw8MD7BRArEiwAGZsrBeDInXWIg-vBSzJFQxJMuuCk9WonpM2wKFPtwbgVdBSEFGwEzxqKnhoCnPIQAvD_BwE

PJを作成する
以下のAPIを有効化する
Compute Engine API
Google Kubernetes Engine API
Cloud Deployment Manager API V2
IAMに移動し、「Google APIサービスエージェント」というアカウントにGKE管理者の権限を追加。
用意していたHTTPSロードバランサにひもづけるドメインに以下のCAAレコードを追加する。
CAA 0 issue "letsencrypt.org"
0 issue "pki.goog"
Cloud Load Balnacingのページにて、「詳細設定メニュー」をクリック。
[証明書]タブをクリック。
[+ SSL証明書を作成]をクリック。
以下の項目を入力
名前:任意
作成モード:[Googleマネージドの証明書を作成する]にチェック
ドメイン:HTTPSロードバランサにひもづけるドメインを入力
cloud shellを起動
以下のコマンドを入力
git clone https://github.com/GoogleCloudPlatform/iap-connector
cd iap-connector/

vim iap-connector.yaml のコマンドを入力し、iap-connector.yamlを編集。
resources.properties.zone: GKEクラスタを展開するゾーンを入力します
resources.properties.serviceAccountName: 手順1で設定したGoogle APIサービスエージェントのアカウント名
resources.properties.routing.name: 任意の設定名。Deployment Managerのデプロイ名になります
resources.properties.routing.mapping.source: Cloud Load Balancingに割り当てるドメイン
resources.properties.routing.mapping.destination: 転送先(IPアドレスは不可。Azureのインスタンスにひもづけたドメインを記載)
resources.properties.tls: 手順1で作成したSSL証明書名
末尾3行はオプションのプロパティです。/iap-connector.py.schemaファイルに説明があります。今回は動作確認用途なので、GKEクラスタノードの利用料金をなるべく安くなるようにしてみました。

作成例
imports:
- path: iap-connector.py

resources:
- name: iap-connector
type: iap-connector.py
properties:
zone: asia-northeast1-a
serviceAccountName: XXXXXXXXX@cloudservices.gserviceaccount.com
routing:
- name: test-bcra-com
mapping:
- name: host
source: test-bcra.com
destination: test-azure-bcra.com
tls:
- test-bcra-com
preemptible: true
initialNodeCount: 1
replicas: 1

以下のgcloud コマンドでCloud Deployment Managerのデプロイを実行します。
gcloud deployment-manager deployments create test-bcra-com --config=iap-connector.yaml
※test-bcra-comはresources.properties.routing.nameと合わせてください。
※作成まで5分ほどかかります。

作成が完了しましたら、HTTPSロードバランサに付与されているIPアドレスを用意していた「HTTPSロードバランサにひもづけるもの」のドメインに紐付けてください。
※しばらくするとHTTPSロードバランサの証明書で、provisioningが完了します。

ブラウザからHTTPSに紐付けたドメインにアクセスし、Azureインスタンスに接続できるか確認してください。
(GCPを介してAzure側に接続できているかの確認です。)

IAPの画面から、Resource列で「default/」となっている行のIAPのスイッチをONにしてください。
※ステータスが「エラー」とでますが、こちらはwarningなので、エラーが出ていても問題はありません。

上記と同じ行のチェックボックスにチェックをつけてください。
右側に情報パネルが表示されますので、メンバーを追加をクリックしてください。
許可したいGoogleアカウントを新しいメーンバーに入力し、ロールを選択から、[IAP-secured Web App User]を選択してください。

上記でアクセスしたURLに再度アクセスし、Googleにログインの画面が表示されれば成功です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0