1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Azure] Application Gateway v1 で構築検証してみる(E2E TLS/パスベース規則)④

Last updated at Posted at 2021-10-27

Application Gatewayの構築検証記事③です。
第2回までで、Application Gatewayの作成とルール①の設定について記載しました。
 1回目:構築する構成図と事前準備
 2回目:Application Gatewayの作成とエンドツーエンドTLSの設定
 3回目:パスベース規則の設定

第4回の今回は、運用上のTIPSとして以下をご紹介します。
・Application Gatewayの起動/停止
・診断設定(アクセスログ等のログ収集設定)
・証明書の更新
・ルーティング規則の優先度設定

Application Gatewayの起動/停止

Application Gatewayを停止すると、課金も停止されます。

検証用のApplication Gatewayは、使うときだけ起動することで、コスト削減が可能です。

Azureポータルからは起動/停止できないため、Azure PowerShellやAzure CLIを使用して実行します。
下記にAzure PowerShellのコマンド例を記載します。

# Application Gateway Restart PowerShell
# APGW Parameter
$ResourceGroupName = <Resource Group>
$APGWName = <Application Gateway Name>
$ag = Get-AzApplicationGateway -Name $APGWName -ResourceGroupName $ResourceGroupName

# APGW Stop
Stop-AzApplicationGateway -ApplicationGateway $ag

# APGW Start
Start-AzApplicationGateway -ApplicationGateway $ag

実行結果として、対象のAppication Gatewayの情報が返るため、OperationState : Stoppedになっていれば停止完了、
OperationState : Runnningになっていれば起動完了です。
image.png
起動状態はポータルからも確認可能です。(設定⇒プロパティメニューから確認可能)
image.png
なお、Application Gatewayの停止中にバックエンドのVMも停止しようとしたらエラーが発生がしました。
Application Gatewayの停止/起動運用をする場合、VMの起動/停止タイミングと調整した方がよさそうです。
image.png
image.png

診断設定

診断設定を有効化することで、Application Gatewayのアクセスログ等を収集可能です。
以下に設定手順と診断情報の確認手順を記載します。

■ 診断設定有効化手順

監視⇒診断設定メニューを開く
image.png
「診断設定を追加する」をクリック
image.png
収集するログの種類と保存先を指定し「保存」をクリックします。
今回はストレージアカウントに出力する設定としました。
image.png

■ 診断情報確認手順

ログ収集までしばらく待ち、監視⇒ログメニューを開きます。
image.png
試しにアクセスログを確認してみるため、以下のクエリを実行します。
AzureDiagnostics | where Category == "ApplicationGatewayAccessLog"
image.png
クエリの実行結果が表示されます。
image.png
CSVでダウンロードする場合、エクスポート⇒CSVへのエクスポート-すべての列を選択
image.png
CSVファイルでダウンロード可能です。(下図は参考になる列をサンプルで表示)
image.png
例えば、 "clientIP_s"列 に接続元クライアントIP、
"requestQuery_s" 列の "SERVER-ROUTED" に接続しているバックエンドサーバのIPが表示されるので、
どのセッションがどのサーバに、どのような情報(Cookie等)で接続しているか確認できます。

証明書の更新

■ リスナーのPFX証明書更新

設定⇒リスナーより、HTTPSプロトコルを設定しているリスナーを開きます。
image.png
以下を設定し、画面下部の「保存」をクリックします。
・証明書の選択:          既存のものを選択
・選択した証明書の更新または編集: ☑
・PFX証明書ファイル:       (新しいPFX証明書をアップロード)
・パスワード:           (PFX証明書生成時に設定したパスワード)
image.png
画面右上の通知にて、更新が完了したメッセージが表示されるまで待機します。※20分程度かかります。
image.png

■ HTTP設定のCER証明書更新

HTTP設定より、HTTPSプロトコルを設定している設定を開きます。
image.png
証明書欄で「証明書の追加」をクリックします。
image.png
以下の設定を行い、もう一度「証明書の追加」をクリックします。
・証明書の選択: 新規作成
・CER証明書:   (新しいCER証明書をアップロード)
・証明書名:   (任意。既存と重複しないように設定
※古いCER証明書と同じ名前を設定すると、保存時にエラーとなります。証明書のファイル名は同じでもOK。
image.png
古い証明書の右にある「・・・」をクリックし、「削除」を選択します。
image.png
古い証明書が削除されたことを確認し、画面下部の「保存」をクリックします。
image.png
画面右上の通知にて、更新が完了したメッセージが表示されるまで待機します。
※20分程度かかります。
image.png
ポータル上では古い証明書が非表示になりましたが、まだ内部で情報を持っているためコマンドで削除します。
サポートに確認したところ、古い証明書を削除しなくとも、なにか問題が起きることはなさそうだが、
ポータルから見えない情報になるため、管理面から削除推奨とのこと。

Cloud Shellを起動します。今回はPowerShellを利用します。
image.png
image.png
登録されているCER証明書を確認します。

$appgw = Get-AzApplicationGateway -Name "<Application Gateway名>" -ResourceGroupName "<リソースグループ名>"
Get-AzApplicationGatewayAuthenticationCertificate -ApplicationGateway $appgw | Select-Object Name,ProvisioningState

image.png

古いCER証明書を削除します。今回は「server_cer_old」を削除します。
※20分程度かかります。

Remove-AzApplicationGatewayAuthenticationCertificate -ApplicationGateway $appgw -Name "<古いCER証明書名>" | Select-Object ProvisioningState
Set-AzApplicationGateway -ApplicationGateway $appgw | Select-Object ProvisioningState

古いCER証明書が存在しないことを確認します。

Get-AzApplicationGatewayAuthenticationCertificate -ApplicationGateway $appgw | Select-Object Name,ProvisioningState

image.png

ルーティング規則の優先度設定

Standard V2 SKUの場合、ルールの優先度を設定可能ですが、
Standard V1 SKUの場合、ポータルに表示される順序で、上から順に処理されます。

すべてFQDN指定のルールであれば考慮不要ですが、IPアドレス指定のルールを設定する場合は、注意が必要です。
Application GatewayではプライベートIPは1つのみ付与可能なため、IPアドレスのルールが上位にあると、
プロトコルが同じすべてのアクセスが該当してしまいます。
image.png
そのため、IP指定のルールが一番最後になるように設定する必要があります。

ただし、ルールを更新すると順序も更新されるようで、IP指定のルールが上位になった場合は一度削除→再作成が必要です。
(何も変更せず保存しても順序は変わりませんでした。。)

以上です。

1
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?