構成図
作成中
準備
テスト用のドメインを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:
- name: host
- test-bcra-com
preemptible: true
initialNodeCount: 1
replicas: 1
- name: test-bcra-com
以下の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にログインの画面が表示されれば成功です。