🔆
Lighthouse を ARM テンプレートで設定
はじめに
以前、以下の記事で Lighthouse の説明をしたのですが、Azure ポータルで複数のテナントやサブスクリプションで設定するのは面倒なので、Azure PowerShell と ARM テンプレートで設定する方法を整理します。
事前に
集中管理側で各テナント・サブスクリプションをまとめて設定する場合、各テナントにおいてユーザーを作成もしくはゲスト追加し、サブスクリプションに所有者ロールを付与しておきます。
設定
再掲になりますが、事前準備を書き出していきます。
Lighthouse の設定パラメータを準備します(取得方法は割愛します)。必要なパラメータは以下になります。
- 委任先のテナント ID
- 委任先のユーザーオブジェクト ID
- 操作許可するためのロール ID
- 委任する管理グループやサブスクリプションもしくはリソースグループ名
操作許可するためのロール ID は組み込みロールの一覧から確認できます。Lighthouse では現時点では組み込みロールのみサポートされています。
ARM テンプレートはこちらです。(基本的に変更不要)
収集した情報をもとに以下のパラメータファイル変更しておきます。
各パラメータファイルの入力項目は以下の通りです。
項目 | 入力値 |
---|---|
サブスクリプション | 本デプロイを保存するサブスクリプション |
リージョン | デプロイの場所 |
Msp Offer Name | 委任の名前(任意) |
Msp Offer Description | 委任の説明(任意) |
Managed By Teant Id | 委任先 (中央管理側) のテナント ID |
Authorizations | 後述 |
Authorizations は委任の内容を json 形式で記述します。
[
{
"principalId": "<ユーザー等のオブジェクト ID>",
"principalIdDisplayName": "<任意の名前>",
"roleDefinitionId": "<委任する組み込みロール ID>"
}
]
これらをデプロイするための PowerShell は以下です。
複数のサブスクリプションやテナントに対してまとめて実行する場合には、各ファイルを準備し、$delegationFromtenantId
や $subscriptionId
、ファイル名を変数として csv などから読み込み処理してください。
Discussion