みち草

Azure中心にまとめる技術情報ブログ

iPad で Azure VPN P2S 接続を構成する + Fiddler をプロキシにしてテナント制限をかける (P2S 接続編)

はじめに

iPad を Azure に P2S 接続させた記録です。

そこに至るまでの iPad の設定に手間取ったためまとめておきます。

接続後、Azure VM に Fiddler を入れたプロキシを用意し、テナント制限をかけるところまで試したのでそちらも後にまとめます。

目次

参考にした記事

今回の内容は、次の記事を参考にして実現できました。 ほぼそのままでできた部分もあれば、一部変更が必要な箇所もありました。

qiita.com

www.cloudou.net

qiita.com

環境

使用しているデバイス、OS 情報などは次のとおりです。

  • iPad (iOS 17.6.1)
  • プロキシ (Fiddler Classic) 用 VM (Windows (Windows Server 2022 Datacenter Azure Edition)
  • 手元の操作端末 (Windows 11 24H2)

準備した Azure 環境はこんな感じです。

  • VNet (10.3.0.0/16)
  • VM 用サブネット (10.3.0.0/24)
  • GatewaySubnet (10.3.250.0/24)
  • プロキシ用 VM (10.3.0.4)
  • VPN ゲートウェイ (VpnGw1, アクティブ/アクティブ、BGP、Key Vault アクセスは無効)

NSG や Bastion など、あまり関係のないリソースは省略しています。

これらを使ってこうやったらできたよ、というのをまとめます。

環境の構築

リソースのデプロイ

VNet、VM、VPN ゲートウェイのデプロイは特に特別なことはないため、ここでは省略します。

強いて挙げれば、ここでは VPN ゲートウェイをデプロイするときの次の 3 つの選択はすべて "無効" を選択しています。

  • アクティブ/アクティブ モードの有効化
  • BGP の構成
  • Key Vault アクセスを有効にする

P2S 用証明書の作成

続いて、P2S の認証で使用する自己署名のルート証明書、クライアント証明書を作成します。次のドキュメントに従います。

learn.microsoft.com

ルート証明書の作成

ドキュメントの「自己署名ルート証明書の作成」の流れでルート証明書を作成します。

特にこだわりがなければ、ドキュメント内のサンプルをそのままコピペ実行で大丈夫です。

管理者権限の PowerShell で実行します。

PowerShell は閉じずに次へ

クライアント証明書の作成

こちらは 「クライアント証明書の生成」に従います。 PowerShell を閉じておらず、こだわりがなければそのまま「例 1 - PowerShell コンソール セッションがまだ開いたまま」のコマンドをコピペして実行すれば OK です。

これで、必要な証明書が作成できました。

証明書のエクスポート

作成した次の 2 つの証明書をエクスポートします。

同じドキュメントの「ルート証明書の公開キー (.cer) のエクスポート」と「クライアント証明書のエクスポート」に従い、それぞれ .cer と .pfx 形式でエクスポートします。

クライアント証明書のエクスポートでは、「秘密キーのエクスポート」を忘れずに!

VPN ゲートウェイの設定

エクスポートした証明書を用いて、VPN ゲートウェイに P2S 用の設定を行います。 ドキュメントで言うと「VPN クライアント アドレス プールを追加する」、「トンネルの種類と認証の種類を指定する」、「ルート証明書の公開キー情報のアップロード」 の箇所に該当します。

やることはシンプル、こんな感じで VPN ゲートウェイの「ポイント対サイトの構成」にアドレスプール、トンネルの種類、エクスポートした証明書の中身のアップロードを行います。

アドレス プールは P2S のクライアントに払い出される IP アドレスとなるため、既存環境と重複しないものを指定します。

トンネルの種類は、ここでは OpenVPN を利用します。

公開証明書データには、エクスポートした証明書 (.cer) をメモ帳で開き、BEGIN と END の間にある値だけをコピペします。 ただし、そのままコピペすると改行が含まれてしまうため、改行を消して 1 行の状態にしてからポータルへ貼り付けましょう。

※ ↓ この辺の改行が含まれてると NG

VPN ゲートウェイの設定はこれで OK です。

VPN 構成ファイルの作成

ここまではよくある P2S 構成と同じですが、ここからカスタマイズしていく必要があります。 参考手順は「iOSデバイスからAzure上の仮想ネットワークにP2S接続する」の 手順 7 以降ですが、先日試した結果だと構成ファイルに少し変更が必要なので、下にまとめています。

pfx からのキー情報取り出し

参考手順と順番が前後しますが、セクション分けしやすいのでこちらを先に行います。

この後、pfx にエクスポートされている秘密鍵などのコピペが必要になりますが、pfx のままでは見られないため、 openssl のコマンドを用いて pfx を txt 形式に変換します。

openssl がインストールされた環境がなくても、Cloud Shell が使えればそこでできます。今はストレージ アカウントも不要なので簡単です。

learn.microsoft.com

Cloud Shell を起動して、[ファイルの管理] - [アップロード] からエクスポートした pfx ファイルをアップロードします。

アップロードした pfx ファイルに対して、次のコマンドを実行します。

openssl pkcs12 -in "<pfx ファイル名>" -nodes -out "profileinfo.txt"

pfx のパスワードを入力すると、変換されたファイルが出力されます。

今度は [ファイルの管理]-[ダウンロード] から profileinfo.txt を指定し、ファイルをダウンロードします。

ここで [ダウンロード] を選択した後、右下のポップアップを選択しないとダウンロードされないので注意

これで、構成ファイル作成の準備ができました。

既存構成ファイルの編集

続いて、 VPN ゲートウェイからクライアントをダウンロードします。

zip でダウンロードされるので解凍して、OpenVPN フォルダにある vpnconfig.ovpn をメモ帳で開き、上から順に変更していきます。

オプション削除

上部に記載されているのは OpenVPN のオプションのようですが、このままだとエラーが出てしまい使えないオプションがありました。 そのため、"persist-key"、"persist-tun"、"log openvpn.log" の 3 行を削除します。

証明書情報コピペ

P2S CA root certificate と Pre Shared Key はそのままで問題なく、その下の P2S client certificate と private key の $xxxx の部分にそれぞれの値を貼り付ける必要があります。

ここで、先ほどの profileinfo.txt を使用します。

profileinfo 内には BEGIN PRIVATE KEY、BEGIN CERTIFICATE、BEGIN CERTIFICATE と 3 つありますが、1 番上の Private Key を vpnconfig.ovpn の $PRIVATEKEY と置き換えます。

置き換え後の vpnconfig

続いて、真ん中の BEGIN CERTIFICATE から END CERTIFICATE までを、vpnconfig.ovpn の $CLIENTCERTIFICATE と置き換えます。

置き換え後の vpnconfig

これで、構成ファイルの作成は完了です。あとはこれを使って、iPad から VPN 接続を行います。

メールなり何なりで、iPad に編集した vpnconfig.ovpn ファイルをわたしておきます。

iPad から VPN 接続を行う

iPad から VPN 接続を行うため、クライアントとして OpenVPN Connect アプリをインストールします。

OpenVPN Connect – OpenVPN App

OpenVPN Connect – OpenVPN App

  • OpenVPN Inc.
  • ユーティリティ
  • 無料
apps.apple.com

vpnconfig.ovpn ファイルを OpenVPN Connect で開くと、プロファイル追加画面になるため Add します。

プロファイルを用いて接続を行えば、VPN 接続が構成されます。

接続の確認には、Azure VM にアクセスさせてみたり、 ping を送ってみたりするのがよいでしょう

これで iPad での Azure VPN P2S 接続は完了です!

終わりに

iPad (iOS) での接続は初めてだったのでよくわからないところからスタートしましたが、先人の知恵をお借りして無事接続できました。 config で消さないといけない部分があったりと結構手こずったので、参考になればと思います。

本当は続けて Fiddler を介したテナント制限まで書くつもりだったのですが、なかなか筆が進められず、ここまで作るのにも結構時間がかかってしまいました。 時間がかかって結局何も投稿しないのが一番よくないので、一旦完成した P2S 接続編までの投稿です。 テナント制御編も書きます。

技術書典 17 に Azure 本 (ごった煮) で出展します

はじめに

今回も、会社の現・元メンバーと一緒に 2024/11/02 から 2024/11/17 開催の技術書典 17 に出展予定のためざっくり紹介

出展内容

Azure MixBook 24H2

techbookfest.org

いつもの MixBook 24H2 にて、第 2 章の「Azure でオレオレPrivileged Identity Management を作る」を書きました。

Privileged Identity Management、通称 PIM はアクセス権限を時間制限付きで付与・剥奪できる機能です。 これを使って普段は権限をあまり与えずにおき、必要な時に昇格する、といったことが可能ですが、 この機能を利用するにはEntra ID Premium 2 ライセンスが必要です。

learn.microsoft.com

今回は、この PIM を使うことなく、同じような時間制限付きのアクセス権付与・剥奪の仕組みを作る方法を紹介しています。

もちろん "完全再現" というわけではなく、PIM では可能な延長など実装していない部分もありますが、 「時間制限付きの権限付与」は実現できているので簡易版みたいなイメージを持ってもらえればいいのかと思います。

他のメンバーのテーマも面白いものがたくさんです (AI を使ってきのこ派たけのこ派の討論をさせてきのこ派を勝たせたい、とか) 物理本は 11/3 現地のみですので気になるものがあればぜひ見てください。

技術書典 16 に Azure 本 (ごった煮 + 入門書) で出展します

はじめに

今回は開催前に書きたいと思っていたので。

会社のメンバーと一緒に 2024 年 5 月 25 日 から 6 月 9 日開催の技術書典 16 に出展します!ざっくり紹介!

出展内容

Azure MixBook 24H1

techbookfest.org

もっちりソフトのお決まりになっている MixBook 24H1 にて、第 6 章の「PowerShell で 2 か月の Azure 利用料金を比較する」を書きました。

Azure Cost Management では特定の 2 か月の料金を一覧に並べることはできても、比較して差額までは出せません。 ただ、料金がどれくらい上がったのか知りたい、という話はたまに聞きます。

そこで、PowerShell を使ってリソース グループごとの差額を算出し、利用料金がどれくらい増えた or 減ったを確認できるスクリプトを作りました。 (リソース ID 単位での比較もできますが、リソース量によってはとても時間がかかる)

どのようなロジックで作成しているか、スクリプトの中身の解説をしています。

Azure OpenAI、AKS フリート マネージャー、Bicep の関数など、他のメンバーが書いている記事も興味を持つものがあるかも!

Takeoff into Azure

そしてなんと、今回はもう 1 冊!

techbookfest.org

以前の技術書典にて、「(MixBook の内容に) 興味はあるけど Azure わからない」「どこから知ればいいのか」といったお話を受け、 ないなら作ってしまえということで、 Azure 初中級者向けの本を書きました!

そもそものクラウド サービスについてから Azure の基本的なこと、主な IaaS と PaaS、ガバナンス系機能など、これから Azure について知っていきたいと思う方に向けた内容です。

目次や 5/26 当日の物理本など、ぜひ見てください!

(Azure MixBook 23H2) 技術書典 15 に参加しました

はじめに

前回に続き今更ですが、会社のメンバーと一緒に 2023 年 11 月 11 日 から 11 月 26 日開催の技術書典 15 に出店しました。

SNS では宣伝していたのにせっかくあるブログに書いていなかったので、今更ながら書いたものについてかるーく宣伝です。

書いたもの

techbookfest.org

この本の第 5 章、「Azure PowerShell でサポート リクエストを作成するための簡易的なGUI を作ってみた 」を書きました。

こちらは今まで試したことがなかったのですが、PowerShell で GUI のツールを作ってみました。

コンポーネントを定義して配置して、位置を微調整してと、やっぱり GUI を作るのはなかなか大変です…

作ったツールとしては、タイトルのとおり Azure のサポート リクエストを作成するものです。

Azure ポータルからで十分ではあるのですが、コマンドについて調べたこともあり、作ってみました。 そもそものコマンドを使うのにちょっと制限があるのが難ありですが…

他のメンバーの記事だと、ChatGPT の閉域化や Azure Resource Graph などは気になる方も多いのではないでしょうか。

よかったら読んでみてください。

(Azure MixBook 23H1) 技術書典 14 に参加しました

はじめに

今更ですが、会社のメンバーと一緒に 2023 年 5 月 20 日 から 6 月 4 日開催の技術書典 14 に出店しました。

SNS では宣伝していたのにせっかくあるブログに書いていなかったので、今更ながら書いたものについてかるーく宣伝です。 (15 にも参加したのでそっちも書きます。)

書いたもの

techbookfest.org

この本の第 4 章、「Microsoft Forms を利用して最小権限で Azure リソースをデプロイする」を書きました。

内容としては、以前似たようなものを紹介しています。

www.michikusayan.com

この記事では Automation Runbook を手動で実行していました。

これを、Microsoft Froms の回答送信をトリガーとして Logic Apps で受け取り、テンプレート スペックにパラメーターをわたしてデプロイ、ということを実施しているのが 「Microsoft Forms を利用して最小権限で Azure リソースをデプロイする」 内容です。

「プライベート エンドポイントをユーザーに作成させたいが、サブネットの権限は与えたくない」 という話を元にいろいろ考えていた中で Automation + テンプレート スペックに至り、入力が使いづらかったので Forms で試してみました。

メンバーが Azure OpenAI やコスト最適化などの話も書いています。

よかったら読んでみてください。

Azure ダッシュボードにグラフをピン留めした際の時間の範囲と粒度の連動

はじめに

Azure ブックからダッシュボードにグラフをピン留めし、描画するのに引っかかったのでまとめ。

目次

起こったこと

パフォーマンス系のメトリックについて可視化するため、ブックからダッシュボードにグラフをピン留めしましたが、 時間の範囲がある程度以上になると "表示するポイント (10001) が多すぎます" という表示になりグラフが描画されない、ということが起こりました。

粒度を変えても描画できず、時間の範囲をある程度小さくすれば描画されます。

クエリの書き方がよくなかった部分もあるのですが、ここに至る原因 (仕様) と解決策を以下にまとめました。

ポイント

今回の記事を書くに至ったポイントとなる仕様が 2 つあります。

ワークブックのグラフ描画における制限、上限

ワークブックでクエリを基にグラフを描画することができますが、制限や上限があります。

learn.microsoft.com

いろいろあるのですが、今回ひっかかったのは "視覚化の制限" にあるグラフのデータ ポイントの制限です。

グラフ    グラフの系列は、100 個に制限されます。
グラフのデータ ポイントは、10,000 個に制限されます。

このデータ ポイントが、長期間のグラフ描画で達しやすいです。

グラフ内に描画するデータ (点) の数と考えればわかりやすいですが、1 分に 1 回取得している 1 つのメトリックを 24 時間の範囲でグラフに描画すると

1 回/m * 60m * 24h = 1,440 ポイント 必要です。

1 つのグラフに複数のメトリックを含めれば個数に応じて 2 倍, 3 倍のポイントが必要になりますし、時間の範囲が広がればその分増えます。

例として

1 回/m * 60m * 24h * 7d = 10,080 ポイント > 10,000

1 回/m * 60m * 24h * 2d * 3 メトリック = 8640 ポイント < 10,000

なので、1 分間に 1 回取得しているメトリック 1 つを 7 日以上の範囲では描画できないですし、同条件のメトリックを 3 つでも、2 日までなら描画できます。

実際に上限に達すると、こんな感じになります。

"では 7 日以上のグラフや多数のメトリックは一切描画できないのか?" というと当然そんなことはなく、ここで必要になるのが "時間の粒度" です。

取得しているデータは 1 分単位でも、グラフへの描画を 5 分単位や 15 分単位のデータに丸めることで、グラフは多少荒くなりますが描画に必要なポイントが減ります。

粒度が 1 分単位の場合は

1 回/m * 60m * 24h * 30d = 43,200 ポイント > 10,000

ですが、 5 分単位 (1/5 回/m) とすることで

1/5 回/m * 60m * 24h * 30d = 8,640 ポイント < 10,000

となり、描画可能な範囲に収めることができます。

前述のデータ ポイントの上限があるため、複数のメトリックや長期間の描画をする際にはこの粒度が重要になります。

ブックからダッシュボードへのピン留めにおける制限

通常、ダッシュボードのタイル ギャラリーやメトリック エクスプローラーから貼ったグラフやなどは、ダッシュボード上部の時間設定に連動して時間の範囲と粒度が変更されます。

しかし、ブックからダッシュボードへピン留めしたグラフの場合、時間の範囲は連動してくれますが、時間の "粒度" はダッシュボード上部の "時刻の設定" に連動しません。
(確認してませんが、Log Analytics ワークスペースでクエリから作成、ピン止めしたグラフも同じになるかも?)

そのため、時間の範囲を広げた際にデータ ポイントの上限に達してしまうと、粒度を変えても描画できなくなってしまいます。

解決策

ではどのように解決するかですが、クエリの書き方に気を付けてあげれば OK です。

まず、時間の範囲については以下のように {TimeRange} で記述すると、ダッシュボード上部の時間設定に連動させることができます。

| where TimeGenerated {TimeRange}

肝心の時間の粒度についてですが、summarize の bin など、粒度指定が必要なところで以下のように {TimeRange:grain} で記述すると対処できます。

| summarize xxx by bin(TimeGenerated, totimespan('{TimeRange:grain}'))

ただし、時間の範囲はダッシュボード側の選択と完全に連動するのですが、粒度についてはダッシュボード側の選択によらず、 "自動" と同じような動きになります。

これは時間の範囲に応じて、グラフが描画できるよう適切な粒度が自動的に選択されます。 (数字は適当ですが、範囲 1 日なら 1 分毎、7 日なら 5 分毎、みたいなイメージ)

この 2 点を盛り込んでクエリを作ってあげれば、

・時間の範囲はダッシュボードに連動 ・時間の粒度は時間の範囲に応じて自動調整

というグラフが構成できるため、冒頭で記載した、データ ポイントが多すぎるため描画できないという状態を回避できます。

実際のクエリ例としては以下です。

InsightsMetrics
| where TimeGenerated {TimeRange}
| where Namespace == 'LogicalDisk' and Name == 'FreeSpacePercentage'
| extend MountId = tostring(split(Tags, '"')[3])
| summarize 100-round(avg(Val),2) by bin(TimeGenerated, totimespan('{TimeRange:grain}')), MountId​​​​​​​

※VM Insights のメトリックから、マウント ID 毎にディスク空き容量のパーセンテージを表示するクエリ

終わりに

ブックだけ使ってる、とかであればあまり引っかかることはないと思うのですが、たまたまダッシュボードにグラフを張りたい、 そのグラフは VM Insights のブック内のグラフをベースに持ってくるのが楽そう、ということがあったので遭遇しました。

わかってしまえば書き方だけでどうということはないのですが、{TimeRange:grain} やデータ ポイントの上限など、あまり考えたことがなかったのでまとめてみました。今後連動するようになると嬉しいですね。

Azure Cloud Shell でタイムスタンプ付きのログ ファイルを取得する

はじめに

Azure Coud Shell を利用し、操作記録をログ ファイルに残しておきたい場合、どうするのがいいか簡単ですがまとめました。

"bash の場合" と "PowerShell の場合" だけ見てもらえれば OK です。

目次

Azure Cloud Shell

Azure ポータルで、ブラウザ上で Bash または PowerShell を用いて Azure リソースを操作することができます。

Azure ポータル右上のこれです

Azure で利用できるコマンドライン ツールが予めインストールされており、以下のツールや言語などなどを操作端末へインストールすることなく利用できます。(初回起動時はプロファイル用ストレージ アカウントの設定が必要)

ツール

  • Azure CLI
  • Azure PowerShell
  • AzCopy
  • Azure Functions CLI
  • Service Fabric CLI
  • Batch Shipyard
  • blobxfer

言語

  • .NET Core
  • Go
  • Java
  • Node.js
  • PowerShell
  • Python
  • Ruby

Git や Terraform、kubectl などもありますが本題ではないので細かくはこちらを参照

learn.microsoft.com

本題 : ログ出力がしたい

このように、Cloud Shell はブラウザの下部でコマンドを実行できます。

コマンドで操作する場合、いつ、どんなコマンドを実行してどんな結果が返って来たか、構築作業などでエビデンスとしてログ ファイルを残すのはよくあると思いますが、Cloud Shell 自体には、操作ログをファイル出力する機能は備わっていません。

ではどうするかというと、bash や PowerShell には標準で、セッションの内容をログ出力するコマンドが備わっているので、それを使えば OK です。

bash の場合

bash の場合は script コマンドにてログ出力が可能なため、それを以下のように実行します。

script -fq >(awk '{print strftime("%F %T ") $0}{fflush() }'>> PATH)

PATH はログの出力先です。

これはこちらの記事で Linux、UNINX 用に紹介されていたコマンドです。

orebibou.com

script コマンド単体だとログ開始とログ終了のタイムスタンプしか出力されず、コマンド実行毎のタイムスタンプが出力されません。

それを解消するため、コマンド実行毎にタイムスタンプをログに出力、その後にコマンドとその実行結果を出力、としているようです。大変参考になりました。

ログの出力を終了するときは exit です。

実際のログはこんな感じです。

2023-06-21 02:48:47 Script started on 2023-06-21 02:48:47+00:00 [TERM="xterm-256color" TTY="/dev/pts/4" COLUMNS="231" LINES="31"]
2023-06-21 02:48:52 [?2004hsh-5.1$ az vm list -o table
2023-06-21 02:48:53 [?2004l
Name       ResourceGroup      Location    Zones
2023-06-21 02:48:53 ---------  -----------------  ----------  -------
2023-06-21 02:48:53 DC         DC                 japaneast
2023-06-21 02:48:53 Member01   DC                 japaneast
2023-06-21 02:48:53 Demo-Win1  DEMO-RG            japaneast
2023-06-21 02:50:01 sh-5.1$ cat ~/test/a.txt 
2023-06-21 02:50:05 [?2004l
[?2004hsh-5.1$ exit
2023-06-21 02:50:05 [?2004l
exit
2023-06-21 02:50:05 
2023-06-21 02:50:05 Script done on 2023-06-21 02:50:05+00:00 [COMMAND_EXIT_CODE="0"]

PowerShell の場合

PowerShell の場合は Start-Transcript コマンドにてログ出力が可能なため、それを以下のように実行します。

Start-Transcript -Path PATH -NoClobber -IncludeInvocationHeader

PATH はログの出力先です。

Start-Transcript コマンドも、デフォルトではログ開始とログ終了のタイムスタンプしか出力されず、コマンド実行毎のタイムスタンプが出力されませんが、オプションとして -IncludeInvocationHeader があるため、それをつけるだけで実行毎のタイムスタンプも出力されます。

ログの出力を終了するときは Stop-Transcript です。

実際のログはこんな感じです。

**********************
PowerShell transcript start
Start time: 20230621025602
Username: cc-xxxxxxxx-xxxxxxxxxx-kc9nb\kazuki
RunAs User: cc-xxxxxxxx-xxxxxxxxxx-kc9nb\kazuki
Configuration Name: 
Machine: cc-xxxxxxxx-xxxxxxxxxx-kc9nb (Unix 5.4.0.1109)
Host Application: /opt/microsoft/powershell/7/pwsh.dll -NoLogo
Process ID: 126
PSVersion: 7.3.4
PSEdition: Core
GitCommitId: 7.3.4
OS: Linux 5.4.0-1109-azure #115~18.04.1-Ubuntu SMP Mon May 22 20:06:37 UTC 2023
Platform: Unix
PSCompatibleVersions: 1.0, 2.0, 3.0, 4.0, 5.0, 5.1.10032.0, 6.0.0, 6.1.0, 6.2.0, 7.0.0, 7.1.0, 7.2.0, 7.3.4
PSRemotingProtocolVersion: 2.3
SerializationVersion: 1.1.0.1
WSManStackVersion: 3.0
**********************
Transcript started, output file is /home/kazuki/psdemo.txt
**********************
Command start time: 20230621025609
**********************
PS /home/kazuki> Get-AzVM

ResourceGroupName      Name  Location         VmSize  OsType         NIC ProvisioningState Zone
-----------------      ----  --------         ------  ------         --- ----------------- ----
DC                       DC japaneast  Standard_B2ms Windows       dc413         Succeeded
DC                 Member01 japaneast  Standard_B2ms Windows member01567         Succeeded
DEMO-RG           Demo-Win1 japaneast  Standard_B2ms Windows  demo-win11         Succeeded

**********************
Command start time: 20230621025612
**********************
PS /home/kazuki> ls
bashdemo.txt
basiclb.ps1
clouddrive
Microsoft
psdemo.txt
**********************
Command start time: 20230621025650
**********************
PS /home/kazuki> Stop-Transcript
**********************
PowerShell transcript end
End time: 20230621025650
**********************

注意点

Azure Cloud Shell の仕様上、出力されているタイムスタンプは UTC のためそこは注意です。

終わりに

前述のコマンドを用いて Cloud Shell の操作ログをファイル出力し、作業後にファイルをダウンロードすることでエビデンスにしましょう。

PowerShell はオプションがありよかったのですが、bash はわからなかったので、まとめてくれている方がいて助かりました。

Azure Support Teamによるサポート範囲や調査に有効な情報、問い合わせポイント記事まとめ

はじめに

現在、日本マイクロソフトのサポートに関する情報はこちらのサイトにまとまっています。

cssjpn.github.io

この中ではサポート チーム毎にブログが分かれており、その中で各チームから技術的な情報以外にも、

  • 提供されるサポート範囲
  • 問い合わせの発行方法
  • 問い合わせ時に提供いただくと有効な情報
  • よくある質問
  • トラブルシューティングの方法

などが投稿されています。

サポートの範囲や サポート問い合わせの際にどのような情報を伝えると効率的か? などを聞かれることはあるため、これらはとても有用な情報かと思います。

ただ、今回機会があり上記のような情報を探していた中で、チーム毎に分かれておりまとめて探せない、チームによってタグが違う、検索に出てこないなど、もったいないと感じたので、探した流れでまとめてみました。

リンク集として活用してもらえればと思います。

目次

前提

cssjpn.github.io

  • 挙げた記事は "記載の情報を提供すればそれだけで解決できます" というものではありません。サポート チームへ事象や影響、切り分け状況、解決のゴールなどの基本的な情報の共有は必要です。(Monitor 製品に限定した内容ですが、 "Azure Monitor 製品に関するお問い合わせを発行いただく際のポイント" が例文もあり参考になるかと)
  • 上記のページの "Azure サポート チーム" の各ブログから、サポートの提供内容や、問い合わせのポイント、調査に役立つ可能性のある情報やその取得方法に関わる記事を抽出しています。 (トラブルシューティング記事は拾っていません)
  • 古い記事も含まれるため、中には現在は対応していないものもあるかもしれません。記載内容の実施可否までは確認していないのでご了承ください。
  • 記事によっては、サポートの問い合わせ方法など重複している部分もあります。
  • タイトルと若干見える冒頭部分で判断しており、見落としもあるかもしれません。
  • "以前のブログ" や "以前のフォーラム" までは見ていないので、そちらの記事は以下に含まれていません。
  • 以下に記載がないブログでも有用な情報はたくさんあるので、是非参照ください。

Japan Azure IaaS Core Support Blog

サポート範囲や問い合わせ方法に関する記事

Azure IaaS における有償 Azure テクニカル サポートの対応範囲

jpaztech.github.io

VPN Gateway サービスにおける Azure テクニカル サポートの対応範囲

jpaztech.github.io

お問い合わせの発行方法について

jpaztech.github.io

お問い合わせにてパスワード等の機密情報を記載しないようにお願いいたします

jpaztech.github.io

提供いただきたい情報、調査に有効となり得る情報に関する記事

AKS に問題が発生した際にお寄せいただきたい情報について

jpaztech.github.io

Azure Windows VM で完全メモリ ダンプを採取する方法

jpaztech.github.io

Japan Azure 課金 サブスクリプション サポート ブログ

サポート範囲や問い合わせ方法について

サポートにお問い合わせする方法について

jpazasms.github.io

課金サポートにおける深刻度 (重大度) A のお問い合わせについて

jpazasms.github.io

Azure Marketplace製品のお問い合わせ先に関して

jpazasms.github.io

提供いただきたい情報、調査に有効となり得る情報

Azure ポータルへのサインイン失敗や情報取得エラー時の事前確認について

jpazasms.github.io

Japan CSS ABRS Support Blog !!

提供いただきたい情報、調査に有効となり得る情報

Azure Backup の障害調査に必要な情報

jpabrs-scem.github.io

Azure Backup の障害調査に必要な情報 (疎通確認)

jpabrs-scem.github.io

ASR の障害調査に必要な情報

jpabrs-scem.github.io

Japan Azure Monitoring Support Blog

提供いただきたい情報、調査に有効となり得る情報

Azure Monitor 製品に関するお問い合わせを発行いただく際のポイント

jpazmon-integ.github.io

Azure Automation の PowerShell Runbook に関するお問い合わせを発行いただく前の確認ポイント

jpazmon-integ.github.io

Japan Azure Integration Support Blog

提供いただきたい情報、調査に有効となり得る情報

Logic Apps の調査時にサポート エンジニアへ連携するログの取得方法について

jpazinteg.github.io

Japan PaaS Support Team Blog

サポート範囲や問い合わせ方法について

Web Apps のバックアップが失敗しました。さぁ、サポート チケットを開きましょう。

azure.github.io

Azure サポートに対してお問合せいただいた際の調査対象について

azure.github.io

SendGrid のお問い合わせについて

azure.github.io

お問い合わせ内容本文に機密情報を含めないでください

azure.github.io

Japan Developer Support Internet Team Blog

サポート範囲や問い合わせ方法について

jpdsi.github.io

提供いただきたい情報、調査に有効となり得る情報

IIS の調査に必要な基本的なログ情報について

jpdsi.github.io

IIS の調査に必要な通信系のログ情報について

jpdsi.github.io

IIS の調査に必要なダンプ ファイルの採取について(Debug Diagnostic Tool)

jpdsi.github.io

IIS の調査に必要な FTP の情報について

jpdsi.github.io

IIS の調査にパフォーマンス系のログ情報について (Perfview)

jpdsi.github.io

Web App Bot (C#) の応答遅延のログについて

jpdsi.github.io

Azure Bot Service の調査に必要な基本的な情報について

jpdsi.github.io

Azure Bot Service の Portal 上の事象の調査に必要な情報

jpdsi.github.io

失敗した要求トレース (FREB) の取得方法について

jpdsi.github.io

IIS の基本的な情報の自動採取について

jpdsi.github.io

失敗した要求トレースを契機とするメモリダンプ (FREBDump) のよくあるご質問

jpdsi.github.io

Debug Diagnostics Tool (DebugDiag) の取得方法について

jpdsi.github.io

Enterprise Mode Site List (サイトリスト) のお問い合わせの調査に必要な基本的なログ情報について

jpdsi.github.io

Japan Azure Identity Support Blog

サポート範囲や問い合わせ方法について

Azure AD サポートが提供する [ご支援に関する Q&A]

jpazureid.github.io

提供いただきたい情報、調査に有効となり得る情報

[情報採取] Azure AD Connect に関わる問題などの際に採取、提供いただきたい情報

jpazureid.github.io

[調査に有効な採取情報] Azure AD に関する問題全般

jpazureid.github.io

Japan Machine Learning Support Blog

提供いただきたい情報、調査に有効となり得る情報

Azure Machine Learning におけるネットワーク関連エラー発生時の情報採取について

jpmlblog.github.io

Japan Cognitive Services Support Blog

提供いただきたい情報、調査に有効となり得る情報

Custom Vision のトレーニングが失敗した場合の調査に必要な情報について

jpaiblog.github.io

Japan IoT Support Blog

提供いただきたい情報、調査に有効となり得る情報

UWF 関連トラブル時の情報採取手順について

jpiotblog.github.io

終わりに

サポートの効率的な利用や、どんな情報を提供すればよいか?について調べるタイミングがあり、Twitter でたまに流れてくるし何か他にもないかなーと調べていたらいろいろと出てきたため、せっかくなのでまとめてみました。