次の方法で共有


Azure リソースのマネージド ID とは

サービス間の通信をセキュリティで保護するために使用されるシークレット、資格情報、証明書、キーの管理は、開発者にとって共通の課題です。 シークレットと証明書の手動処理は、セキュリティの問題と停止の既知の原因です。 マネージド ID により、開発者はこれらの資格情報を管理する必要がなくなります。 アプリケーションは、マネージド ID を使用して、資格情報を管理することなく Microsoft Entra トークンを取得できます。

マネージド ID とは

大まかに言えば、人間 ID とマシン ID と非人間 ID の 2 種類があります。 マシン/人間以外の ID は、デバイス ID とワークロード ID で構成されます。 Microsoft Entra では、ワークロード ID はアプリケーション、サービス プリンシパル、マネージド ID です。 ワークロード ID の詳細については、「 ワークロード ID」を参照してください。

マネージド ID は、Azure コンピューティング リソース (仮想マシン (VM)、仮想マシン スケール セット (VMSS)、Service Fabric クラスター、Azure Kubernetes クラスター)、または Azure でサポートされている任意のアプリ ホスティング プラットフォームに割り当てることができる ID です。 マネージド ID がコンピューティング リソースに割り当てられると、ストレージ アカウント、SQL データベース、CosmosDB などのダウンストリーム依存関係リソースに直接または間接的にアクセスすることを承認できます。 マネージド ID は、アクセス キーやパスワードなどのシークレットを置き換えます。 さらに、マネージド ID は、サービス間の依存関係の証明書またはその他の形式の認証を置き換えることができます。

次のビデオでは、マネージド ID を使用する方法を示します。

以下に、マネージド ID を使用するベネフィットをいくつか紹介します。

  • 資格情報を自ら管理する必要がない。 資格情報には、自分もアクセスできません。
  • マネージド ID を使用すると、独自のアプリケーションを含む、Microsoft Entra 認証をサポートするあらゆるリソースに対して認証を行うことができます。
  • マネージド ID は追加コストなしで利用できます。

マネージド ID の種類

マネージド ID には、次の 2 種類があります。

  • システム割り当て。 仮想マシンなどの一部の Azure リソースでは、リソースでマネージド ID を直接有効にすることができます。 システム割り当てマネージド ID を有効にした場合:

    • 特別な種類のサービス プリンシパルが、ID 用に Microsoft Entra ID に作成されます。 このサービス プリンシパルは、その Azure リソースのライフサイクルに関連付けられます。 Azure リソースが削除されると、Azure により自動的にサービス プリンシパルが削除されます。
    • その ID を使用して Microsoft Entra ID にトークンを要求できるのは、必然的に、その Azure リソースのみとなります。
    • マネージド ID が 1 つ以上のサービスにアクセスできるように承認します。
    • システム割り当てサービス プリンシパルの名前は、それが作成された Azure リソースの名前と常に同じです。 デプロイ スロットの場合、システムによって割り当てられた ID の名前は、<app-name>/slots/<slot-name> です。
  • ユーザー割り当て。 スタンドアロンの Azure リソースとしてマネージド ID を自分で作成することもできます。 ユーザー割り当てマネージド ID を作成して、1 つ以上の Azure リソースに割り当てることができます。 ユーザー割り当てマネージド ID を有効にする際は、次の点に注意します。

    • 特別な種類のサービス プリンシパルが、ID 用に Microsoft Entra ID に作成されます。 サービス プリンシパルは、それを使うリソースとは別に管理されます。
    • ユーザー割り当て ID は、複数のリソースで使用できます。
    • マネージド ID が 1 つ以上のサービスにアクセスできるように承認します。

    ユーザー割り当て ID は、コンピューティングとは独立してプロビジョニングされ、複数のコンピューティング リソースに割り当てることができます。これは、Microsoft サービスに推奨されるマネージド ID の種類です。

システム割り当てマネージド ID をサポートするリソースでは、次のことが可能です。

代わりにユーザー割り当てマネージド ID を選択した場合:

マネージド ID に対する操作は、Azure Resource Manager テンプレート、Azure portal、Azure CLI、PowerShell、REST API を使用して実行できます。

システム割り当てマネージド ID とユーザー割り当てマネージド ID の違い

