こんにちは!
今回はリソースを別のサブスクリプション(しかも別のテナント)に移動させてみました
移動の対象は以下のリソースが含まれるリソースグループ全体になります
もう一度言います、これがリソースグループ全体です!
参考にした公開情報
- リソースの種類別の移動操作のサポート - Azure Resource Manager | Microsoft Learn
- リソースを新しいサブスクリプションまたはリソース グループに移動する - Azure Resource Manager | Microsoft Learn
- リソース グループまたはサブスクリプション間で Azure App Service リソースを移動する - Azure Resource Manager | Microsoft Learn
1 のサイトでは日本語の名称が記載されておらずわかりずらいですが、対応は以下の通りです。
公開情報(大項目) | 公開情報(リソースの種類) | 日本語名称 |
---|---|---|
Microsoft.Web | serverFarms | App Service プラン |
Microsoft.Web | sites | App Service |
Microsoft.Insights | components | Application Insights |
Microsoft.CertificateRegistration | certificateorders | App Service 証明書 |
Microsoft.KeyVault | vaults | キーコンテナー |
Microsoft.Insights | webtests | 可用性テスト |
今回の移動対象リソースはすべてサブスクリプション間の移動に対応していました
2 のサイトに記載されていますが、サブスクリプション間のリソース移動は同一 AzureAD テナントに属している必要があります
手順
大まかな手順は以下の通りになります。
- 既存のサブスクリプションと同一のテナントにサブスクリプションの作成
- リソースの移動を実行
- 別テナントにサブスクリプションの移動
- 適切なRBACの割り当て
図にすると以下のイメージです
1.既存のサブスクリプションと同一のテナントにサブスクリプションの作成
まずは移動先となるサブスクリプションを作成します
以前に無料試用版は使用済みなので、「従量課金制」を選択しました
クレジットカード情報など必要な情報を入力してサブスクリプションを有効化します。
2.リソースの移動を実行
移動先のサブスクリプションの準備が完了したら実際にリソースの移動を実行します
移動させたいリソースを選択し、
[移動] > [別のサブスクリプションに移動する]
を選択します
今回は移動先となるリソースグループ(wordpress-rg)を新規作成しました。
ここで検証作業が走ります。ただ、なぜか検証に失敗してしまいました
エラーメッセージを確認すると
- Microsoft.Web/sites
- Microsoft.Web/serverFarms
- Microsoft.Web/certificates
の3つを必ず含めように確認してと書かれていました
当初この3つ目が名前からして証明書だと思っていましたが、証明書は “Microsoft.CertificateRegistration” です!
ここでピーンと来ました、「リソースグループの表示に含まれていない隠れリソースがある!」
画面上の「リソースの追加」をクリックしても隠れリソースは見当たりません
しかし!よく見ると「非表示の型の表示」というよくわからない日本語があります!!!
これをクリックすると
出ましたーー
アラート系のリソースなどが表示されました!
Microsoft.Web/certificates はAppServiceと証明書に関連する何かでしょうか。詳細はわからずです
それ以外にも今まで意識してきませんでしたが、アラートなどもリソースグループに紐づいているんですね
これらも移動対象として選択してあげることで、ようやく検証が無事に完了しました
あとは確認ボタンをクリックして操作は終了です
3.別テナントにサブスクリプションの移動
サブスクリプション一覧の画面に移動して [→ディレクトりを変更する] をクリックします
移動先となるテナントを選択して実行すれば完了です
4.適切なRBACの割り当て
異なるAzure ADテナントに移動させたため、RBACの設定がすべてリセットされています
そのため Azure ADのグローバル管理者 があるユーザーでログインし、Azure AD の
[プロパティ] > [Azureリソースのアクセス管理]
を [はい] にします。するとグローバル管理者でサブスクリプションの RBAC が設定可能になるので適切な設定をしておきます。
まとめ
今回初めてサブスクリプション間の移動を実施しました
そもそも移動することができないリソースもあるので、複数のサブスクリプションを使用する環境ではきちんと計画をして Azure 環境を構築する必要がありますね。