マネージド ID はアプリの ID を提供し、シークレット (接続文字列やキーなど) を使用せずに他の Azure リソースに接続できるようにします。 内部的には、Azure はアプリの ID を認識し、アプリがアクセスを許可されているリソースを認識します。 Azure では、この情報を使用してアプリの Microsoft Entra トークンを自動的に取得し、認証シークレットの管理 (作成またはローテーション) を必要とせずに他の Azure リソースに接続できるようにします。
マネージド ID の種類
マネージド ID には、次の 2 種類があります。
システム割り当てマネージド ID - 単一の Azure リソース
ユーザーが割り当てたマネージド ID - 複数の Azure リソース
この記事では、アプリのシステム割り当てマネージド ID を有効にして使用する手順について説明します。 ユーザー割り当てマネージド ID を使用する必要がある場合は、「ユーザー割り当てマネージド ID の管理」の記事を参照して、ユーザー割り当てマネージド ID の作成方法を確認してください。
単一リソースに対するシステム割り当てマネージド ID
システム割り当てマネージド ID は、Azure リソースによって提供され、Azure リソースに直接関連付けられます。 Azure リソースでマネージド ID を有効にすると、そのリソースのシステム割り当てマネージド ID が取得されます。 マネージド ID は、Azure リソースのライフサイクルに関連付けられています。 リソースが削除されると、その ID も Azure によって自動的に削除されます。 必要なのは、コードをホストしている Azure リソースのマネージド ID を有効にすることなので、この ID の種類は、使用するマネージド ID の最も簡単な種類です。
複数のリソースに対するユーザー割り当てマネージド ID
ユーザー割り当てマネージド ID は、スタンドアロンの Azure リソースです。 この ID の種類は、ソリューションに、同じ ID と同じアクセス許可を共有する必要がある複数の Azure リソースで実行される複数のワークロードがある場合に最もよく使用されます。 たとえば、ソリューションに、複数の App Service インスタンスと仮想マシン インスタンスで実行されるアプリケーションが含まれているとします。 アプリケーションはすべて、同じ Azure リソースのセットにアクセスする必要があります。 これらのリソース全体でユーザー割り当てマネージド ID を作成して使用するのが最適な設計選択です。
1 - ホストされているアプリでシステム割り当てマネージド ID を有効にする
最初の手順では、アプリをホストしている Azure リソースでマネージド ID を有効にします。 たとえば、Azure App Service を使用して Express.js アプリケーションをホストしている場合は、その App Service Web アプリのマネージド ID を有効にする必要があります。 VM を使用してアプリをホストしている場合は、VM でマネージド ID を使用できるようにします。
Azure portal または Azure CLI を使用して、マネージド ID を Azure リソースに使用できるようにすることができます。
az role assignment create --assignee aaaaaaaa-bbbb-cccc-7777-888888888888 \
--role "Storage Blob Data Contributor" \
--resource-group "msdocs-sdk-auth-example"