プロパティ システム割り当てマネージド ID ユーザー割り当てマネージド ID
作成 Azure リソース (たとえば、Azure Virtual Machines または Azure App Service) の一部として作成されます。 スタンドアロンの Azure リソースとして作成されます。
ライフ サイクル マネージド ID の作成に使用された Azure リソースとの共有ライフ サイクル。
親リソースが削除されると、マネージド ID も削除されます。
独立したライフ サイクル。
明示的に削除する必要があります。
Azure リソース間で共有されます 共有できません。
1 つの Azure リソースにのみ関連付けることができます。
共有できます。
同じユーザー割り当てマネージド ID を、複数の Azure リソースに関連付けることができます。
一般的なユース ケース 1 つの Azure リソース内に含まれるワークロード。
独立した ID を必要としているワークロード。
たとえば、1 つの仮想マシンで実行されるアプリケーション。
複数のリソースで実行され、1 つの ID を共有できるワークロード。
プロビジョニング フローの一部として、セキュリティで保護されたリソースへの事前認可が必要なワークロード。
リソースが頻繁にリサイクルされるものの、アクセス許可は一貫性を保つ必要があるワークロード。
たとえば、複数の仮想マシンが同じリソースにアクセスする必要があるワークロード。

Azure リソースのマネージド ID を使用する方法

マネージド ID は、次の手順に従って使用できます。

  1. Azure でマネージド ID を作成します。 システム割り当てマネージド ID またはユーザー割り当てマネージド ID を選択できます。
    1. ユーザー割り当てマネージド ID を使う場合、マネージド ID を、仮想マシン、Azure ロジック アプリや、Azure Web アプリなどの "ソース" Azure リソースに割り当てます。
  2. "ターゲット" サービスにアクセスできるマネージド ID を承認します。
  3. マネージド ID を使用してリソースにアクセスします。 この手順では、Azure SDK と Azure.Identity ライブラリを使用できます。 一部の "ソース" リソースでは、マネージド ID を使用した接続の方法を認識しているコネクタが提供されます。 その場合は、ID をその "ソース" リソースの機能として使用します。

この機能をサポートする Azure サービスはどれですか?

Azure リソースのマネージド ID は、Microsoft Entra 認証をサポートするサービスの認証に使用することができます。 サポートされる Azure サービスの一覧については、Azure リソースのマネージド ID をサポートするサービスに関する記事を参照してください。

マネージド ID の操作

マネージド ID は、直接使用することも、Microsoft Entra ID アプリケーションのフェデレーション ID 資格情報として使用することもできます。

マネージド ID の使用に関連する手順は次のとおりです。

  1. Azure でマネージド ID を作成します。 システム割り当てマネージド ID またはユーザー割り当てマネージド ID を選択できます。 ユーザー割り当てマネージド ID を使用する場合は、仮想マシン、Azure ロジック アプリ、Azure Web アプリなどのソース Azure リソースにマネージド ID を割り当てます。
  2. ターゲット サービスへのアクセス権を持つマネージド ID を承認します。
  3. マネージド ID を使用してリソースにアクセスします。 この手順では、任意の クライアント ライブラリを使用できます。 一部のソース リソースには、接続にマネージド ID を使用する方法を知っているコネクタが用意されています。 その場合は、そのソース リソースの機能として ID を使用します。

マネージド ID を直接使用する

Azure コンピューティング リソースで実行されているサービス コードは、Microsoft Authentication Library (MSAL) または Azure.Identity SDK を使用して、マネージド ID によってサポートされる Entra ID からマネージド ID トークンを取得します。 このトークンの取得にはシークレットは必要なく、コードが実行される環境に基づいて自動的に認証されます。 マネージド ID が承認されている限り、サービス コードは Entra ID 認証をサポートするダウンストリームの依存関係にアクセスできます。

たとえば、Azure 仮想マシン (VM) を Azure コンピューティングとして使用できます。 その後、ユーザー割り当てマネージド ID を作成し、VM に割り当てることができます。 VM で実行されているワークロードは、ストレージ アカウントにアクセスするための Azure.Identity (または MSAL) と Azure Storage クライアント SDK の両方とインターフェイスします。 ユーザー割り当てマネージド ID には、ストレージ アカウントへのアクセスが承認されています。

Entra ID アプリでマネージド ID をフェデレーション ID 資格情報 (FIC) として使用する

ワークロード ID フェデレーションでは、Entra ID アプリケーションで、証明書やパスワードと同様に、資格情報としてマネージド ID を使用できます。 Entra ID アプリが必要な場合は、常に資格情報を使わない方法をお勧めします。 Entra ID アプリでマネージド ID を FIC として使用する場合、20 FIC の制限があります。

Entra ID アプリケーションの容量で動作するワークロードは、マネージド ID を持つ任意の Azure コンピューティングでホストできます。 ワークロードは、マネージド ID を使用して、Entra ID アプリケーション トークンと交換されるトークンを、ワークロード ID フェデレーションを介して取得します。 この機能は、マネージドアイデンティティ、または FIC (フェデレーション ID クレデンシャル) とも呼ばれます。 詳細については、「 マネージド ID を信頼するようにアプリケーションを構成する」を参照してください。

次のステップ