この記事は更新から24ヶ月以上経過しているため、最新の情報を別途確認することを推奨いたします。
1.はじめに
現在Microsoft Azureでは、リソースに対するデプロイモデルがAzure Service Managementデプロイモデル(クラシック)とAzure Resource Managerデプロイモデル(ARM)の2種類用意されています。しかし、クラシックモデルに関しては、2023年3月1日を境に廃止するとMicrosoftはアナウンスしており、現在運用されているクラシックモデルは期日までにARMモデルへ移行する必要がございます。
本サイトではARM移行を推奨するため、これまでにARM移行に関する記事を投稿してきました。
・クラシック(ASM)からリソースマネージャー(ARM)モデルへの移行パターン
・コマンドでのクラシック(ASM)からリソースマネージャー(ARM)モデルへの移行について
今回は、ARM移行を検証した場合にエラーの原因となる「クラシック仮想マシンにエンドポイントアクセス制御リストが設定されている場合の移行手順」を紹介します。なお、手順のみの記載と致します。
クラシック仮想マシンに対してエンドポイント項目内にアクセス制御リストが設定されていた場合に、ARMへの移行を実施すると以下のエラーが表示されます。
Migration is not supported for deployment ‘仮想マシン名’ in hosted service ‘仮想マシン名’ because it has an input endpoint ‘プロトコル名’ which has endpoint ACLs. Migration of endpoint ACLs is not currently supported.
上記のエラーが案内されたクラシック仮想マシンが、本記事の対象仮想マシンとなります。エンドポイントアクセス制御リストを削除することでARMへの移行は可能となります。しかし単純に削除をすると、通信経路が閉ざされてしまったり、予期しない通信を受け入れることとなりますので、NSGへ設定を移したのちに、エンドポイントアクセス制御リストを削除することを本記事では記載しております。
尚、現在使用しているモデルがどちらに当てはまるか分からない場合は、以下の記事をご覧ください。
手順
- エンドポイントアクセス制御リストが設定されているクラシック仮想マシンが存在するか調査
- エンドポイントACLの設定をクラシックNetwork Security Groupの受信セキュリティ規則に転記する
- NSGをサブネットもしくはネットワークインターフェースに関連付け
- エンドポイントACLを削除
1.エンドポイントアクセス制御リストが設定されているクラシック仮想マシンが存在するか調査
ここでは、クラシック仮想マシンにエンドポイントアクセス制御リスト(以下、エンドポイントACL)が設定されているかを確認します。
1.Azure ポータルを開き、赤枠のハンバーガーメニュー(≡)を選択
2.表示されたメニュ内の「すべてのリソース」を選択
3.フィルター条件の「種類 == すべて」を選択
4.すべて選択のチェックを外した後に、テキストボックスに「クラシック」と入力し、仮想マシン(クラシック)を選択
5.表示されたクラシック仮想マシン一覧から仮想マシンを選択し、エンドポイントとして設定されているポートを選択
6.表示されたページの赤枠内がエンドポイントのアクセス制御リストになります。 エンドポイントACLが1つ以上設定されている場合、ARM移行の検証でエラーが発生します。設定されている場合は以下の手順に進み、エンドポイントACLの削除を試みます。
2.エンドポイントACLの設定をクラシックNetwork Security Groupの受信セキュリティ規則に転記する
ここでは、エンドポイントACLの設定をNetwork Security Group(以下、NSG)に移す作業を行います。新規にNSGを1つ作成します。(NSGはサブネットとネットワークインターフェース単位で関連付けることができます。サブネットに関連付ける場合は、サブネット内に存在する仮想マシン全台に対して1つのNSGで問題ありません。後述しますが、NSGはサブネットに関連付けることをお勧めいたします。)
1.Azure ポータルを開き、赤枠のハンバーガーメニュー(≡)を選択
2.表示されたメニュー内の「リソースの作成」を選択
3.表示されたページのテキストボックスに「Network Security Group」と入力し、サジェストの「Network Security Group」を選択
4.クラシックに変更を選択したのちに、ネットワークセキュリティグループを作成 クラシックNSGは、サブスクリプション、リソースグループ、地域を選択し、リソース名を名付けるのみで作成可能です。
5.作成したNSGの受信セキュリティ規則にエンドポイントACLの設定を入れていきます。
クラシックNSGに設定を追加する際の注意点を記載します。
- 一度つけたルール名はそのルールを削除しない限り変更できません。
- 1ルールに宛先IPアドレスを1つしか登録できません。
- ソースポート範囲は基本的にanyで設定します。
- 宛先IPアドレスにはプライベートIPアドレスを設定します。
- 宛先ポート番号はエンドポイントに記載のプライベートポートを記載します。
3.NSGをサブネットもしくはネットワークインターフェースに関連付け
ここでは、手順2で作成したNSGをサブネット(もしくはネットワークインターフェース)に関連付けを行います。ネットワークインターフェースに関連付ける場合、エンドポイントACLとNSGの同時構成が仕様上できない点に注意が必要です。
1.Azure ポータルを開き、赤枠のハンバーガーメニュー(≡)を選択
2.表示されたメニュ内の「すべてのリソース」を選択
3.フィルター条件の「種類 == すべて」を選択
4.すべて選択のチェックを外した後に、テキストボックスに「クラシック」と入力し、仮想ネットワーク(クラシック)を選択
3.対象の仮想ネットワーク(クラシック)のサブネットを選択
4.開いたページのネットワークセキュリティグループ欄に作成したNSG名を選択
NSGを選択したのちに、OKを押下します。
4.エンドポイントACLを削除
ここでは、エラーの原因であるエンドポイントACLの削除を行います。削除を行う前に、サブネットにNSGが関連付けられており、仮想マシンにエンドポイントACLが設定された状態で、疎通確認を行うことを推奨いたします。また、予期せぬ通信パターンを発覚した場合は復旧できるように対策をしておく必要があります。
1.手順1を参考にクラシック仮想マシンのエンドポイントACLが記載されたページを開く
2.エンドポイントアクセスACLを全て削除
上記の作業を仮想マシンにエンドポイントACLが設定されている個所全てに実施します。
以上の手順が、クラシック仮想マシンにエンドポイントACLが設定されていた場合のサービスを停止せずにARMへの移行を実施する方法になります。
また、ARM移行は仮想ネットワーク単位で実施します。他のエラーに関するトラブルシューティングに関しましては、今後も本サイトに投稿予定です。
おわりに
クラシックリソースモデルは2023年2月28日までにARMリソースモデルへ移行する必要があります。まずは、弊社や関係ベンダー様等にご相談していただき、引き続きAzureをご利用いただければ幸いです。