マネージド ID を構成する

完了

マネージド ID を使用すると、Azure サービスは資格情報を管理することなく、他の Azure リソースを安全に認証して、アクセスできるようになります。 ID の作成と管理が自動的に処理されるため、サービスの接続がより簡単かつ安全になります。

SQL へのプログラムのアクセスには、Azure リソース用マネージド ID による認証が推奨される認証方法です。

Azure SQL Database で Microsoft Entra 認証を使用する場合は、Azure サービス プリンシパルを使用して SQL Database に Microsoft Entra ユーザーを作成する際にシステム割り当てマネージド ID を割り当てる必要があります。 以前は、システム割り当てマネージド ID のみを Azure SQL Database サーバー ID に割り当てることができましたが、現在は、ユーザー割り当てマネージド ID をサーバー ID として割り当てることもできます。

システム割り当てマネージド ID

SQL 論理サーバーなどの Azure リソースでシステム割り当てマネージド ID を有効にすると、特別なサービス プリンシパルが Microsoft Entra ID に作成されます。 このサービス プリンシパルはリソースのライフサイクルに関連付けられます。つまり、リソースが削除されると自動的に削除されます。 この種類のマネージド ID は共有できず、1 つの Azure リソースにのみ関連付けられます。 これは、1 つの仮想マシンで実行されているアプリケーションなど、独立した ID を必要とする単一のリソースに含まれるワークロードに一般的に使用されます。

システム割り当てマネージド ID を使用する

Azure Web アプリのシステム割り当てマネージド ID を有効にする必要があるシナリオを想像してください。 まず、Azure portal にアクセスし、Web アプリを見つける必要があります。 その後、左側のメニューにある [設定] セクションに移動し、[ID]を選択します。

Azure portal での Web アプリのシステム割り当てマネージド ID オプションを示すスクリーンショット。

[システム割り当て] タブで、[状態][オン] に切り替え、変更を保存する必要があります。

アプリケーションがシステム マネージド ID を使用してデータベースにアクセスできるようにするには、データベースに対する適切なアクセス許可を持つユーザーを作成する必要もあります。

CREATE USER [my-prod-web-app] FROM EXTERNAL PROVIDER;
ALTER ROLE db_datareader ADD MEMBER [my-prod-web-app];
ALTER ROLE db_datawriter ADD MEMBER [my-prod-web-app];

次に、アプリケーション コードで、次の接続文字列を使い、システム割り当てマネージド ID を使用して Azure SQL Database に接続する必要があります。

Server=myserver.database.windows.net;Authentication=Active Directory Managed Identity; Encrypt=True;Database=my-db

ユーザー割り当てマネージド ID

ユーザー割り当てマネージド ID は、独立した Azure リソースとして作成されます。 このタイプのマネージド ID は、さまざまな Azure サービスの複数のインスタンスに割り当てることができるため、複数のリソースで実行され、1 つの ID を共有できるワークロードに適しています。

ユーザー割り当てマネージド ID は、プロビジョニング フローの一部として安全なリソースへの事前承認が必要なワークロードや、リソースが頻繁にリサイクルされるがアクセス許可の一貫性を維持する必要があるワークロードにも役立ちます。

ユーザー割り当てマネージド ID を使用する

Azure リソース用マネージド ID を使用するには、まず Azure でユーザーマネージド ID を作成する必要があります。

まず、Azure portal に移動します。 [マネージド ID] を選択し、[作成] を選択します。 [ユーザー割り当てマネージド ID の作成] ページの必須フィールドに入力します。

Azure portal の [ユーザー割り当てマネージド ID の作成] ページを示すスクリーンショット。

次に、システムマネージド ID と同様に、ユーザーマネージド ID を Azure リソースに割り当てる必要があります。 この例では、Azure Web アプリの[ユーザーマネージド] タブに割り当てます。

Azure portal での Web アプリのユーザー割り当てマネージド ID オプションを示すスクリーンショット。

最後に、CREATE USER ステートメントを使用して、ターゲット データベースのマネージド ID から SQL ユーザーを作成します。 この例でのマネージド ID 名は my-identityです。

CREATE USER [my-identity] FROM EXTERNAL PROVIDER;
ALTER ROLE db_datareader ADD MEMBER [my-identity];
ALTER ROLE db_datawriter ADD MEMBER [my-identity];

次の接続文字列は、ユーザー割り当てマネージド ID を使用して Azure SQL Database に接続する方法を示しています。

Server=myserver.database.windows.net;Authentication=Active Directory Managed Identity; Encrypt=True;User Id=my-identity; Database=my-db

この柔軟性により、ユーザー割り当てマネージド ID は、Azure 環境内の異なるサービス間でアクセスを管理するための汎用性がある安全なオプションになります。