今回はサービス プリンシパルを使用して、効率的にマシンをオンボードする方法を説明します
ハイブリッド マシンを大規模に Azure に接続する - Azure Arc | Microsoft Learn
サービス プリンシパルとは
サービス プリンシパルは、Azure リソースに対するアクセス許可を持つ管理用 ID です
ID というとユーザーをイメージするかもしれませんが、アプリケーションに付与する ID のことをサービス プリンシパルと呼んでいます
ユーザー ID と同様に サービス プリンシパルには、必要なアクセス許可のみを付与することができます
そのため、セキュリティのベスト プラクティスに従って最小限の権限の付与をすることができます
サービス プリンシパルを使った Arc 登録の使いどころ
サーバーの管理者 ≠ Azure 管理者 の場合にサービス プリンシパルを使った方法は便利です
以前に書いた Azure Arc 対応サーバーのデモ環境を作り隊 – クラウドを勉強し隊 の記事ではスクリプトの実行ごとに認証の必要がありました
そのためサーバーにログインし、スクリプトを実行する人が適切な Azure RBAC を持っていないとスクリプトの実行が完了できません
この場合に最低限の資格情報を含むスクリプトを提供できるサービス プリンシパルの方法が便利です
ざっくり手順
- サービス プリンシパルの作成
- Azure Connected Machine エージェントのインストール スクリプトの生成
- スクリプトの実行
1. サービス プリンシパルの作成
Azure Portal から Azure Arc を検索します
[サービス プリンシパル] のメニューを選択してサービス プリンシパルを作成します

権限を付与するスコープ、期限、ロール (権限内容) を選択して、作成します
今回は以下の内容にしました
項目 | 内容 |
---|---|
スコープ | リソース グループ |
期限 | 1日 |
ロール | Azure Connected Machine のオンボード |
作成の完了後、忘れずに ID とシークレットをダウンロードしておきます

ハイブリッド マシンを大規模に Azure に接続する - Azure Arc | Microsoft Learn
2. Azure Connected Machine エージェントのインストール スクリプトの生成
Azure Portal からインストール スクリプトを生成します
インストール スクリプトは、Connected Machine エージェントをインストールし、Azure に接続するために必要なコマンドを含みます
Azure Portal で、Azure Arc に移動してから、左側のメニューの [マシン] を選択します
[追加/作成] を選択してから、[マシンの追加] を選択します

複数のサーバーの追加の [スクリプトの生成] を選択し、画面に従って必要な情報を入力します
サービス プリンシパルでは1つ前の手順で作成したものを選択します
3. スクリプトの実行
スクリプトの作成完了後、ダウンロードして、シークレットをメモした値に置き換えます
置き換えたものを Azure Arc に登録するサーバーで実行します
インストールが完了すると Azure Portal 上で確認ができます

まとめ
サービス プリンシパルを使って Azure Arc の有効化をしました
スクリプトの実行時に資格情報を入力する必要がないので大規模展開で非常に有効です
サービス プリンシパルの有効期限を設定することで仮にスクリプトが外部に漏れた場合のリスクも抑えることができます