🐻❄️
ユーザ割り当てマネージドIDを作成し、アプリケーションを紐づける
まえがき
前回の続き ですが、EntraIDに登録したアプリケーションをユーザ割り当てマネージドIDに紐づけます。
ユーザー割り当てマネージド ID を作成する
手順はこちら
- ポータルの検索ボックスに『マネージド』と入力すると、[マネージドID]のメニューが出てくるので、選択します。
- [作成]または[マネージドIDの作成]をクリックします。
- 『サブスクリプション』『リソースグループ』『リージョン』『名前』を入力します。ここのリージョンは、マネージドIDの作成されるリージョンですが、グローバルに利用可能とのことなので、紐づけるアプリケーションがどこに存在していても問題ないみたいです。
- [確認と作成] をクリックして変更を確認します。
- [作成]をクリックします。
ユーザー割り当てマネージド ID へのアクセスを管理する
次に、作成したユーザー割り当てマネージド IDにRBAC ロールを割り当てます。
なお、ここに来る前に、Azure SQL Databse を作成しています。
- メニューの [Azure ロールの割り当て]を選択します。
- [ロールの割り当ての追加]を選択します。
- [スコープ]でSQLを選択すると、サブスクリプション内にあるAzure SQL Database のリソースが選択できるようになります。ここでは『SQL DB 共同作成者』を選択しました。
- [保存]を選択します。
- ユーザー割り当てマネージドIDにSQL DB 共同作成者として、ロールが設定されました。
Read権限を持ったユーザー割り当てマネージドIDも同じ手順で作成します。
補足:Azure ロールの SQL DB Contributor(SQL DB共同作成者)とSQL Server Contributor(SQL Server共同作成者) の違いについて
SQLServerに不慣れなのもあって、サーバーとDatabaseの違いがわからなかったので、Copilotに聞いてみました。
以下、回答
データベースの管理操作と SQL サーバーの管理操作にはいくつかの違いがあります。以下にそれぞれの概要を示します:
データベースの管理操作(SQL DB Contributor)
- データベースの作成と削除: 新しいデータベースの作成や既存のデータベースの削除を行います。
- データベースの設定変更: データベースの設定や構成を変更します。
- バックアップとリストア: データベースのバックアップを取得し、必要に応じてリストアを行います。
- データベースの監視: データベースのパフォーマンスや状態を監視し、必要な調整を行います。
SQL サーバーの管理操作(SQL Server Contributor)
- サーバーの設定変更: SQL サーバー全体の設定や構成を変更します。
- サーバーの監視: サーバーのパフォーマンスや状態を監視し、必要な調整を行います。
- セキュリティ管理: サーバー全体のセキュリティ設定を管理し、ユーザーやロールのアクセス権を設定します。
- インスタンス管理: 複数のデータベースインスタンスの管理を行います。
まとめ
- SQL DB Contributor: データベースレベルでの操作や管理を行います。
- SQL Server Contributor: サーバーレベルでの操作や管理を行います。
なるほど🤔
ここでは、データベースレベルでいい(というかもっと権限を細かくしたい)ので、SQL DB共同作成者を選択しています。
ユーザー割り当てマネージドID を アプリケーションに割り当てる
あとは、アプリケーションと作成したユーザー割り当てマネージドIDを紐づけるだけです。
今回は Azure Functions と紐づけます。
- 紐づける Azure Functions の [設定] -> [ID] を選択します。
- [ユーザー割り当て済み]のタブを選択し、[+追加]か[ユーザー割り当てマネージドID] を選択します。
- 作成済みのユーザー割り当てマネージドIDが表示されるので、選択して、[追加]をクリックします。
おわりに
ここでは、ユーザー割り当てマネージドIDの作成と、RBACのロールの割り当てを行い、アプリケーションとの紐づけも行いました。
次は、それぞれ作成したユーザー割り当てマネージドIDにSQL Database のロールを付与します。
Discussion