LoginSignup
1
0

App Service ドメインで独自ドメインを取得する

Last updated at Posted at 2024-01-16

本記事について

サブスクリプションやロールに対する権限がないユーザーでドメインを取得しようとした際、何度もつまづいたので備忘録として残しておく。

結論

  • リソースプロバイダー Microsoft.DomainRegistration を登録する
  • カスタムロールを作成し、以下権限を許可して対象ユーザーに割り当てる
    • Microsoft.DomainRegistration/domains/providers/locks/write
    • Microsoft.DomainRegistration/domains/write
    • Microsoft.Network/dnszones/providers/locks/write
    • Microsoft.Network/dnszones/write
    • Microsoft.DomainRegistration/checkDomainAvailability/action
  • Azure CLI で実行する (az appservice domain create)

試行錯誤の足跡

まずは、Azure Portal でドメイン取得を試みた。
App Service ドメイン にアクセスして項目を入力中、エラー発生。

リソースプロバイダー Microsoft.DomainRegistration はサブスクリプション XXXX に登録されておらず、サブスクリプション XXXX のリソースプロバイダーを登録するためのアクセス許可がありません

以下リソースプロバイダーの登録をサブスクリプション管理者に依頼し、解決。

  • Microsoft.DomainRegistration

具体的な手順は以下参考

改めて Azure Portal に戻り、項目を入力中、再度別のエラーが発生。

次のアクセス許可
(Microsoft.DomainRegistration/domains/providers/locks/write,
Microsoft.DomainRegistration/domains/write,
Microsoft.Network/dnszones/providers/locks/write,
Microsoft.Network/dnszones/write)がすべてないと、このサブスクリプション内にリソースを作成できません

必要な権限を割り当ててもらうため、以下で対象となる組み込みロールを探した。

しかし Microsoft.DomainRegistration に対応する組み込みロールが見つからなかったので、以下を依頼した。

  • カスタムロールの作成
  • 以下権限を許可
    • Microsoft.DomainRegistration/domains/providers/locks/write
    • Microsoft.DomainRegistration/domains/write
    • Microsoft.Network/dnszones/providers/locks/write
    • Microsoft.Network/dnszones/write
  • ユーザーへの割り当て

具体的な手順は以下参考

これで Azure Portal 上のエラーは解消。

必要な内容を入力していくが、ドメインを指定する部分の挙動がどうもおかしい。
具体的には、空きドメインを指定しても以下の警告が出る。

このドメインは使用できません。使用可能な類似のドメインをいくつかこちらに表示します。

Azure Portal イメージ

Screenshot 2024-01-16 9.17.47.jpg

↑ 記事掲載のイメージ画像のためexample.comになっているが、空きドメインを入れても同じ警告が出ていた。

下部に提示されたドメインを直接入力しても、なぜか警告は消えない。
仕方なく使用できるドメインから選択してチェックボックスを入れ、次に進む。

連絡先情報、詳細、タグを入力し、確認および作成に移るも、
検証中 という表示のまま動かない。

以前 Azure Portal だと設定が行えなかったが、Azure CLI なら問題なく行えたケースがあったので、今回も試してみることに。

上記記事中のリンクを参考に、contact_info.jsonを作成して、以下コマンドを実行。

az appservice domain create --contact-info=@contact_info.json \
  --hostname <取得したいドメイン> \
  --resource-group <リソースグループ名> \
  --accept-terms \
  --tags <キー>=<バリュー>

すると、以下エラーが発生。

(AuthorizationFailed) The client 'xxxxxx' with object id 'xxxxxx' does not have authorization to perform action 'Microsoft.DomainRegistration/checkDomainAvailability/action' over scope '/subscriptions/xxxxxx' or the scope is invalid. If access was recently granted, please refresh your credentials.
Code: AuthorizationFailed
Message: The client 'xxxxxx' with object id 'xxxxxx' does not have authorization to perform action 'Microsoft.DomainRegistration/checkDomainAvailability/action' over scope '/subscriptions/xxxxxx' or the scope is invalid. If access was recently granted, please refresh your credentials.

どうやら、必要な権限がまだ不足していた様子。
Microsoft.DomainRegistration/checkDomainAvailability/action をカスタムロールで追加設定してもらうよう依頼。

完了後、再度コマンドを実行することで、ついにドメインを取得することができた!

ちなみに Azure CLI から取得できたドメインは、(権限付与された後でも) Azure Portal 上では このドメインは使用できません と警告されて指定できなかった。

上記挙動から、現時点でドメイン取得を考える際には Azure CLI のほうが良さそう。

最後に

可能なら強い権限を持ったユーザーで実施することを勧めます。

参考

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